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

Your name:

Reply:


Posted by d on 01/18/06 19:08

"Jerry Stuckle" <jstucklex@attglobal.net> wrote in message
news:FNednSNTNILI-lPeRVn-iw@comcast.com...
> lwoods wrote:
>> Wow,
>>
>> Thanks, Jerry. Kinda' crude, no?
>>
>> Larry
>> "Jerry Stuckle" <jstucklex@attglobal.net> wrote in message
>> news:Z4ydnfUhzcQz_1PeRVn-pw@comcast.com...
>>
>>>lwoods wrote:
>>>
>>>>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:
>>>>
>>>><!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
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>Larry,
>>>
>>>You need to call session_start() at the beginning of EVERY page which
>>>needs session support.
>>>
>>>--
>>>==================
>>>Remove the "x" from my email address
>>>Jerry Stuckle
>>>JDS Computer Training Corp.
>>>jstucklex@attglobal.net
>>>==================
>>
>>
>>
>
> Not really. You call session_start() on those pages which require session
> support, and don't on those which don't need sessions. Saves a little
> unnecessary processing time.

Not to mention the default session handler will only allow two scripts to
use the same session at the same time - if sessions were "always on", then
you'd get timeouts all over the place.

> Maybe session_connect() might be a better name? :-)
>
> --
> ==================
> Remove the "x" from my email address
> Jerry Stuckle
> JDS Computer Training Corp.
> jstucklex@attglobal.net
> ==================

[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

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