Reply to Re: Aren't session variable preserved using "Header('Location: xxx')"?

Your name:

Reply:


Posted by lwoods on 09/27/40 11:38

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.

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]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация