0

我在 Windows 7 64 位系统上使用 Wamp 和 Apache 2.4.2。在我的测试中,我尝试了urlencode我的 url 字符串。

我收到以下 403 禁止错误消息:

您无权访问此服务器上的 /chi-linux/membersareaDev.php?doProfile=true。

没有 urlencoding 的链接不会出错。由于这是一个开发框,我确实可以访问 http.conf(没有更改)。我所有的代码都在 c:\wamp\www\chi-linux 如果我不进行 urlencode,我不会遇到权限问题。

这是我的代码:

<?php $url1 = urlencode("membersareaDev.php?doStatus=true?statid=10"); 
$url2 = urlencode("membersareaDev.php?doProfile=true");
echo "url=$url1";
?>
<li><a href="membersareaDev.php?doProfile=true">Profiles</a></li>
<li><a href=<?php echo "$url2"; ?> >Profiles Encode</a></li>
<li><a href= "membersareaDev.php?doStatus=true?amp;statid=10">Status</a></li>
<li><a href= <?php echo $url1;?>>Status Encode</a></li>

关于我缺少什么的任何想法?

4

1 回答 1

0

urlencode() 也对问号进行编码,因此您的 URL 变为:

membersareaDev.php%3FdoProfile%3Dtrue

这是不正确的,如果您担心用户输入,您不需要对整个 URL 进行 urlencode,只需单独传递的参数。

于 2013-04-16T17:44:19.810 回答