Gli ultimi tutorial di sviluppo web
 

PHP setcookie() Function

<PHP HTTP di riferimento

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