Bug #10502 Updated: parsing for HTTP_POST_VARS drops duplicates
| From: | cynic@php.net | Date: | Thu, 26 Apr 2001 06:04:43 +0000 |
| Subject: | Bug #10502 Updated: parsing for HTTP_POST_VARS drops duplicates | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-52464@lists.php.net to get a copy of this message | ||
ID: 10502
Updated by: cynic
Reported By: mk@adio.com
Old-Status: Closed
Status: Open
Bug Type: Feature/Change Request
PHP Version: 4.0.4pl1
Assigned To:
Comments:
open again, this won't work for POSTs...
thx to Zak.
Previous Comments:
---------------------------------------------------------------------------
[2001-04-26 01:49:58] cynic@php.net
this is by design.
take a look at this (you'll have to edit it):
function _QueryString()
{
$qsstr = '' ;
$qsarr = array() ;
$QS = strtr( $GLOBALS['HTTP_SERVER_VARS']["QUERY_STRING"] , array(
'[' => '' , ']' => '' ) ) ;
$QS = explode( '&' , $QS ) ;
foreach( $QS as $q ) {
$eq = strpos( $q , '=' ) ;
if( false === $eq ) {
$var = $q ;
$val = '' ;
} else {
$var = substr( $q , 0 , $eq ) ;
$val = substr( $q , $eq+1 ) ;
}
if( isset( $qsarr[$var] ) ) {
$qsarr[$var] = array_merge( (array) $qsarr[$var] , array( $var => $val ) ) ;
} else {
$qsarr[$var] = $val ;
}
$qsstr .= "$var=$val&" ;
}
$this->_QueryString = substr( $qsstr , 0 , -1 ) ;
$this->QueryString = $qsarr ;
}
---------------------------------------------------------------------------
[2001-04-26 01:41:16] mk@adio.com
Parsing of a POST drops duplicate variables unless those variables have "[]".
It's a few lines in Perl to get it, but I need to stay inside PHP....
is there anywhere that the equivalent of thePerl $form field below:
if ( $ENV{'REQUEST_METHOD'} eq "POST" ) {
read(STDIN,$form, $ENV{'CONTENT_LENGTH'});
is available in a PHP session...
I need the whole unparsed line, so that I can manage transforming duplicates into an array.
I have a situation where a check-box coded by someone else I have no control over is sending
multiple values with the same field name. Code for parsing into HTTP_POST_VARS discards all but
the last name value pair in the Parse stage because, unfortunately the field is not ending in
"[]" in the FORM.
... thoughts.
mk@adio.com
---------------------------------------------------------------------------
ATTENTION! Do NOT reply to this email!
To reply, use the web interface found at http://bugs.php.net/?id=10502&edit=2