[PHP] passing an object using session var

2006-11-29 Thread list arama

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

2006-11-29 Thread Thomas Munz
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

2006-11-29 Thread Jochem Maas
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

2006-11-29 Thread Eric Butera

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

2006-11-29 Thread list arama

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

2006-11-29 Thread list arama

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