Re: need session_start() to recall session data.
| From: | Curt Zirzow | Date: | Sat, 03 Dec 2005 19:31:19 +0000 |
| Subject: | Re: need session_start() to recall session data. | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-226815@lists.php.net to get a copy of this message | ||
On Sat, Dec 03, 2005 at 01:28:21PM -0500, Matt Monaco wrote:
> I have the following two methods as part of a class I'm using to transport
> data between pages.
>
> static function pack($object)
> {
> if (session_id() == "") {
> session_start();
I wouldn't put a random session_start() in places like this.
> }
>
> $class = get_class($object);
> $_SESSION["cmsSessionArray"][$class] = serialize($object);
> }
> ...
>
> the pack() method is called by the destructor of the objects I want to save
> like:
> function __destruct()
> {
> parent::pack($this);
> }
>
> On subsequent pages the session data is not available until I do a
> session_start(). Regardless of the fact that I think the session shouldn't
> need to be restarted, I don't like the fact that if indeed it has been
> closed that a session_start() on another page will bring back the data.
> (Note, fortunately this doesn't not occur if the browser window has been
> closed, at that point all session data is definitely lost as expected.)
I'm not sure what you mean by restarting a session or what 'indeed
has been closed'
btw, your pack and unpack aren't really needed. All you have to do
is in your __destruct() function is put something like:
$_SESSION['cmsSessionArray'][__CLASSNAME__] = $this;
And when you pull it out of the session:
$obj = $_SESSION['cmsSessionArray']['someClass'];
You'll have an instance of that class; you're really causing more
work than needed.
Curt.
--
cat .signature: No such file or directory