Ik moet voor school een opdracht maken waaruit ik informatie uit een form haal deze vervolgens opsla in een array en vervolgens in een cookie. Dan moet ik de gegevens ook weer uit kunnen lezen.
Hier is mijn form:
<html>
<head>
</head>
<body>
<form method="POST">
Voornaam: <input type="text" name="vnaam"><br>
Achternaam: <input type="text" name="lnaam"><br>
Email: <input type="text" name="email"><br>
Taal: <input type="text" name="taal"><br>
<input type="submit">
</form>
<a href="php.php">Klik hier voor de uitwerking</a>
</bod
</html>
Hier is mijn phpcode, die een array en de cookie aanmaken:
<?php
$expiry = new DateTime('+1 day');
$data = array($_POST['vnaam'], $_POST['lnaam'], $_POST['email'], $_POST['taal']);
setcookie('data', serialize($data), $expiry->getTimestamp());
?>Wat ik dus niet goed begrijp is dat wanneer de form nog niet ingevuld is. ik meldingen in mijn browser krijg van php, undefined index. logisch. maar ik zou graag willen dat de gegevens in de array worden opgeslagen zonder dat deze van te voren meld dat hij nog leeg is. Als de gegevens zijn opgeslagen in de array en in de cookie. dan druk ik op een link die gaat naar de volgende pagina om daar vervolgens de cookie met als inhoud de array uit te lezen.
Nu begrijp ik alleen het idee van het loopen niet zo goed. Ik heb meerdere duidelijke uitleg filmpjes gekeken. en een basis loop snap ik maar. Maar hierbij denk ik omdat een cookie van zichzelf al een array is, dus gebruik moet maken van een foreach loop in een foreach loop? Ook heb de data in de $data array serialized maar unserilizen gaat lastig als ik niet bij mijn $data array kan komen.
in ieder geval zijn dit de uitwerkingen als ik de form volledig invul en de data uitlees uit de cookie met print_r:
Php code:
<?php
if (isset($_COOKIE['data']))
{
print_r($_COOKIE);
}
?>
resultaat:
Array ( [userdata] => a:4:{s:5:"vnaam";s:5:"Rudie";s:5:"lnaam";s:7:"Jellema";s:5:"email";s:30:"[email protected]";s:4:"taal";s:9:"Nedelands";} [data] => a:4:{i:0;s:5:"Rudie";i:1;s:2:"je";i:2;s:14:"[email protected]";i:3;s:9:"Nedelands";} )
alvast bedankt,
rudie