|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2001-04-26 01:41 UTC] mk at adio dot 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
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Nov 05 12:00:01 2025 UTC |
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 ; }