Dette med serialize løste iøvrigt et stort problem for mig. Arrays i min cookies er faktisk data hentet ud af nogle klasser. Jeg ser nu på php's hjemmeside at man også kan lave serialize på objekter af klasser. Derved er følgende muligt.
<?php class bil{ var $maerke; function bil($_maerke){ $this->maerke = $_maerke; } } class ejer{ var $navn; var $bil; function ejer($_navn,$_bil){ $this->ejer = $_navn; } function ejerskab(){ echo $this->ejer." er ejer af en ".$this->bil->maerke.".<br>\n"; } }
if (isset($_COOKIE['test'])){ foreach ($_COOKIE['test'] as $navn => $value){ $indhold[$navn] = $value; } $bil = array(); $ejer = array(); $antal = $indhold["antal"]; $bil = unserialize(stripslashes($indhold["bil"])); $ejer = unserialize(stripslashes($indhold["ejer"])); for ($i=0;$i<$antal;$i++){ $ejer[$i]->bil = $bil[$i]; $ejer[$i]->ejerskab();} } else{ $antal = 2; $bil[0] = new bil("Volvo"); $bil[1] = new bil("Skoda"); $ejer[0] = new ejer("Søren",$bil[0]); $ejer[1] = new ejer("Peter",$bil[1]); setcookie("test[antal]",$antal,time()+60); setcookie("test[bil]",serialize($bil),time()+60); setcookie("test[ejer]",serialize($ejer),time()+60); echo "Nu laves en cookie..."; echo "<form action=\"index.php\"><input name=\"lav_cookie\" type=\"submit\" value=\"lav_cookie\"></form>"; } ?>
Bemærk dog at alle relationer skal genoprettes. Derfor er man nødt til at genopretten relationen mellem ejer og bil ($ejer[$i]->bil = $bil[$i]). $ejer[$i]->bil er jo en relationel variabel på samme vis som variable af typen &$en_variabel.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.