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

Reply via email to