Basicaly the title say's it all. i had an hidden input on my page where i wanted to set the name to "some.major.uber.setting"
for example: <input type="hidden" name="some.major.uber.setting" value="dummy value" />
and when i looked at the $_POST data it contained "some_major_uber_setting". Can anybody explain this behaviour
Source: Tips4all
That is probably a relict from register_global = On times. $_GET/$_POST variables were turned into standard variables ($_GET['foo'] became $foo). Variable names can't contain dots so they were internally converted.
ReplyDeleteThis has been there since the original commit to CVS, more than 10 years ago.
ReplyDeleteIt has a comment:
/* ensure that we don't have spaces or dots in the variable name (not binary safe) */
I have no idea why it isn't "binary safe"... You'd have to ask Zeev.
Its documented in php.net as:
ReplyDeleteDots and spaces in variable names are converted to underscores.