繁体   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