[PHP] passing an object using session var
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'); ob_start(); $obj = new TestClass(); $obj-setName('MyName'); $obj-display();// outputs 'MyName' header(Location: http://localhost/~lr/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 ?
Re: [PHP] passing an object using session var
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 $_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;); // re-direct to script2 ---script 2 ?php include(TestClass.php); session_start(); $newObj = unserialize($_SESSION['obj']); //-- convert string back into object $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'); ob_start(); $obj = new TestClass(); $obj-setName('MyName'); $obj-display();// outputs 'MyName' header(Location: http://localhost/~lr/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
Re: [PHP] passing an object using session var
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;); // 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;); // 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
Re: [PHP] passing an object using session var
On 11/29/06, Jochem Maas [EMAIL PROTECTED] 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;); // 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;); // 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
Re: [PHP] passing an object using session var
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;); 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 [EMAIL PROTECTED] wrote: On 11/29/06, Jochem Maas [EMAIL PROTECTED] 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;); // 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;); // 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
Re: [PHP] passing an object using session var
errata: $newObj-display();// this *does* work On 11/29/06, list arama [EMAIL PROTECTED] 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 [EMAIL PROTECTED] wrote: On 11/29/06, Jochem Maas [EMAIL PROTECTED] 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.phphttp://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.phphttp://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