PHP-Cookies

Cookies werden häufig verwendet, um Benutzer zu identifizieren.

Was ist ein Cookie?

Cookies werden häufig verwendet, um Benutzer zu identifizieren. Cookies sind kleine Dateien, die vom Server auf dem Computer des Benutzers hinterlassen werden. Jedes Mal, wenn dasselbe Computer über den Browser eine Seite anfordert, wird gleichzeitig das Cookie gesendet. Mit PHP können Sie Cookies erstellen und deren Werte abrufen.

Wie erstellt man Cookies?

Die Funktion setcookie() wird verwendet, um Cookies zu setzen.

Anmerkung:Die Funktion setcookie() muss vor den <html>-Tags stehen.

Syntax

setcookie(name, value, expire, path, domain);

Beispiel

In den folgenden Beispielen erstellen wir ein Cookie mit dem Namen "user", dem wir den Wert "Alex Porter" zuweisen. Wir haben auch angegeben, dass dieses Cookie nach einer Stunde abläuft:

<?php 
setcookie("user", "Alex Porter", time()+3600);
?>
<html>
<body>
</body>
</html>

Anmerkung:Bei der Übermittlung eines Cookies wird der Wert automatisch URL-kodiert und bei der Rückgabe automatisch dekodiert (um URL-kodierung zu verhindern, verwenden Sie stattdessen setrawcookie()).

Wie kann der Wert eines Cookies abgerufen werden?

Das PHP-Variable $_COOKIE wird verwendet, um den Wert des Cookies abzurufen.

In den folgenden Beispielen haben wir den Wert des Namens "user" des Cookies abgerufen und auf der Seite angezeigt:

<?php
// Ein Cookie ausgeben
echo $_COOKIE["user"];
// Eine Methode, um alle Cookies anzuzeigen
print_r($_COOKIE);
?>

In den folgenden Beispielen verwenden wir die Funktion isset() zur Überprüfung, ob ein Cookie gesetzt wurde:

<html>
<body>
<?php
if (isset($_COOKIE["user"]))
  echo "Willkommen " . $_COOKIE["user"] . "!<br />";
else
  echo "Willkommen Gast!<br />";
?>
</body>
</html>

Wie lösche ich einen Cookie?

Wenn Sie einen Cookie löschen, sollten Sie das Ablaufdatum auf eine Zeit vor dem aktuellen Zeitpunkt ändern.

Beispiel für das Löschen:

<?php 
// Setze das Ablaufdatum auf vor einer Stunde
setcookie("user", "", time()-3600);
?>

Was tun, wenn der Browser keine Cookies unterstützt?

Wenn Ihre Anwendung Browser umfasst, die keine Cookies unterstützen, müssen Sie andere Methoden in der Anwendung anwenden, um Informationen von einer Seite zur anderen zu übertragen. Eine Möglichkeit ist, Daten von einem Formular zu übertragen (über Formulare und Benutzerinput haben wir bereits früher in diesem Tutorial gesprochen).

Das folgende Formular sendet die Benutzerangaben an "welcome.php", wenn der Benutzer auf die Schaltfläche "提交" klickt:

<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="name" />
Alter: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>

Rufen Sie den Wert "welcome.php" wie folgt ab:

<html>
<body>
Willkommen <?php echo $_POST["name"]; ?>.<br />
Sie sind <?php echo $_POST["age"]; ?> Jahre alt.
</body>
</html>