PHP: Cookies

26. Juni 2016 von | Kategorie(n): Programmierung
Schlagwörter: // // // //

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)
<?php
	if(isset($_COOKIE["background"]))
		$background = $_COOKIE["background"];
	else 
		$background = "#FFF";
?>
<html>
<head>
	<title> Hintergrund mit Cookies !!! </title>
</head>
<body bgcolor="<?php echo $background; ?>">
	<h1> Schön, dass du hier bist. </h1>
	<p> Lorem ipsum als Platzhalter ist auf die Dauer auch öde... <br/> Deshalb nutze ich doch direkt mal die gunzt der Stunde, 
	um mich bei den Leute zu bedanken,<br/> die meinen Blog verfolgen und dort Artikel und Posts lesen und so weiter.<br/> Danke danke !!! </p>
	<h3>Hintergrundfarbe wÀhlen</h3>
	<form action="setBackground.php" method="POST">
		<label>Farbe
			<select name="color">
				<option value="#FF0000" selected>Rot</option>
				<option value="#00FF00">GrĂŒn</option>
				<option value="#0000FF">Blau</option>
				<option value="#CCC">Grau</option>
			</select>
		</label>
		<input type="submit" name="gesendet" value="Setzen!" />
	</form>	
	
	<p> © Tim Poerschke </p>
</body>
</html>
<?php
	// Dieser Cookie ist 1 Jahr gĂŒltig und hat einen Farbcode als Inhalt
	setcookie("background",$_POST['color'],time()+60*60*24*365);
?>
<html>
<head>
	<title> Farbe gesetzt </title>
</head>
<body>
	<a href="background.php"> ZurĂŒck</a>
</body>
</html>

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)
Diesen Post teilen:
Facebooktwittergoogle_plusredditpinterestlinkedinmail

Schreibe einen Kommentar

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

84 − 79 =