为什么$ _POST中的字符串不能包含点"."?

Gab*_*iel 26 php post

基本上标题说是一切.我在我的页面上有一个隐藏的输入,我想将名称设置为"some.major.uber.setting"

例如: <input type="hidden" name="some.major.uber.setting" value="dummy value" />

当我查看$ _POST数据时,它包含"some_major_uber_setting".任何人都可以解释这种行为

hal*_*dan 22

这可能是register_global = On times的遗留问题.$ _GET/$ _ POST变量被转换为标准变量($ _GET ['foo']变为$ foo).变量名称不能包含点,因此它们在内部转换.


Art*_*cto 13

自从十多年前最初提交给CVS以来,这一直存在.

它有一个评论:

/*确保我们在变量名中没有空格或点(不是二进制安全)*/

我不知道为什么它不是"二元安全"......你必须问Zeev.

当前链接:https://github.com/php/php-src/blob/master/main/php_variables.c#L93


cod*_*ict 8

其记录php.net为:

变量名中的点和空格将转换为下划线.

  • OP知道 - 它是问题的一部分,这是"为什么?" (5认同)