Hallo allen,
Ik heb een webshop geschreven die de winkelwagen bijhoudt in sessies. Er is een array 'producten' met als inhoudt producten[productid] = aantal.
Bij het toevoegen van een product wordt dus $_SESSION[producten][$_GET[id]]++; uitgevoerd. Ik heb een speciale klasse 'producten' waarin producten uit de database gehaald worden en in een 'product' klasse gestopt worden. Deze wordt dus gebruikt in winkelwagen.php. Dit werkte perfect totdat ik de product(en) klasse drastisch aangepast hebt (inhoudelijk). Methodes en variabelen zijn nagenoeg hetzelfde gebleven.
Wanneer ik nu een product toevoeg werkt het perfect, maar zodra ik een tweede product toevoeg (hetzelfde of een ander) krijg ik een error. In de sessie wordt het volgende opgeslagen:
$_SESSION[0] = Object; (product met inhoud!)
$_SESSION[4] = 1; (willekeurig product, klopt gewoon, dit is het eerste product dat toegevoegd is)
Object is dus van het type 'product' (aldus print_r) en bevat het laatst toegevoegde product.
Het vreemde is dat dit product object gewoon nergens aangemaakt wordt, behalve in de winkelwagen.php. Maar dat object kan dus gewoon niet in de sessie variabele staan, dat doe ik nergens!
Ik kreeg eerst nog de melding overigens dat de klasse nog niet volledig geladen was ofzo. Bleek dat include( "lib/product.php" ); voor session_start(); moest komen te staan. Maar het heeft het bovenstaande probleem niet opgelost.
Wie o wie kan mij iets nuttigs hierover zeggen?
Ik heb een webshop geschreven die de winkelwagen bijhoudt in sessies. Er is een array 'producten' met als inhoudt producten[productid] = aantal.
Bij het toevoegen van een product wordt dus $_SESSION[producten][$_GET[id]]++; uitgevoerd. Ik heb een speciale klasse 'producten' waarin producten uit de database gehaald worden en in een 'product' klasse gestopt worden. Deze wordt dus gebruikt in winkelwagen.php. Dit werkte perfect totdat ik de product(en) klasse drastisch aangepast hebt (inhoudelijk). Methodes en variabelen zijn nagenoeg hetzelfde gebleven.
Wanneer ik nu een product toevoeg werkt het perfect, maar zodra ik een tweede product toevoeg (hetzelfde of een ander) krijg ik een error. In de sessie wordt het volgende opgeslagen:
$_SESSION[0] = Object; (product met inhoud!)
$_SESSION[4] = 1; (willekeurig product, klopt gewoon, dit is het eerste product dat toegevoegd is)
Object is dus van het type 'product' (aldus print_r) en bevat het laatst toegevoegde product.
Het vreemde is dat dit product object gewoon nergens aangemaakt wordt, behalve in de winkelwagen.php. Maar dat object kan dus gewoon niet in de sessie variabele staan, dat doe ik nergens!
Ik kreeg eerst nog de melding overigens dat de klasse nog niet volledig geladen was ofzo. Bleek dat include( "lib/product.php" ); voor session_start(); moest komen te staan. Maar het heeft het bovenstaande probleem niet opgelost.
Wie o wie kan mij iets nuttigs hierover zeggen?