Brugernavn:




Kodeord: Husk
Forside Forum Artikler Downloads Søg
 

Cookies


En cookie er en lille fil med data, som gemmes af brugerens browser på brugerens computer. En cookie kan have en størrelse på max 4 KB og en server kan gemme i alt op til 20 cookies på brugerens computer.
Cookies kan kun læses af personen, som har serveren og brugeren, hvor den er gemt hos. Derfor har cookies også den uleme, at brugeren kan læse den. Samtidig kan brugeren instille browseren til at give besked, når en cookies gemmes, og man kan desuden vælge ikke at acceptere at cookies gemmes på ens computer.

En cookie er tidsbestemt. Dvs., når cookien gemmes er der angivet en levetid for den. Når dne levetid udløber slettes cookien. Denne levetid angives i sekunder.

For at oprette en cookie, skal du bruge setcookie(); funktionen. Du skal altid sætte en cookie før header, dvs. før HTML koder. Man bruger følgende kode til oprettelse af cookies:

setcookie("navn", "indhold", tid);

Navnet på cookien er angivet med navn her. Dernæst kommer indholdet, hvad cookien skal indeholde. Tid er levetiden for cookien i antal sekunder.
For at angive tiden bruges funktionen time() og dernæst + og antal sekunder, den skal leve. Et eksempel på en cookie, der vil have en levetid på 1 t (3600 sekunder).

setcookie("check", "login", time()+3600);

For at kalde en cookies bruges $_COOKIE[navn]. Navn angiver navnet på cookien. Lad os fz bruge cookien over med navnet check og indholdet login. I koden under, vil PHP checke om man er logged in.
  1. <?php
  2. if (isset($_COOKIE[login])) {
  3. print "Du er logged in";
  4. }
  5. else {
  6. print "Du er ikke logged in!";
  7. }
  8. ?>

  9. Herunder kommer et eksempel, hvor vi bruger flere cookies. I et lille loginsystem

  10. <?php
  11. if($action == "login") {
  12. $brugernavn = $_POST[brugernavn];
  13. $password = $_POST[password];
  14. if($brugernavn == "Anders" && $password == "1234") {
  15. setcookie("check", "login", time()+3600);
  16. setcookie("brugernavn", "$brugernavn", time()+3600);
  17. if($_COOKIE[check] == "login") {
  18. print "Hej $_COOKIE[brugernavn]. Du er nu logged in!";
  19. }
  20. else {
  21. print "Du har valgt ikke at acceptere cookies, og du kan derfor ikke logge in";
  22. }
  23. }
  24. else {
  25. print "Brugernavnet passede ikke sammen med passwordet";
  26. }
  27. }
  28. else {
  29. if($_COOKIE[check] == "login") {
  30. print "Hej $_COOKIE[brugernavn]";
  31. }
  32. else {
  33. print "<form method="POST" action="?action=login">
  34. Brugernavn: <input type="text" name="brugernavn"><br>
  35. Password: <input type="text" name="password"><br>
  36. <input type="submit" value="login">
  37. </form>";
  38. }
  39. }
  40. ?>
I 2. og 3. linie henter vi brugernavnet og passwordet fra formularen og gemmer dem i variabler. Dernæst tjekker vi om variablen $brugernavn har indeholdet "Anders" og variablen $password har indeholdet "1234".
Hvis den har denne sætter vi 2 cookies. Først sætter vi en cookie med navnet check og indeholdet login. Dernæst sætter vi en cookie med navnet brugernavn og indeholdet af variablen $brugernavn.
I linie 7 tjekker vi om cookien er oprettet. Hvis cookien check har indeholdet login udskriver vi "Hej $_COOKIE[brugernavn]. Du er logged in!". Hvis cookien ikke havde dette indhold, går vi udfra at brugeren har sat, at den ikke accepterer cookies. Derfor udskriver vi dette.
I linie 5 tjekkede vi om brugernavn og password passede. Hvis den ikke gjorde dette udføre den linie 12.
Hvis action ikke var login (linie 1), altså man ikke ved at logge in udføre vi fra linie 19 til linie 29.
Her tjekker vi først om cookien check har indholdet login. Hvis den har dette går vi udfra, at brugeren er logged in. Derfor udskriver vi "Hej $_COOKIE[brugernavn]". Ellers udskriver vi login-formen, så brugeren kan logge in.

Hvis du ønsker fx at slette en cookie, før den selv slettes, kan du bruge den samme funktion som at sætte en cookie nemlig setcookie();. Denne gang angiver vi bare tide med et negativt tal. Eksempel:
  • setcookie("check", "", time()-1);
Samtidig vælger du ikke at sætte indholdeholdet ikke skal være angivet. Her kommer en lille script-kode, som kunne høre til kodeeksemplet med login.
  1. <?php
  2. if($action == "logout") {
  3. setcookie("check", "", time()-1);
  4. setcookie("brugernavn", "", time()-1);
  5. print "Farvel";
  6. }
  7. ?>
  8. <a href="?action=logout">Logout</a>
Oprettet af:

PHP

Point modtaget: 0

Rate:
07:33 08/09/2006

Kommentarer

Giv din mening tilkende om denne artikel, eller læs andres.
Har du spørgsmål eller brug for hjælp til denne artikel henvises du til forummet.
Rigtig god artikel, jeg har lært en hel masse, hvordan man bruger, sletter cookies eller kager osv..

Kan kun give dig 5/5 :D
Sidst redigeret 07:23 - 24/05/2007
Oprettet af:
  Mail
16:44 03/03/2007
Ser godt ud. Men bruger aldrig cookies selv. :)
Oprettet af:
  Mail
22:02 16/04/2007
Ser fandme godt ud :).
- 5/5 :P!
Oprettet af:
  Mail
13:12 28/05/2007
Fed artikel, rigtig let at forstå.
Oprettet af:
  Mail
10:34 03/06/2007
Ja meget godt skrevet osv.. har selv et lille problem med det :P -Tak
Oprettet af:
  Mail
16:29 12/06/2007
Du skal være oprettet og logget ind for at kommentere en artikel
Copyright © Rowl.dk v/ Michael Raagaard | 2005-12 | Alle rettigheder forbeholdes