06. november 2011 - 19:15Der er
22 kommentarer og 1 løsning
Cookies
Godaften, Vil høre om I kan hjælpe. Jeg har lavet et script, som skal vise et felt, hvor man kan indtaste en farve skoene skal have og som skal gemmes ved hjælp af cookies. Farven skal printes foroven. Jeg har lavet et script, men det vil ikke vise noget frem. Hvad gør jeg forkert?
Nu viser den "fejl", når jeg indtaster en farve. Hvad vil det sige i header restriction? Jeg har ikke arbejdet med cookie før, så jeg er rimelig ny på området.
citat setcookie() defines a cookie to be sent along with the rest of the HTTP headers. Like other headers, cookies must be sent before any output from your script (this is a protocol restriction). This requires that you place calls to this function prior to any output, including <html> and <head> tags as well as any whitespace. /citat
>Vil det sige at jeg skal gøre følgende: nej, set cookie skal op som det første
ca sådan (utested)
<?php if (empty($_GET)) { setcookie ('sko', 'farve', time()+3600); echo 'Skofarve:' .($_COOKIE['sko']!= ''? $_COOKIE['sko']: 'vises her'); // skoefarve ? } //korrekt //echo "Sko du har valgt": //echo $_COOKIE["farve"];
For lige at præcisere: Du skal sætte kagen, før noget somhelst output til browseren - fuldstændig, som ronols skriver. Til gengæld kan den først læses, efter du er navigeret til en anden side
I det hele taget er det noget rod at blande HTML og PHP sammen. Du bør have dine PHP funktioner liggende helt i toppen af dokumentet - før DTD'en.
Al din PHP bør være afviklet - og alle HTML-strenge, der senere skal bruges nede i dokumentet, skal være færdige og ligge klar - inden du kommer forbi DTD'en.
Det eneste, du bør gøre nede i HTML-koden, er at skrive de færdige strenge ind i dokumentet. At udskrive HTML i PHP-løkker er dårlig kodeskik. Også selvom det ofte ses hos 'hobbykodere' ... med eller uden ansættelsesbrev *o)
Okay, nu har jeg sat php øverst og html under det. Scriptet fejler dog stadigt. Jeg har oploadet filen igen og vil stadig ikke udskrive en tilfældig farve jeg skriver.
Ja, nu sætter du i det mindste kagen, før du udskriver noget. Men jeg fatter ikke hat af resten.
Det, du skriver i koden er: "Hvis $_GET array'et er tomt - så vil jeg sætte en cookie med det element i $_GET array'et, der hedder 'farve' som værdi. Ellers udskriver jeg en fejl".
Hvis array'et er tomt, så skal den udskrive xxx, hvis du forstår hvad jeg mener. Jeg er helt nybegynder med cookies og forstår stadig ikke særligt meget af det.
Men tænkte på om man ikke kan gøre følgende: <?php if(empty($_GET)) { $farve = $_GET['farve']; setcookie ('sko', $farve, time()+3600); echo $_COOKIE["sko"];
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.