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

Your name:

Reply:


Posted by d on 09/27/71 11:38

"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

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