Bug #12324 Updated: arg_separator.* broken
| From: | voudras at phpking dot org | Date: | Tue, 31 Jul 2001 22:10:23 +0000 |
| Subject: | Bug #12324 Updated: arg_separator.* broken | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-61687@lists.php.net to get a copy of this message | ||
ID: 12324
User updated by: voudras@phpking.org
Reported By: voudras@phpking.org
Old Summary: arg_separator.output broken
Old Status: Closed
Status: Open
Bug Type: *Configuration Issues
Operating System: linux
PHP Version: 4.0.6
New Comment:
This is a tricky lil bug, real easy to overlook. At the following url i have a script with your
example code - and it does not function properly:
http://wart.phpking.org/test3.php
you can see some other examples of how this doesnt work at
http://wart.phpking.org/test.php
http://wart.phpking.org/test2.php
again, this seems to execute fine on windows based php/apache systems
(which is probably a good clue as to where the problem exists).
- ini_get("arg_separator.input") does not return the 'local' value, but instead
the default or php.ini value (this is different than with ini_get(
"arg_separator.output"). Perhpas this is intensional?
- the above problem probably contributes to the fact that where the query_string is parsed for
variables - it always gets the default arg_separator.*
Previous Comments:
------------------------------------------------------------------------
[2001-07-31 11:00:07] andy@php.net
ok... the problem exists in your script at
http://wart.phpking.org/test.php
but using the EXACT script that I created, it works fine...
Please use this one... (EXACTLY)
status -> closed
------------------------------------------------------------------------
[2001-07-31 10:55:35] andy@php.net
i have gotten emails from people saying that they have reproduced
this error. Can anybody from PHP verify this? I have not been
able to reproduce this error (using the script in my last post.)
------------------------------------------------------------------------
[2001-07-24 09:20:39] andy@php.net
you have your params mixed up. replace arg_separator.output
with arg_separator.input and things will work. I modified
your script below. This one works as you wanted it to.
<?php
global $HTTP_POST_VARS,$HTTP_GET_VARS, $HTTP_COOKIE_VARS,
$PHP_SELF;
ini_set("arg_separator.input", ";");
define("a", ini_get("arg_separator.input"));
if($HTTP_GET_VARS){
$total = count($HTTP_GET_VARS);
echo "Displaying GET variables";
while(list($key, $val) = each($HTTP_GET_VARS)) {
echo "<br />Key: '$key' Value '$val'";
}
}
echo "<hr>";
echo "<A HREF=\"$PHP_SELF?i=am".a."do=one\">Click to
activate test</a>";
echo "<hr>";
?>
------------------------------------------------------------------------
[2001-07-23 20:22:46] voudras@phpking.org
I've tested this problem on both php4.0.5 and 4.0.6, and it has also reproduced on other
machines. I will not however, that this problem does not seem to occur on windows/apache machines.
the problem is that get vars using an arg_separator.output other than '&' will be
ignored when attempting to parse HTTP_GET_VARS.
there is an example avaliable at
http://wart.phpking.org/test.php
the source is visible at
http://wart.phpking.org/test.phps
a side note - it would seem that the transparent session info appended to a url by php will also not
follow a new 'arg_separator.output' value.. for example - if i set the
arg_separator.output to ';'.. my PHPSESSID will still be appended to the url with a
'&'
-voudras
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=12324&edit=1