|
Posted by d on 01/18/06 19:06
"lwoods" <larry@lwoods.com> wrote in message
news:Tftzf.8958$JT.5294@fed1read06...
> You have to do a "start_session()" in EVERY script where you use SESSION
> variables? I thought that you only had to start the session once.
You have to do that every time you want to use the session.
> Larry
> "d" <d@example.com> wrote in message
> news:ryszf.3377$wl.838@text.news.blueyonder.co.uk...
>> "lwoods" <larry@lwoods.com> wrote in message
>> news:NIrzf.8954$JT.3009@fed1read06...
>>> Thanks, but I still can't get it to work. Check the following:
>>>
>>> Originating Page:
>>>
>>> <?
>>> if($_POST['repost']=='y') {
>>> session_start();
>>> $_SESSION['xxx']='test';
>>> session_write_close();
>>> header('Location: http://www.mysite.com/test/testsess2.php');
>>> exit();
>>> }
>>> ?>
>>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
>>> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>>> <html xmlns="http://www.w3.org/1999/xhtml">
>>> <head>
>>> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"
>>> />
>>> <title>Untitled Document</title>
>>> </head>
>>> <body>
>>> <form action=<? echo $_SERVER['PHP_SELF']; ?> method="post">
>>> <input type="submit" name="submit" value="Submit" />
>>> <input type="hidden" name="repost" value="y" />
>>> </form>
>>> </body>
>>> </html>
>>>
>>> Target Page - testsess2.php:
>>
>> It looks like you're not starting your session in this script:
>>
>>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
>>> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>>> <html xmlns="http://www.w3.org/1999/xhtml">
>>> <head>
>>> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"
>>> />
>>> <title>Untitled Document</title>
>>> </head>
>>>
>>> <body>
>>> <?
>>> echo "xxx=".$_SESSION['xxx'];
>>> ?>
>>> </body>
>>> </html>
>>>
>>> Try these pages and see if they work for you....
>>>
>>> Larry Woods
>>>
>>> "d" <d@example.com> wrote in message
>>> news:T2rzf.3315$wl.1860@text.news.blueyonder.co.uk...
>>>> "lwoods" <larry@lwoods.com> wrote in message
>>>> news:RPqzf.8953$JT.6285@fed1read06...
>>>>>I am trying to pass some info to another page on my site. I set
>>>>>"session_start()" in page 1, assign a session variable to a value, then
>>>>>execute a "header('Location: ....')." But on the target page I don't
>>>>>get any session variable values! BTW, I used a relative location in
>>>>>the Location header, not an absolute URL. The behavior looks like it
>>>>>started another session, but it should not have.
>>>>>
>>>>> Ideas?
>>>>
>>>> Before the header("location: "), call session_write_close().
>>>>
>>>> That gave me some serious headaches with mac-based browsers hanging.
>>>> Terrible stuff :)
>>>>
>>>> Oh, and you should always use absolute URLs with location. Relative
>>>> ones do work, but that's not guaranteed. You could make a function
>>>> like this to take care of that for you:
>>>>
>>>> function bounce($url) {
>>>> if (sustr($url, 0, 1)=="/")
>>>> $url="http://".$_SERVER["HTTP_HOST"].$url;
>>>> session_write_close();
>>>> header("Location: ".$url);
>>>> exit();
>>>> }
>>>>
>>>> or just use that one :-P
>>>>
>>>>> TIA,
>>>>>
>>>>> Larry Woods
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
[Back to original message]
|