[英]Cannot pass variable with apostrophe in “a href” link
我 select 來自 mysqli 數據庫的名稱列表,然后在 display.php 中顯示行詳細信息 if (isset($_GET['name'])); 鏈接是
$str = strtoupper($str);
echo "<tr><td><a href='php/display.php?name=$str'>$str</a></td></tr>";
除非名稱包含'(撇號),否則這將正確執行。
例如$str
(作為輸入/點擊)顯示為L'ECLIPSE
但<a>
鏈接僅L'
display.php 中的結果是 'No data found for your request'
我在這個網站上找到了完全相同的查詢,但沒有一個答案能解決我的問題。 也許我沒有正確實施。 我假設這大約是 escaping。 但我對此知之甚少。
<?php
$str = strtoupper($str);
echo "<tr><td><a href='php/display.php?name=".urlencode($str)."'>$str</a></td></tr>";
urlencode()首先是字符串。 所以你不會遇到這種問題。
<?php
$str = strtoupper($str);
echo "<tr><td><a href='php/display.php?name=".$str."'>$str</a></td></tr>";
試試這個代碼。
<?php
$str = strtoupper($str);
echo "<tr><td><a href='php/display.php?
name=".htmlspecialchars($str)."'>$str</a></td></tr>";
?>
你的單引號變成 '
我希望它會有所幫助
你必須使用htmlspecialchars($str)
它的作用是將所有特殊字符切換到它們各自的 html 等效字符
例如:
' -> '
" -> "
等等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.