ID: 12324
User updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
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] [EMAIL PROTECTED]

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] [EMAIL PROTECTED]

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] [EMAIL PROTECTED]

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] [EMAIL PROTECTED]

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


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to