Beispiel
Im folgenden Beispiel wird ein Cookie mit dem Namen "user" mit dem Wert "John Doe" . Das Cookie wird nach 30 Tagen verfallen (86400 * 30) . Die "/" bedeutet , dass das Cookie in gesamter Website verfügbar ist (otherwise, select the directory you prefer) Sie (otherwise, select the directory you prefer) , das (otherwise, select the directory you prefer) .
Wir holen Sie dann den Wert des Cookies "user" (den globalen Variable $ _COOKIE verwenden). Wir verwenden auch die isset() Funktion , um herauszufinden , ob das Cookie gesetzt wird:
<!DOCTYPE html>
<?php
$cookie_name = "user";
$cookie_value = "John
Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
// 86400 = 1 day
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name]))
{
echo "Cookie named '" . $cookie_name . "' is not
set!";
} else {
echo "Cookie '" . $cookie_name
. "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
Führen Sie zB » Definition und Verwendung
Die setcookie() Funktion definiert ein Cookie mit dem Rest der HTTP - Header gesendet wird zusammen.
Ein Cookie wird häufig verwendet, um einen Benutzer zu identifizieren. Ein Cookie ist eine kleine Datei, die der Server auf dem Computer des Benutzers einbettet. Jedes Mal, wenn der gleiche Computer eine Seite mit einem Browser fordert, wird es das Cookie zu senden. Mit PHP können Sie sowohl erstellen und Cookie-Werte abzurufen.
Der Name des Cookies auf eine Variable mit dem gleichen Namen automatisch zugewiesen. Wenn beispielsweise ein Cookie mit dem Namen gesendet wurde "user" wird eine Variable erstellt automatisch $ Benutzer aufgerufen, den Cookie - Wert enthält.
Note: Die setcookie() Funktion vor dem erscheinen <html> -Tag.
Note: Der Wert des Cookie wird automatisch Urlencoded wenn das Cookie senden und automatisch entschlüsselt , wenn sie empfangen (verhindern urlencoding, Verwendung setrawcookie() statt).
Syntax
setcookie( name,value,expire,path,domain,secure,httponly );
Parameter | Beschreibung |
---|---|
name | Erforderlich. Gibt den Namen des Cookies |
value | Optional. Gibt den Wert des Cookies |
expire | Optional. Gibt an, wann das Cookie abläuft. Der Wert: time() + 86400 * 30, wird das Cookie gesetzt in 30 Tagen abläuft. Wenn dieser Parameter nicht angegeben oder auf 0 gesetzt, wird das Cookie am Ende der Sitzung abläuft (when the browser closes) wird (when the browser closes) . Standard: 0 |
path | Optional. Gibt den Server-Pfad des Cookies. Bei der Einstellung "/" , wird das Cookie innerhalb der gesamten Domain verfügbar. Bei der Einstellung "/php/" , wird das Cookie nur innerhalb des PHP - Verzeichnis und alle Unterverzeichnisse von PHP zur Verfügung. Der Standardwert ist das aktuelle Verzeichnis, das das Cookie gesetzt wird in |
domain | Optional. Gibt die Domänennamen des Cookies. Um das Cookie auf allen Unterdomänen von example.com zu machen, setzt Domäne "example.com" . Setzen auf www.example.com wird das Cookie macht nur im www Sub-Domain verfügbar |
secure | Optional. Gibt an, ob oder nicht sollte das Cookie nur über eine sichere HTTPS-Verbindung übertragen werden. TRUE gibt an, dass das Cookie nur dann, wenn eine sichere Verbindung besteht eingestellt werden. Der Standardwert ist FALSE |
httponly | Optional. Wenn auf TRUE wird das Cookie nur über das HTTP - Protokoll zugänglich sein (the cookie will not be accessible by scripting languages) . Diese Einstellung kann helfen, Identitätsdiebstahl durch XSS-Angriffe zu reduzieren. Der Standardwert ist FALSE |
Technische Details
Rückgabewert: | TRUE auf Erfolg. FALSE bei einem Fehler |
---|---|
PHP Version: | 4+ |
PHP Changelog: | PHP 5.5 - Ein Max-Age-Attribut wurde in den Set-Cookie-Header an den Client gesendet enthalten PHP 5.2 - Der Httponly-Parameter wurde hinzugefügt |
Mehr Beispiele
Beispiel
Mehrere Verfallstermine für Cookies:
<?php
$value = "Hello world!";
// cookie will expire when the
browser close
setcookie("myCookie", $value);
// cookie will expire
in 1 hour
setcookie("myCookie", $value, time() + 3600);
// cookie
will expire in 1 hour, and will only be available
// within the php
directory + all sub-directories of php
setcookie("myCookie", $value,
time() + 3600, "/php/");
?>
<html>
<body>
...some code...
</body>
</html>
Führen Sie zB » Beispiel
So ändern Sie einen Cookie, gerade gesetzt (again) das Cookie mit der setcookie() Funktion:
<?php
$cookie_name = "user";
$cookie_value = "Alex
Porter";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name]))
{
echo "Cookie named '" . $cookie_name . "' is not
set!";
} else {
echo "Cookie '" . $cookie_name
. "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
Führen Sie zB » Beispiel
Ein Cookie, verwenden Sie die zu lösch setcookie() Funktion mit einem Ablaufdatum in der Vergangenheit:
<?php
// set the expiration date to one hour ago
setcookie("user",
"" , time() - 3600);
?>
<html>
<body>
<?php
echo "Cookie 'user'
is deleted.";
?>
</body>
</html>
Führen Sie zB » Beispiel
Erstellen Sie ein kleines Skript , das prüft , ob cookies aktiviert sind. Versuchen Sie zunächst, einen Test Cookie mit dem erstellen setcookie() Funktion, dann die Variable $ _COOKIE Array zählen:
<?php
setcookie("test_cookie", "test" , time() + 3600, '/');
?>
<html>
<body>
<?php
if(count($_COOKIE) > 0) {
echo "Cookies are enabled.";
} else {
echo "Cookies
are disabled.";
}
?>
</body>
</html>
Führen Sie zB » <PHP HTTP Referenz