Neueste Web-Entwicklung Tutorials
 

PHP setcookie() Function

<PHP HTTP Referenz

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