我正在经历一种非常奇怪的行为。假设我有以下两个<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
限制其密钥长度时才会发生这种情况。
非常感谢任何帮助!谢谢!
答案 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]),连字符(“ - ”),下划线 (“_”),冒号(“:”)和句号 ( “”)。
所以问题可能与名字中的非法字符有关。
您是否在不同的浏览器中尝试过它?