403当我的urlencode参数禁止时

时间:2013-04-16 17:35:51

标签: php apache

我在Windows 7 64位系统上使用Wamp with Apach 2.4.2。在我的测试中,我尝试urlencode我的网址字符串。

我收到以下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>

关于我缺少的任何想法?

1 个答案:

答案 0 :(得分:0)

urlencode()也会对问号进行编码,以便您的网址变为:

membersareaDev.php%3FdoProfile%3Dtrue

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