php hulp/ array in een cookie
Ik ben bezig met een school opdracht waar ik een array in een cookie opslaan moet.
Nu is mijn vraag hoe dit moet.
Ik heb een manier gevonden maar niet echt duidelijk is:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
// set the cookies
setcookie("cookie[three]", "cookiethree");
setcookie("cookie[two]", "cookietwo");
setcookie("cookie[one]", "cookieone");
// after the page reloads, print them out
if (isset($_COOKIE['cookie'])) {
foreach ($_COOKIE['cookie'] as $name => $value) {
echo "$name : $value <br />\
";
}
}
?>
// set the cookies
setcookie("cookie[three]", "cookiethree");
setcookie("cookie[two]", "cookietwo");
setcookie("cookie[one]", "cookieone");
// after the page reloads, print them out
if (isset($_COOKIE['cookie'])) {
foreach ($_COOKIE['cookie'] as $name => $value) {
echo "$name : $value <br />\
";
}
}
?>
Wat ik zo raar vind is dat de array niet verklaart wordt.
Mij lijkt het dat er eerst een array aangemaakt moet worden, bijvoorbeeld:
$words = array("regen", "wind", "hagel");
en dan de array toevoegen aan de cookie, maar hoe?
alvast bedankt,
rudie
Gewijzigd op 22/01/2017 19:34:51 door - Ariën -
Array's zijn niks anders dan datacontainers die binnen PHP gelden, en die een boomstructuur kunnen bevatten.
Als je de data in je Cookie wilt opslaan, dan moet je dit als Text opslaan. Bijvoorbeeld met een scheidingsteken tussen de waardes, of door het in JSON formaat op te slaan. Kijk eens naar json_encode() en json_decode() op PHP.net.
Of de data per cookie opslaan. Maar probeer niet boven de 20 cookies per host te komen. Ik weet niet of de browsers dat nog slikken. ;-)
Gewijzigd op 22/01/2017 19:37:28 door - Ariën -
Dat gezegd hebbende is een cookie mogelijk niet de beste plek om je datastructuren in te kieperen. Hiervoor is mogelijk een sessie geschikter. Een alternatief is (inderdaad) een JSON-string, of een geserialiseerd array, maar de vraag is, wil je deze informatie blootstellen aan (en mogelijk manipuleerbaar maken door) een eindgebruiker? Cookies worden immers aan de gebruikerskant opgeslagen.
Indien je cookies vanuit PHP wilt declareren zul je deze op de manier moeten opbouwen die voor een array-notatie zorgt. De $value-parameter verwacht immers een string (en geen array of wat dan ook). Je zult dus een cookie-met-array-notatie moeten opbouwen in een for(each)-loop.