Jump to content


Photo

PHP4 serialize object


  • Please log in to reply
1 reply to this topic

#1 ToonMariner

ToonMariner
  • Members
  • PipPipPip
  • Advanced Member
  • 3,342 posts
  • LocationNewcastle upon Tyne, UK

Posted 27 October 2006 - 11:02 AM

Have alittle problem...

On my development machine this works fine...

I create an object and put various bits in/take them out etc.

herers the code...

<?php
require_once('../shopping_cart/classes/cart.clss.php');
if	(
	isset	(
			$_SESSION['cart']
			)
	)
{
	$cart	=	unserialize($_SESSION['cart']);
}
else
{
	$cart			=	new shopCart;
}

if	(
	isset	(
			$_GET['action']
			)
	)
{
	$num	=	isset($_GET['num'])	?	$_GET['num']	:	1;
	switch ($_GET['action'])
	{
		case	'additem':
			$cart->addItem	(
							$_GET['id']	,
							$num
							);
			break;
		case	'removeitem':
			$cart->removeItem	(
								$_GET['id']	,
								$num
								);
			break;
		case	'togglecart':
			$cart->togglecart();
			break;
		default	:
	}
}
$_SESSION['cart']	=	serialize($cart);
?>


Now on my development machine I can (after this part of the code has been executed) check $cart->items (one array in the object) however on the live server the whole object has been serialized so I can now only check the byte-stream rep. the object itself no longer 'exists'.

I can't see any differences in ini settings from my machine to that of the live server so any pointers would be very much appreciated.
follow me on twitter @PHPsycho

#2 Jenk

Jenk
  • Members
  • PipPipPip
  • Advanced Member
  • 778 posts

Posted 27 October 2006 - 11:54 AM

FYI: You don't need to serialise it when assigning to a session var, the engine does this automagically for you.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users