|

Cookies mit PHP
Cookies sind praktisch - wenn man weiß, wie man mit ihnen
umgeht. Hier eine kleine Anleitung, wie dies in PHP funktioniert.
Cookies- seit ihrer Einführung sind sie sehr umstritten. Manch
ein Webdesigner fragt sich: Wieso eigentlich? Cookies sind doch
eigentlich total praktisch! Stimmt. Sie geriten nur in Veruf, weil
einige "Fachmagazine" behaupteten, Cookies würden
eine Sicherheitslücke darstellen. Das stimmt aber nicht! Wenn
man in ihnen nicht gerade Daten für Werbung etc. speichert,
kann man ganz tolle Sachen damit machen. Dies will ich euch in diesem
Artikel mal etwas näher erklären.
Für die Leute, die den ersten Artikel über PHP noch nicht
gelesen haben und auch sonst noch gar keine Ahnung von PHP haben:
Schaut ihn euch nochmal an! Dieser Artikel baut direkt auf den Grundlagen
auf.
So, nun aber zum eigentlichen Thema: Cookies. Cookies sind kleine
Dateien, die auf der Festplatte abgespeichert werden. In ihnen kann
man eine Variable speichern. So kann zum Beispiel beim Besuch einer
Seite die aktuelle Zeit oder die Anzahl der Besuche in einem Cookie
gespeichert werden. So kann man bei einem erneuten Aufruf ausgeben,
wie oft der Besucher schon auf dieser Seite war bzw. wann das letzte
Mal. Ersteres ist auch das Beispiel, das ihr in diesem Artikel finden
werdet. Nun aber gleich ein bisschen Code:
CODE
<?php
setcookie("besuche","1",time()+3600);
?>
Mit der Funktion setcookie() wird
das Cookie gespeichert. Es enthält jetzt den Wert 1 und ist
3600 Sekunden lang gültig. Zur Erinnerung: time()
gibt immer den aktuellen Unix-Zeitstempel aus (Sekunden seit dem
1.1.1970). Im Beispiel wird dieser um 3600 Sekunden erhöht.
Wird beim Cookie kein Verfallsdatum angegeben, gilt es, bis der
Browser geschlossen wird. Um jetzt auf das Cookie zuzugreifen, wird
es einfach wie eine normale Variable angesprochen (In unserem Fall
also mit $besuche). Hier der
Code, der die Anzahl der Besuche ausgibt.
CODE
<?php
$besuche++;
echo $besuche;
?>
Damit die richtige Anzahl der Besuche angegeben wird, müssen
wir natürlich einen dazuzählen. Dies erreicht man mit
$besuche++;. Aber jetzt will
man natürlich die aktuelle Anzahl wieder in einem Cookie speichern.
Dies erreicht man wieder mit setcookie().
Damit das Script weiterhin einsatzfähig bleibt, muss dieses
neue Cookie das alte "ersetzen". Wir weisen ihm also wieder
den selben Namen zu:
CODE
<?php
setcookie("besuche",$besuche,time()+3600);
?>
Damit wäre auch schon dieser einfache Zähler fertig.
Beim nächsten Aufruf der Seite wird dann wieder eins zu den
Besuchen addiert und die Anzahl ausgegeben. Danach wird der neue
Wert wieder im Cookie gespeichert. Zum Abschluss nochmal das komplette
Script:
CODE
<?php
if(!isset($besuche)){
$besuche=0;
}
$besuche++;
setcookie("besuche",$besuche,time()+3600);
echo $besuche;
?>
..und die passende Erklärung: Wenn das Cookie nicht gesetzt
ist (Man prüft mit der Funktion
isset() ob einer Variable initialisiert wurde. Falls nicht,
wird im Beispiel der Variablen $besuche
der Wert 0 zugewiesen. In jedem Fall wird
$besuche um 1 erhöht und dann ausgegeben). Mit if(){}
wird eine Bedingung auf ihren Wahrheitsgehalt geprüft. Ist
sie wahr, wird der Code in den geschweiften Klammern ausgeführt,
sonst wird dieser ignoriert. Nach der Erhöhung von
$besuche wird die Anzahl ausgegeben und schließlich
wird das Cookie gesetzt. Beim nächsten Aufruf der Seite geht
das ganze wieder von vorn los. Achja... Eins hab ich noch vergessen:
Der ganze Code muss VOR der eigentlichen Seite stehen. Er muss also
der erste Eintrag in der Datei sein. Den echo()-Befehl
kannst du aber an eine beliebige Stelle der Datei setzen.
|