Actually, yes it does... $foo="foobar"; instead of parse_str($QUERY_STRING); in file2.php - then file3.php echoes "foo: foobar". Obviously - otherwise there wasn't any point in having sessions.
And Markus - thanks, but I tried to subsitute parse_str($QUERY_STRING) with parse_str("foo=foobar") which also didn't set my session var, foo So that is not the problem either! /Thomas Rasmus Lerdorf wrote: > > But your problem has absolutely nothing to do with parse_str(). Does it > behave differently if you replace parse_str() with $foo="foobar"; ? > I bet it doesn't. > > On Mon, 4 Mar 2002, Thomas Wentzel wrote: > > > Sure, Rasmus! > > But... > > I'm using parse_str because file2 in my example is supposed to be > > a generic handler for all other scripts on my "site". Offcourse I could > > use "1.5 million" $HTTP_GET_VARS for each registered session variable > > (as > > I wouldn't know what to expect) > > The reason I did write to this list - is because there obviously is > > something wrong with the way parse_str works and how it is supposed to > > work. > > Not because I don't know how to get around this "obstacle" > > > > > > > > > > And the reason I did submit to this list > > Rasmus Lerdorf wrote: > > > > > > You are posting to the wrong list. And why are you using parse_str()? > > > PHP automatically imports these variables for you. Use > > > $foo=$HTTP_GET_VARS['foo'] in that second script of yours. > > > > > > Next time send your user-level question like this to php-general. > > > > > > -Rasmus > > > > > > On Mon, 4 Mar 2002, Thomas Wentzel wrote: > > > > > > > Hi, > > > > > > > > I have encountered an issue with parse_str, that I believe needs to > > > > be addressed - allthough I might be mistaken, and in that case feel > > > > free to ridicule me - and tell me to go to the general list :) > > > > > > > > Well... I want to be able to do something like this: > > > > > > > > file1.php: > > > > <? > > > > session_start(); > > > > session_register("foo"); > > > > $foo="bar"; > > > > ?> > > > > <form action="file2.php?foo=foobar" method="post"> > > > > <input type="submit" name="Go"> > > > > </form> > > > > > > > > file2.php: > > > > <? > > > > session_start(); > > > > $old=$foo; > > > > parse_str($QUERY_STRING); > > > > > > > > Header("Location: file3.php?old=$old&foo=$foo"); > > > > ?> > > > > > > > > file3.php: > > > > <? > > > > session_start(); > > > > echo "foo: $foo<br>"; > > > > ?> > > > > > > > > >From the manual: (explanation for parse_str) > > > > Parses str as if it were the query string passed via an URL and sets > > > > variables in the current scope. If the second > > > > parameter arr is present, variables are stored in this variable as an > > > > array elements instead. > > > > > > > > I would expect that the script would result in file3.php echoing, "foo: > > > > foobar" - but that's not the case, instead I get: "foo: bar", but the > > > > url is: "file3.php?old=bar&foo=foobar". Doesn't session_start introduce > > > > all the registered vars into the current scope - and since parse_str > > > > "sets varibles in the current scope" why doesn't this scheme work? > > > > > > > > Thanks for listening > > > > Thomas > > > > > > > > > > > > -- > > > > PHP Development Mailing List <http://www.php.net/> > > > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > > > > > > > -- > > > PHP Development Mailing List <http://www.php.net/> > > > To unsubscribe, visit: http://www.php.net/unsub.php > > -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php