簡體   English   中英

無法在“a href”鏈接中傳遞帶撇號的變量

[英]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>";
    ?>

你的單引號變成 &#039;
我希望它會有所幫助

你必須使用htmlspecialchars($str)

它的作用是將所有特殊字符切換到它們各自的 html 等效字符

例如:

' -> &#39;
" -> &#34;

等等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM