长URL挂起PHP页面

时间:2014-10-16 06:23:46

标签: php url get

我在共享的网络托管帐户上托管我的PHP网站,所以我不确定是什么原因造成这种情况,因为我无法直接访问服务器。

相关页面非常简单。它的PHP脚本通过GET请求接收数据,并用它填写页面上的表单(默认为用户填写其余部分之前。)

例如,它可以接受这样的URL:

  

http://www.example.com/test.php?id=sendform&name=somename&ver=1.0&desc=some%20description

然后PHP脚本读取传递给它的参数(通过像stripslashes($_REQUEST['desc']);这样的函数)并创建HTML标记,其中填写了传递给它的数据的表单字段。

所以这个工作正常,直到我注意到如果我传递一个长URL(我不知道确切的限制,但是例如我的测试URL长度为1,280个字符)我的test.php中的脚本会没有执行,页面会长时间挂起,直到浏览器因错误而超时。

我首先认为stripslashes($_REQUEST['desc']);电话是罪魁祸首,因此除了简单的一行之外我删除了所有内容:

print("Got to the end");

仍然挂了很长的网址。

所以我很好奇,为什么会这样?以及如何防止这种“挂断”?

1 个答案:

答案 0 :(得分:0)

理想情况下,您不应该使用长网址,因为建议的限制是不要超过256个字符,包括主机。根据您提供的信息很难弄清楚,但可能是因为

  1. 浏览器(检查请求陷阱工具,查看请求是否真的被发送或被浏览器本身阻止。
  2. 服务器(服务器可能在配置中限制了url长度,您可以检查访问日志或错误日志以获取详细信息)
  3. 防火墙上的设置(服务器上的防火墙可能会阻止这么长的网址)
  4. 建议避免使用更长的URL,如果可能,请使用POST方法发送数据。