Esempio
L'esempio seguente crea un cookie denominato "user" con il valore "John Doe" . Il cookie scadrà dopo 30 giorni (86400 * 30) . Il "/" significa che il cookie è disponibile in tutto il sito web (otherwise, select the directory you prefer) .
Abbiamo quindi recuperare il valore del cookie "user" (usando il $ _COOKIE variabile globale). Usiamo anche isset() funzione per scoprire se il cookie è impostato:
<!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>
Esempio Run » Definizione e l'utilizzo
Il setcookie() funzione definisce un cookie da inviare insieme al resto delle intestazioni HTTP.
Un cookie è spesso usato per identificare un utente. Un cookie è un piccolo file che il server incorpora sul computer dell'utente. Ogni volta che lo stesso computer richiede una pagina con un browser, invierà il cookie troppo. Con PHP, è possibile sia creare e recuperare i valori dei cookie.
Il nome del cookie viene automaticamente assegnato a una variabile con lo stesso nome. Ad esempio, se un cookie è stato inviato con il nome di "user" , una variabile viene creata automaticamente chiamato $ utente, che contiene il valore del cookie.
Note: Il setcookie() funzione deve apparire prima del <html> tag.
Note: Il valore del cookie viene urlencoded automaticamente quando si invia il cookie, e decodificati automaticamente al momento della ricezione (per evitare urlencoding, uso setrawcookie() invece).
Sintassi
setcookie( name,value,expire,path,domain,secure,httponly );
Parametro | Descrizione |
---|---|
name | Necessario. Specifica il nome del cookie |
value | Opzionale. Specifica il valore del cookie |
expire | Opzionale. Specifica quando il cookie scade. Il valore: time() + 86400 * 30, imposterà il cookie scade in 30 giorni. Se questo parametro viene omesso o impostato su 0, il cookie scadrà alla fine della sessione (when the browser closes) . Il default è 0 |
path | Opzionale. Specifica il percorso del server del cookie. Se è impostato su "/" , il cookie sarà disponibile entro l'intero dominio. Se è impostato su "/php/" , il cookie sarà disponibile all'interno della directory php e tutte le sottodirectory di php solo. Il valore predefinito è la directory corrente che il cookie viene impostato in |
domain | Opzionale. Specifica il nome di dominio del cookie. Per rendere il cookie disponibile su tutti i sottodomini di example.com, dominio impostato su "example.com" . L'impostazione per www.example.com renderà il cookie disponibile solo nel sottodominio www |
secure | Opzionale. Specifica se il cookie deve essere trasmesso solo tramite una connessione sicura HTTPS. True indica che il cookie viene impostato solo se esiste una connessione sicura. Il valore predefinito è FALSE |
httponly | Opzionale. Se impostato su TRUE il cookie sarà accessibile solo tramite il protocollo HTTP (the cookie will not be accessible by scripting languages) . Questa impostazione può aiutare a ridurre il furto di identità attraverso attacchi XSS. Il valore predefinito è FALSE |
Dettagli tecnici
Valore di ritorno: | TRUE in caso di successo. FALSE in caso di fallimento |
---|---|
Versione PHP: | 4+ |
PHP Changelog: | PHP 5.5 - Un attributo Max-Age è stato incluso nell'intestazione Set-Cookie inviato al client PHP 5.2 - Il parametro HttpOnly è stato aggiunto |
Altri esempi
Esempio
Diversi scadono date per i cookie:
<?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>
Esempio Run » Esempio
Per modificare un cookie, è sufficiente impostare (again) il cookie utilizzando il setcookie() la funzione:
<?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>
Esempio Run » Esempio
Per eliminare un cookie, utilizzare il setcookie() funzione con una data di scadenza nel passato:
<?php
// set the expiration date to one hour ago
setcookie("user",
"" , time() - 3600);
?>
<html>
<body>
<?php
echo "Cookie 'user'
is deleted.";
?>
</body>
</html>
Esempio Run » Esempio
Creare un piccolo script che controlla se cookies sono abilitati. In primo luogo, cercare di creare un cookie test con la setcookie() la funzione, poi contare la variabile di matrice $ _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>
Esempio Run » <PHP HTTP di riferimento