Re: need session_start() to recall session data.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux