无法在“ a href”链接中传递带撇号的变量

时间:2019-10-15 16:58:51

标签: php

我从mysqli数据库中选择一个名称列表,然后使用if(isset($ _ GET ['name']))在display.php中显示行详细信息; 链接是

$str = strtoupper($str);
echo "<tr><td><a href='php/display.php?name=$str'>$str</a></td></tr>";

这将正确执行,除非名称中包含'(撇号)。

例如,$str(作为输入/点击)显示为L'ECLIPSE,但仅<a>链接L' display.php中的结果是“找不到符合您要求的数据”

我在此站点上找到了完全相同的查询,但是没有答案能解决我的问题。也许我执行不正确。 我认为这是逃跑。但是我对此一无所知。

4 个答案:

答案 0 :(得分:1)

<?php

$str = strtoupper($str);
echo "<tr><td><a href='php/display.php?name=".urlencode($str)."'>$str</a></td></tr>";

urlencode()首先是字符串。这样您就不会遇到此类问题。

答案 1 :(得分:-1)

<?php

$str = strtoupper($str);
echo "<tr><td><a href='php/display.php?name=".$str."'>$str</a></td></tr>";

答案 2 :(得分:-1)

尝试此代码。

    <?php
    $str = strtoupper($str);
    echo "<tr><td><a href='php/display.php? 
    name=".htmlspecialchars($str)."'>$str</a></td></tr>";
    ?>

您的单引号变为&#039;
希望对您有帮助

答案 3 :(得分:-1)

您必须使用text

它的作用是将所有特殊字符切换为相应的html

例如:

htmlspecialchars($str)

以此类推。