#24007 [WFx->Opn]: register_globals + request arrays = missing register_global variables

From: Date: Fri, 13 Jun 2003 16:55:52 +0000
Subject: #24007 [WFx->Opn]: register_globals + request arrays = missing register_global variables
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-41871@lists.php.net to get a copy of this message
ID: 24007 Updated by: rasmus@php.net Reported By: gateschris at yahoo dot com -Status: Wont fix +Status: Open Bug Type: Scripting Engine problem Operating System: Linux version 2.2.19 PHP Version: 4.3.2 Assigned To: iliaa New Comment: I'm not ready to give up on this one. This used to work and really should be fixed. Previous Comments: ------------------------------------------------------------------------ [2003-06-13 10:19:21] iliaa@php.net You should either use the recommended _REQUEST super global or not create values with the same names in both POST & GET if you need to use register_globals. ------------------------------------------------------------------------ [2003-06-04 10:32:57] iliaa@php.net The fix only fixed the _REQUEST, which is what you should be using. The register_global variables still have the same issue. I will look into this issue to see if it can be easily fixed, but I suspect there is a greater chance this will be marked won't fix. ------------------------------------------------------------------------ [2003-06-04 05:59:48] gateschris at yahoo dot com Hi Philip, Yes, sorry i did not find that report before, but bug report #23454 relates to a 4.3.2RC3-dev not 4.3.2 release version, and the bug report is closed, and iliaa@php.net mentions that they have patched the cvs on the 13 May (before the release version), so perhaps something is still wrong here, it seems like a serious bug in a release version to me. I will wait for the next point release (incase the patch was passed over this current release). Cheers, ------------------------------------------------------------------------ [2003-06-04 00:39:31] philip@php.net Verified and related to bug #23454 Note that $_REQUEST works perfectly here... <?php if (@$_POST['action'] == 'submit') { print "<pre>"; print_r(array('get' => $_GET, 'post' => $_POST, 'request' => $_REQUEST, 'foo' => $foo)); } else { ?> <form method="POST" action="<?php echo $_SERVER['PHP_SELF'] ?>?foo[a][a]=a"> <br><input type="text" name="foo[]" value="b"> <br><input type="text" name="foo[a][b]" value="c"> <br><input type="submit" name="submit" value="submit"> <input type="hidden" name="action" value="submit"> </form> <?php } ?> Outputs: Array ( [get] => Array ( [foo] => Array ( [a] => Array ( [a] => a ) ) ) [post] => Array ( [foo] => Array ( [0] => b [a] => Array ( [b] => c ) ) [submit] => submit [action] => submit ) [request] => Array ( [foo] => Array ( [a] => Array ( [a] => a [b] => c ) [0] => b ) [submit] => submit [action] => submit ) [foo] => Array ( [0] => b [a] => Array ( [b] => c ) ) ) ------------------------------------------------------------------------ [2003-06-04 00:04:38] gateschris at yahoo dot com when performing a post in a form, if the url contains a variable of the form name[key]=value, and php has register_globals enabled, the name/key is not registered. example form: <form enctype="multipart/form-data" method="post" action="test.php?name[key][key2]=value"> <input name="name[key][key3]" value="value" type="hidden"> </form> example php: <? print_r($name); ?> with register_globals on, this script will only remember the name[key][key3] and not the name[key][key2], please note that i have not tested this script, its just a summary of what i have found in a much larger script, and ive already reverted back to an older version of php and im to lazy to try it on another machine. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=24007&edit=1

« previous php.bugs (#41871) next »