没有网址编码但正在工作:
<?php
$url = "Manage_Cumulative_DEV.php";
$url .= /*URLencode*/ ('?thread_ID='.$row['thread_ID']);
?>
<a href="<?php echo htmlspecialchars($url);
?>">
<?php echo htmlspecialchars($display_text);
echo '<br>';
?>
</a>
<?php
成功的链接如下所示:
使用网址编码 - 并且已损坏:
<?php
$url = "Manage_Cumulative_DEV.php";
$url .= URLencode('?thread_ID='.$row['thread_ID']);
?>
<a href="<?php echo htmlspecialchars($url);
?>">
<?php echo htmlspecialchars($display_text);
echo '<br>';
?>
</a>
<?php
当我运行URLencoded版本时,我收到403错误代码和此消息: 禁 您无权访问此服务器上的 /WS_map_code/Manage_Cumulative_DEV.php?thread_ID=437769 。 位于localhost端口80的Apache / 2.4.23(Win64)PHP / 5.6.25服务器 (注意错误消息如何引用在没有URL编码的情况下成功为我工作的相同href。它似乎知道我想说的是什么。)
失败的,URLencoded href(从地址栏复制)看起来像这样,似乎是正确的: http://localhost/WS_map_code/Manage_Cumulative_DEV.php%3Fthread_ID%3D437769
我知道我很厚,因为我已经戳了戳,刺激并研究了几个小时。我怜悯更薄的人。
答案 0 :(得分:1)
$url = "Manage_Cumulative_DEV.php?thread_ID=";
$url .= URLencode($row['thread_ID']);
应该做的伎俩。在您的代码中,您是否对URL进行了编码?这会导致无效的请求网址