Edit report at https://bugs.php.net/bug.php?id=45272&edit=1
ID: 45272 Comment by: pravdin at vl dot ru Reported by: tavin dot cole at gmail dot com Summary: no ini setting to inhibit conversion of dots to underscores in $_REQUEST Status: Open Type: Feature/Change Request Package: *Web Server problem Operating System: any PHP Version: 5.2.6 Block user comment: N Private report: N New Comment: In PHP 5.4 INI the register_globals setting was removed finally. So, this atricle in documentation become not true: "Dots in incoming variable names Typically, PHP does not alter the names of variables when they are passed into a script. However, it should be noted that the dot (period, full stop) is not a valid character in a PHP variable name." Because external variables will never become internal variables, translation dots to underscores become senseless. Please, add an INI setting to disable dots to underscores translation! Previous Comments: ------------------------------------------------------------------------ [2008-06-15 17:52:45] tavin dot cole at gmail dot com the following is a trivial patch for those needing a workaround to this problem. it only inhibits the munging of dots and doesn't address things like spaces and square brackets. it also doesn't address introducing an INI setting. diff -ru php-5.2.6._dist/main/php_variables.c php-5.2.6._mine/main/php_variables.c --- php-5.2.6._dist/main/php_variables.c 2007-12-31 07:20:15.000000000 +0000 +++ php-5.2.6._mine/main/php_variables.c 2008-06-14 23:34:25.000000000 +0000 @@ -91,7 +91,7 @@ /* ensure that we don't have spaces or dots in the variable name (not binary safe) */ for (p = var; *p; p++) { - if (*p == ' ' || *p == '.') { + if (*p == ' ' /*|| *p == '.'*/) { *p='_'; } else if (*p == '[') { is_array = 1; ------------------------------------------------------------------------ [2008-06-14 23:01:55] tavin dot cole at gmail dot com Description: ------------ It's well known that PHP converts dots to underscores for incoming variable names. This is very frustrating when writing modern PHP code with register_globals off and using $_REQUEST etc. instead. It's been stated this will not be changed due to BC issues. Why not introduce an INI setting to inhibit this behavior? Thanks for your consideration. ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=45272&edit=1