$ _POST键名长度?

时间:2011-04-30 20:30:08

标签: php cakephp

我正在经历一种非常奇怪的行为。假设我有以下两个<input type='image'>src属性等于name属性):

<input type='image' name='http://farm1.static.flickr.com/224/471627793_fbda6cecbe_s.jpg'>
<input type='image' name='http://farm5.static.flickr.com/4053/4501238330_c5a85162ef_s.jpg'>

我的问题是:为什么第一个输入提交而第二个输入不提交?我正在使用CakePHP,如果我点击第二张图片,$this->params['form']为空。但是,当我点击第一张图片时,一切正常:$this->params['form']包含正确的图像名称及其点击位置的坐标。

这是一种非常奇怪的行为,我相信只有在$_POST限制其密钥长度时才会发生这种情况。

非常感谢任何帮助!谢谢!

2 个答案:

答案 0 :(得分:4)

PHP本身不限制multipart/-urlencoded POST请求的字段名称长度。

但是,suhosin确实有http://www.hardened-php.net/suhosin/configuration.html#suhosin.post.max_name_length,默认值为64。而你的第二个网址确实是64个字符。

不太可能,但也可能是mod_security设置。然而,它会泄漏错误消息而不是截断。

答案 1 :(得分:1)

根据w3.org的说法,我不确定这与长度有关:

  

ID和NAME令牌必须以a开头   信([A-Za-z]),可以遵循   任意数量的字母,数字   ([0-9]),连字符(“ - ”),下划线   (“_”),冒号(“:”)和句号   ( “”)。

所以问题可能与名字中的非法字符有关。

您是否在不同的浏览器中尝试过它?