2015-10-15 80 views
0

我有一个搜索表单,其结果存储在数组中,并通过url传递给页面希望显示。现在,当要搜索的项目数少于1000时,内部服务器错误。 是否有任何其他方法,如URL加密我可以做解决内部错误? 请帮我避免了内部服务器错误 我的代码如下无法通过网址发送超过1000个变量

$cfinalarray = array_intersect($clarray1, $clarray2, $clarray3,  $clarray4, $clarray5, $clarray6, $clarray7, $clarray8, $clarray9, $clarray10, $clarray12, $clarray13, $clarray14, $clarray15, $clarray16, $clarray17, $clarray18, $clarray19, $clarray20, $clarray22, $clarray23, $clarray24, $clarray25, $clarray26); 
       if (count($cfinalarray) > 0) { 
        $arrayc = array_values($cfinalarray); 
        arsort($arrayc); 
        $ab = http_build_query($arrayc); 
        header("HTTP/1.1 301 Moved Permanently"); 
        header("Location: http://example.com/a/b?$ab"); 
       } else { 
        header("HTTP/1.1 301 Moved Permanently"); 
        header("Location: http://example.com/a/b?search=noresult"); 
       } 

结果是这样的:http://example.com/a/b?2=1120&1=1077&0=1046

回答

0

检查您的php.ini文件并更改此行。

max_input_vars = 1000 

1000表示最大输入值,您可以将其更改为您想要的值。如果您不知道如何编辑php.ini文件,请按照以下说明操作:

1 - 在SSH上以root身份登录。
2 - 与nanopico
打开php.ini文件(如果您正在使用的cPanel,这是# nano /usr/local/lib/php.ini
3 - 按CTRL + W(如果使用的是Mac OS按CNTRL + W),然后键入 “max_input_vars”
4 - 然后更改该值,然后按CTRL + X在退出前退出并保存。

就这样!

+0

Thanks.Daniz&rawb.Ii已经做到了,把它转换成了5000个问题依然存在。 – Anna

+0

好的,请检查您网站的网页文件夹,检查.htaccess和php.ini(如果有)文件。也许你可以在那个文件里面找到max_input_vars的值。还请增加max_execution_time和max_input_time值,而不是重新启动您的Web服务器。 –

+0

嗨Daniz,phi.ini文件在那里。你看起来像这样 max_execution_time = 30;每个脚本的最大执行时间,以秒为单位 max_input_time = 60 \t;每个脚本可能花费的时间解析请求数据的最大时间量 max_input_vars = 5000 memory_limit = 512M;脚本可能消耗的最大内存量(32MB) – Anna