PHP: Cookies

Ziemlich oft steht da auf einer Internetseite: „bla bla bla Wir verwenden Cookies… bla bla.“ 😀 Und dann findet sich dort ein kleiner Knopf mit „akzeptieren“ drauf. Was diese Dinger machen und wieso sie so oft eingesetzt werden, erfährst du in diesem Artikel.

Was sind Cookies?

Cookies sind kleine Textdateien die PHP in deinem Browser speichert. Keine Sorge die machen nix kaputt 😀 … Darüber hinaus lässt sich dein Browser so wiedererkennen. Oft speichern Internetseiten Einstellungen, die du vorgenommen hast oder zählen, wie oft du dort bist.

Ein Anwendungsbeispiel: Hintergrundfarbe

Hier soll es darum gehen, die Hintergrundfarbe einer Internetseite zu speichern und beim nächsten Besuch die gespeicherte Farbe anzuzeigen. Du wirst sehen, das ist gar nicht so schwer. Was du brauchst:

  • 2 PHP-Dateien
  • Ein Formular
  • die setcookie- Funktion und das $_COOKIE-Array (bereitgestellt von PHP; keine Sorge :D)

<br />
&lt;?php<br />
	if(isset($_COOKIE[&quot;background&quot;]))<br />
		$background = $_COOKIE[&quot;background&quot;];<br />
	else<br />
		$background = &quot;#FFF&quot;;<br />
?&gt;<br />
&lt;html&gt;<br />
&lt;head&gt;<br />
	&lt;title&gt; Hintergrund mit Cookies !!! &lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body bgcolor=&quot;&lt;?php echo $background; ?&gt;&quot;&gt;<br />
	&lt;h1&gt; Schön, dass du hier bist. &lt;/h1&gt;<br />
	&lt;p&gt; Lorem ipsum als Platzhalter ist auf die Dauer auch öde... &lt;br/&gt; Deshalb nutze ich doch direkt mal die gunzt der Stunde,<br />
	um mich bei den Leute zu bedanken,&lt;br/&gt; die meinen Blog verfolgen und dort Artikel und Posts lesen und so weiter.&lt;br/&gt; Danke danke !!! &lt;/p&gt;<br />
	&lt;h3&gt;Hintergrundfarbe wählen&lt;/h3&gt;<br />
	&lt;form action=&quot;setBackground.php&quot; method=&quot;POST&quot;&gt;<br />
		&lt;label&gt;Farbe<br />
			&lt;select name=&quot;color&quot;&gt;<br />
				&lt;option value=&quot;#FF0000&quot; selected&gt;Rot&lt;/option&gt;<br />
				&lt;option value=&quot;#00FF00&quot;&gt;Grün&lt;/option&gt;<br />
				&lt;option value=&quot;#0000FF&quot;&gt;Blau&lt;/option&gt;<br />
				&lt;option value=&quot;#CCC&quot;&gt;Grau&lt;/option&gt;<br />
			&lt;/select&gt;<br />
		&lt;/label&gt;<br />
		&lt;input type=&quot;submit&quot; name=&quot;gesendet&quot; value=&quot;Setzen!&quot; /&gt;<br />
	&lt;/form&gt;	</p>
<p>	&lt;p&gt; © Tim Poerschke &lt;/p&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />

<br />
&lt;?php<br />
	// Dieser Cookie ist 1 Jahr gültig und hat einen Farbcode als Inhalt<br />
	setcookie(&quot;background&quot;,$_POST['color'],time()+60*60*24*365);<br />
?&gt;<br />
&lt;html&gt;<br />
&lt;head&gt;<br />
	&lt;title&gt; Farbe gesetzt &lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
	&lt;a href=&quot;background.php&quot;&gt; Zurück&lt;/a&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />

Ansehen

Erklärung: Das Formular übergibt die Daten mittels $_POST an eine zweite Datei, die den Cookie setzt. Navigierst du dann wieder zur ersten Datei erscheint dort deine gewünschte Hintergrundfarbe, falls keine Hintergrundfarbe geladen werden kann (weil irgendwas nicht funzt 😀 oder keine Farbe gewählt wurde), wird der Hintergrund einfach weiß gefüllt.

Datei: background.php Cookies müssen immer zuerst geladen werden. Ich meine, dass der Zugriff auf die Cookies vor jeglicher Ausgabe deines PHP-Skripts geschehen (auch vor den HTML-Tags). Du siehst, das genau dies hier zu Beginn des Codes passiert: Der Inhalt des Cookies wird geladen. Da wir in den Cookie nur den Farbcode geschrieben haben, können wir diesen hier einfach für die Hintergrundfarbe einsetzen. Falls nicht wird Weiß eingesetzt. Ganz easy 😉 Dann gibt’s da noch ein Formular mit einem select-Objekt drin. Dies ermöglicht die direkte Übergabe der value an den Cookie (Ja, das würde auch mit Radio-Buttons gehen, aber so ist es schöner :D).

Datei: setBackground.php Hier wird der Cookie gesetzt mit der oben angesprochenen Funktion. Sie besitzt viele Parameter. Deshalb habe ich die drei wichtigsten herausgepickt: setcookie(name, wert, ablaufdatum). Auch diese Funktion muss vor der ersten Skriptausgabe aufgerufen werden. Der Cookie benötigt einen eindeutigen Namen. Dann den Inhalt bzw. Wert und dann noch ein Verfallsdatum (Der Browser löscht den Cookie irgendwann).

 

Tipp: Willst du einen Cookie löschen ? Setze das Ablaufdatum in die Vergangenheit. 😉

 

Vielen Dank für’s Lesen !!! 🙂

<Tim Poerschke />

Was denkst du über diesen Post?
  • Gut (0)
  • Hilfreich (0)
  • Nicht gut (0)
  • Lustig 😀 (0)

von | Kategorie: Programmierung
Schlagwörter: // // // //

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

48 − = 45