我在编码方面存在一些问题。我已经制作了一个文件恢复PHP脚本,允许用户在文件名旁边放置一个复选框 - 然后当他们点击底部的“恢复”按钮时,它将从备份恢复相关文件。HTML表单文章 - 使用具有长名称属性的复选框
不幸的是,似乎有一个问题。文件的完整路径和名称位于复选框的“名称”属性中 - 这样,它就会作为需要恢复的位置和文件传递给下一个脚本。
举个例子:
<input type="checkbox" name="/backups/Sunday/111111111111-com/www/components/com_virtuemart/" />
参见 “name” 属性是多长时间?在许多情况下,恢复工作 - 但一旦名称属性变长,它不再工作。在上述属性中,“名称”字段长度为63个字符。
现在,如果另外一个是炼
<input type="checkbox" name="/backups/Sunday/111111111111-com/www/components/com_virtuemart/js/" />
上述 “name” 属性是长67个字符。这是行不通的。
在POST数据发布到的脚本上,我做了一个var_dump($ _ POST);看看输出是什么。在“name”属性长度为63个字符的第一种情况下,var_dump显示它。但在属性长度为67个字符的第二种情况下,它不显示它 - 因此该文件未被恢复。
有没有办法解决这个假设的属性大小限制?我在网上查看,看到几个帖子,其中有人说,“名称”属性的长度没有限制 - 但显然有一个。
谢谢!
好的 - 我想我已经在这里发现了我自己的问题。 PHP与suhosin模块一起安装。我禁用suhosin模块,它似乎工作正常。 现在我只需要弄清楚在模块中更改哪个设置以允许长名称。 –
问题已解决。原因是PHP中的Suhosin模块。我不得不修改默认64的suhosin.post.max_name_length,也必须修改默认64的suhosin.request.max_varname_length。只修改其中的一个并不会导致问题;都必须从默认更改。 –
suhosin.post.max_name_length是你想要我相信的东西。你也会想要改变这个配置变量的相应的“请求”版本 – Lee