Najnowsze tutoriale tworzenie stron internetowych
 

PHP setcookie() Function

<PHP HTTP referencyjny

Przykład

Poniższy przykład tworzy plik cookie o nazwie "user" z wartością "John Doe" . Plik cookie wygasa po 30 dniach (86400 * 30) . "/" Oznacza, że plik cookie jest dostępny w całej stronie (otherwise, select the directory you prefer) .

Następnie pobrać wartość cookie "user" (za pomocą globalnej zmiennej $ _COOKIE). Mamy również użyć isset() funkcji, aby dowiedzieć się, czy plik cookie jest ustawiony:

<!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>
Uruchomić przykład »

Definicja i Wykorzystanie

setcookie() funkcja definiuje cookie być wysyłane razem z resztą nagłówki HTTP.

Cookie jest często używany do identyfikacji użytkownika. Cookie to mały plik, który serwer osadza na komputerze użytkownika. Za każdym razem ten sam komputer żąda strony w przeglądarce, to wyśle ​​cookie zbyt. W PHP można zarówno tworzyć i pobierać wartości cookie.

Nazwa pliku cookie jest automatycznie przypisywana do zmiennej o tej samej nazwie. Na przykład, jeśli plik cookie został wysłany z nazwą "user" , zmienna jest tworzona automatycznie nazywane $ użytkownika, zawierający wartość cookie.

Note: setcookie() funkcja musi stanąć przed <html> tag.

Note: Wartość cookie jest automatycznie urlencoded podczas wysyłania cookie i automatycznie dekodowane przy odbiorze (aby zapobiec URLencoding, użyj setrawcookie() zamiast).

Składnia

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

Parametr Opis
name Wymagany. Określa nazwę pliku cookie
value Opcjonalny. Określa wartość cookie
expire Opcjonalny. Określa, kiedy wygaśnie cookie. Wartość: time() + 86400 * 30, ustawi plik cookie wygasa po 30 dniach. Jeśli ten parametr zostanie pominięty lub ustawiony na 0, plik cookie wygasa po zakończeniu sesji (when the browser closes) . Domyślną wartością jest 0
path Opcjonalny. Określa ścieżkę serwera cookie. Jeśli ustawione na "/" , ciasteczko będzie dostępna w całej domenie. Jeśli jest ustawiony na "/php/" , ciasteczko będzie dostępny w katalogu php i wszystkich podkatalogów PHP tylko. Domyślną wartością jest katalog bieżący, że plik cookie jest ustawiony w
domain Opcjonalny. Określa nazwę domeny cookie. Aby cookie dostępna we wszystkich subdomenach example.com ustawić domenę "example.com" . Ustawienie na www.example.com uczyni cookie dostępne tylko w subdomeny www
secure Opcjonalny. Określa czy ciasteczko powinno być przekazywane tylko za pośrednictwem bezpiecznego połączenia HTTPS. TRUE wskazuje, że ciasteczko zostanie ustawiony tylko wtedy, gdy istnieje bezpieczne połączenie. Domyślną jest FALSE
httponly Opcjonalny. Jeśli ma wartość true cookie będą dostępne tylko za pośrednictwem protokołu HTTP (the cookie will not be accessible by scripting languages) . Ustawienie to może przyczynić się do zmniejszenia kradzieży tożsamości poprzez ataki XSS. Domyślną jest FALSE

Szczegóły techniczne

Zwracana wartość: TRUE w przypadku sukcesu. FALSE w przypadku porażki
Wersja PHP: 4+
PHP zmian: PHP 5.5 - Atrybut Max-Age został zawarty w nagłówku Set-Cookie wysłany do klienta
PHP 5,2 - parametr HttpOnly dodano

Więcej przykładów

Przykład

Kilka upływa termin do ciasteczek:

<?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>
Uruchomić przykład »

Przykład

Aby zmodyfikować plik cookie, po prostu ustaw (again) cookie pomocą setcookie() funkcji:

<?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>
Uruchomić przykład »

Przykład

Aby usunąć pliki cookie, użyj setcookie() funkcji z datą wygaśnięcia w przeszłości:

<?php
// set the expiration date to one hour ago
setcookie("user", "" , time() - 3600);
?>
<html>
<body>

<?php
echo "Cookie 'user' is deleted.";
?>

</body>
</html>
Uruchomić przykład »

Przykład

Stworzyć mały skrypt, który sprawdza, czy cookies są włączone. Po pierwsze, spróbuj utworzyć plik cookie testową z setcookie() funkcji, a następnie policzyć zmienną tablicową $ _COOKIE:

<?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>
Uruchomić przykład »

<PHP HTTP referencyjny