Funkcja setrawcookie() w PHP
Przykład
Poniższy przykład tworzy plik cookie z PHP. Plik cookie nosi nazwę „użytkownik”, a wartością będzie „Jan Kowalski”. Wartość pliku cookie nie będzie zakodowana jako adres URL. Plik cookie wygaśnie po 30 dniach (86400 * 30). Użycie „/” oznacza, że plik cookie jest dostępny w całej witrynie (w przeciwnym razie wybierz preferowany katalog):
<?php
$cookie_name = "user";
$cookie_value = "John";
setrawcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
// 86400 = 1 day
?>
<html>
<body>
<?php
echo "Cookie is set.";
?>
</body>
</html>
?>
Definicja i użycie
Funkcja setrawcookie() definiuje plik cookie (bez kodowania adresu URL) do wysłania wraz z pozostałymi nagłówkami HTTP.
Plik cookie jest często używany do identyfikacji użytkownika. Plik cookie to mały plik, który serwer osadza na komputerze użytkownika. Za każdym razem, gdy ten sam komputer zażąda strony z przeglądarką, wyśle również plik cookie. Dzięki PHP możesz zarówno tworzyć, jak i pobierać wartości plików cookie.
Nazwa ciasteczka jest automatycznie przypisywana do zmiennej o tej samej nazwie. Na przykład, jeśli wysłano ciasteczko o nazwie „użytkownik”, automatycznie tworzona jest zmienna o nazwie $user, zawierająca wartość ciasteczka.
Uwaga: Funkcja setrawcookie() musi pojawić się PRZED znacznikiem <html>.
Uwaga: Aby automatycznie zakodować wartość cookie w adresie URL podczas wysyłania i automatycznie dekodować podczas odbierania, użyj zamiast tego funkcji setcookie() .
Składnia
setrawcookie(name, value, expire, path, domain, secure);
Wartości parametrów
Parameter | Description |
---|---|
name | Required. Specifies the name of the cookie |
value | Optional. Specifies the value of the cookie |
expire | Optional. Specifies when the cookie expires. The value: time()+86400*30, will set the cookie to expire in 30 days. If this parameter is not set, the cookie will expire at the end of the session (when the browser closes) |
path | Optional. Specifies the server path of the cookie. If set to "/", the cookie will be available within the entire domain. If set to "/php/", the cookie will only be available within the php directory and all sub-directories of php. The default value is the current directory that the cookie is being set in |
domain | Optional. Specifies the domain name of the cookie. To make the cookie available on all subdomains of example.com, set domain to ".example.com". Setting it to www.example.com will make the cookie only available in the www subdomain |
secure | Optional. Specifies whether or not the cookie should only be transmitted over a secure HTTPS connection. TRUE indicates that the cookie will only be set if a secure connection exists. Default is FALSE. |
Szczegóły techniczne
Wartość zwrotu: | PRAWDA o sukcesie. FAŁSZ w przypadku niepowodzenia |
---|---|
Wersja PHP: | 5+ |
Więcej przykładów
Przykład
Pobierz wartość pliku cookie o nazwie „użytkownik” (za pomocą zmiennej globalnej $_COOKIE). Użyj również funkcji isset(), aby dowiedzieć się, czy plik cookie istnieje:
<html>
<body>
<?php
$cookie_name = "user";
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' does not exist!";
} else {
echo "Cookie is named: " . $cookie_name . "<br>Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
Przykład
Aby zmodyfikować plik cookie, po prostu ustaw (ponownie) plik cookie za pomocą funkcji setrawcookie():
<?php
$cookie_name = "user";
$cookie_value = "Alex";
setrawcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<html>
<body>
<?php
$cookie_name = "user";
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' does not exist!";
} else {
echo "Cookie is named: " . $cookie_name . "<br>Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
Przykład
Aby usunąć plik cookie, użyj funkcji setrawcookie() z datą wygaśnięcia w przeszłości:
<?php
$cookie_name = "user";
unset($_COOKIE[$cookie_name]);
// empty value and expiration one hour before
$res = setrawcookie($cookie_name, '', time() - 3600);
?>
<html>
<body>
<?php
echo "Cookie 'user' is deleted.";
?>
</body>
</html>
Przykład
Utwórz mały skrypt, który sprawdza, czy pliki cookie są włączone. Najpierw spróbuj utworzyć testowe ciasteczko za pomocą funkcji setrawcookie(), a następnie policz zmienną tablicową $_COOKIE:
<?php
setrawcookie("test_cookie", "test", time() + 3600, '/');
?>
<html>
<body>
<?php
if(count($_COOKIE) > 0) {
echo "Cookies are enabled";
} else {
echo "Cookies are disabled";
}
?>
</body>
</html>
❮ Informacje o sieci PHP