Beschreibung:
int
setcookie ( string name, string value, int expire, string path, string domain, int secure [, string value [, int expire [, string path [, string domain [, int secure]]]]])
setcookie() definiert ein mit den
Header-Informationen zu übertragendes Cookie. Cookies müssen
vor irgendwelchen anderen Headern gesendet
werden (dies ist eine Einschränkung der Cookies, nicht von PHP).
Sie müssen deshalb solche Funktionsaufrufe vor irgendwelchen
<html>- oder
<head>-Tags im Skript einsetzen.
Alle Argumente - ausser name - sind
optional. Ist nur der Name angegeben wird das Cookie mit diesem
Namen auf dem Client gelöscht. Sie können beliebige Argumente
auch durch einen Leerstring ("")
ersetzen, um diese Argumente zu übergehen.
Der expire-Parameter und das
secure-Argument sind Integer-Werte und
können nicht mit einem Leerstring übersprungen werden. Setzen
sie statt dessen NULL (0). Der
expire-Parameter ist ein normaler
UNIX-Zeitwert als Integer-Zahl, wie er von der
time() oder
mktime()-Funktion zurück gegeben wird. Das
secure-Argument bedeutet, dass das Cookie
nur über eine sichere HTTP-Verbindung geschickt werden soll.
Anwendungsbereiche:
Cookies werden nicht sichtbar, bevor nicht eine Seite geladen
wird, in der das Cookie sichtbar sein soll.
Cookies müssen mit den selben Parametern gelöscht werden, mit
denen sie gesetzt wurden.
In PHP3 werden mehrfache Aufrufe von setcookie()
im selben Skript in umgekehrter Reihenfolge abgearbeitet. Sollten
sie also ein Cookie löschen wollen bevor sie ein anderes setzen,
sollten sie das Setzen vor dem Löschen vornehmen. In PHP4 werden
mehrfache Aufrufe von setcookie() in der
Reihenfolge ihres Aufrufs behandelt.
Einige Beispiele, wie Cookies gesetzt / gesendet werden:
Beispiel 1. setcookie()-Beispiele: setcookie ("TestCookie", "Test Value");
setcookie ("TestCookie", $value, time()+3600); /* verfällt in 1 Stunde */
setcookie ("TestCookie", $value, time()+3600, "/~rasmus/", ".utoronto.ca",1); |
|
Beispiele, wie die vorhergehenden Cookies wieder gelöscht werden:
Beispiel 2. setcookie()-Beispiele: setcookie ("TestCookie");
// Setzen des Ablauf-Zeitpunktes auf 1 Stunde vorher
setcookie ("TestCookie", "", time() - 3600);
setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca",1); |
|
Beim Löschen eines Cookies sollten sie sicher stellen, dass die
Verfallszeit in der Vergangenheit liegt, damit ihr Browser
"zufrieden" ist.
Beachten sie, dass der Wertebereich des Cookies automatisch
URL-konform codiert (urlencoded) wird, sobald sie das Cookie
senden, und wenn es gelesen wird, wird es automatisch URL-konform
decodiert und einer Variablen zugewiesen, die den selben Namen
wie das Cookie trägt. Um die Inhalte unserer Test-Cookies zu
sehen, brauchen sie nur eines der folgenden Beispiel zu benutzen:
Sie können auch ein Array an Cookies setzen, in dem sie die
Array-Schreibweise benutzen. Dadurch werden so viele Cookies
gesetzt, wie ihr Array Elemente hat. Sobald das Cookie aber von
ihrem Skript gelesen wird, werden alle Werte in ein einziges
Array mit dem Cookie-Namen eingelesen:
Weitere Informationen zu Cookies und deren Spezifikationen
erhalten sie bei Netscape unter http://www.netscape.com/newsref/std/cookie_spec.html.
Microsofts Internet-Explorer 4 mit Servive-Pack 1 geht nicht
korrekt mit Cookies um, die den Pfad-Parameter beinhalten.
Netscape Communicator 4.05 und Microsoft Internet Explorer 3.x
scheinen mit Cookies Probleme zu haben, wenn die Argumente für
Pfad und Zeit nicht angegeben sind.