Re: passing an object using session var

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

 



errata:

$newObj->display();                        // this *does* work


On 11/29/06, list arama <listarama@xxxxxxxxxxxxxx> wrote:

Here's what I came up with:

--script1---
<?php
include('TestClass.php');
session_start();
$obj = $_SESSION['obj'];
// session_register($obj);    // recommended not to use - said to be
outdated usage
ob_start();
$obj = &new TestClass();
$obj->setName('MyName');
$obj->display();
header("Location: http://localhost/~mdl/webProj/photoAlbum2/receive.php
<http://localhost/%7Emdl/webProj/photoAlbum2/receive.php>");
ob_flush();
?>
---script2---
<?php
include("TestClass.php");
session_start();
$newObj = $_SESSION['obj'];            // this works
//$_SESSION['obj'] = $newObj;   // this doesn't work
$_SESSION['obj']->display();    //
$newObj->display();                        // this doesn't
$_SESSION = array();    // unsets session having effect that script fails
on every second call
?>

My only remaining question is why the session fails every second time if
the session is emptied and destroyed. Shouldn't script1 initialize a totally
new session and populate with fresh session vars?


On 11/29/06, Eric Butera <digital.tarsier@xxxxxxxxx> wrote:
>
> On 11/29/06, Jochem Maas <jochem@xxxxxxxxxxxxx> wrote:
> > Thomas Munz wrote:
> > > Try that:
> > >
> > >  --script1---
> > > <?php
> > >  include(" TestClass.php");
> > > session_start();
> > >
> > > $obj = new TestClass();
> > > $obj->setName('MyName');
> > > $obj->display();        // outputs 'MyName'
> > >
> > > $str_object = serialize($obj); //-- You need to serialize an object
> ( see php.net manual ) in order to make an object working via session
> >
> > DONT SERIALIZE! its done automatically
> >
> > >
> > > $_SESSION['obj'] = $str_object: //-- save serialized string in the
> session,note: Use $_SESSION instead of session_register();
> > >
> > > header("Location:
> http://localhost/~lr/webProj/photoAlbum2/sessionReceiveObj.php<http://localhost/%7Elr/webProj/photoAlbum2/sessionReceiveObj.php>");  //
> re-direct to script2
> > >
> > > ---script 2----
> > > <?php
> > > include("TestClass.php");
> > > session_start();
> > >
> > > $newObj = unserialize($_SESSION['obj']); //-- convert string back
> into object
> >
> > DONT UNSERIALIZE! its done automatically
> >
> > > $newObj->display();       // MyName
> > >
> > >
> > > on Wednesday 29 November 2006 16:18, list arama wrote:
> > >> Why am I not able to access the obj name field in script 2?
> > >>
> > >> thanks in advance,
> > >>
> > >> --script1---
> > >>
> > >> <?php
> > >>
> > >> include("TestClass.php");
> > >>
> > >> session_start();
> > >> session_register('obj');
> >
> > session_register() et al are going the way of the dino.
> > just use $_SESSION directly, just remember to call session_start()
> > before you try to use $_SESSION
> >
> > >>
> > >> ob_start();
> > >>
> > >> $obj = new TestClass();
> > >>
> > >> $obj->setName('MyName');
> > >> $obj->display();        // outputs 'MyName'
> > >>
> > >> header("Location:
> > >> http://localhost/~lr/webProj/photoAlbum2/sessionReceiveObj.php<http://localhost/%7Elr/webProj/photoAlbum2/sessionReceiveObj.php>");  //
>
> > >> re-direct to script2
> > >>
> > >> ob_flush();
> > >>
> > >> ?>
> > >>
> > >> ---script 2----
> > >>
> > >> <?php
> > >>
> > >> include("TestClass.php");
> > >>
> > >> session_start();
> > >>
> > >> $newObj = $HTTP_SESSION_VARS['obj'];
> > >>
> > >> $newObj->display();       // no output, meaning no data?
> > >>
> > >> $newObj->setName('Michael');
> > >> $newObj->display();      // outputs 'Michael' using obj methods
> > >>
> > >> ?>
> > >
> >
> > --
> > PHP General Mailing List (http://www.php.net/)
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
> >
>
> It might be worth noting that if you are using php4 remember to pass
> your object by reference when setting/retrieving from the session.
>
> --
> 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