English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Manuale di riferimento PHP
Cos'è un Cookie
Suggerimento:Ogni volta che il browser richiede una pagina al server, tutti i dati nei cookie vengono inviati automaticamente nel server richiesto all'interno della richiesta.
La funzione setcookie() viene utilizzata per impostare i cookie in PHP. Assicurati di chiamare la funzione setcookie() prima di qualsiasi output generato dallo script, altrimenti il cookie non verrà impostato. La sintassi di base della funzione può essere fornita nel modo seguente:
setcookie(name, value, expire, path, domain, secure);
I parametri della funzione setcookie() hanno il seguente significato:
Parametri | Descrizione |
---|---|
name | Il nome del cookie. |
value | Il valore del cookie. Poiché questo valore viene memorizzato sul computer dell'utente, non conservare informazioni sensibili. |
expires | Data di scadenza in formato timestamp UNIX. Dopo questa data, il cookie non sarà più accessibile. Il valore predefinito è 0 |
path | Specifica il percorso in cui il cookie è disponibile sul server. Se impostato su /, il cookie sarà disponibile in tutto il dominio. |
domain | Specifica il dominio utilizzabile per il cookie, ad esempio: it.oldtoolbag.com. |
secure | Questo campo (se esistente) indica che il cookie viene inviato solo quando esiste una connessione HTTPS sicura. |
Suggerimento:Se la scadenza del cookie è impostata a 0 o omessa, il cookie scadrà alla fine della sessione, ovvero quando il browser viene chiuso.
Esempio di creazione di un cookie chiamato userName utilizzando la funzione setcookie() e assegnazione del valore John Carter. Inoltre, viene specificato che il cookie scada dopo 30 giorni (30 giorni * 24 ore * 60 minuti * 60 secondi).
<?php //Impostare il Cookie setcookie("username", "John Carter", time()+30*24*60*60); ?>
Attenzione:Oltre al nome, tutti i parametri sono opzionali. Puoi anche sostituire i parametri con una stringa vuota ("") per saltare il parametro, ma per saltare il parametro expire, usa zero poiché è un intero.
Attenzione:Non memorizzare dati sensibili nei Cookie, poiché gli utenti malintenzionati potrebbero manipolare i dati sensibili. Per memorizzare dati sensibili in modo sicuro, utilizzareSessione.
La variabile superglobale PHP $_COOKIE viene utilizzata per recuperare i valori dei cookie. Di solito è un array associativo che contiene l'elenco di tutti i valori dei cookie inviati dal browser nella richiesta corrente, con il nome del cookie come chiave. Puoi accedere a un singolo valore di cookie utilizzando il simbolo di array standard, ad esempio, per visualizzare il cookie di nome utente impostato nell'esempio precedente, puoi utilizzare il seguente codice.
<?php //Accedere a un singolo valore di Cookie echo $_COOKIE["username"]; ?>
Il codice PHP dell'esempio precedente produce l'output seguente.
John Carter
Prima di accedere al valore del cookie, è meglio controllare se il cookie è stato impostato. Per fare questo, puoi utilizzare la funzione PHP isset() come segue:
<?php //Verificare se è stato impostato il cookie if (isset($_COOKIE["username"])) { echo "Ciao " . $_COOKIE["username"]; } else { echo "Benvenuto, Ospite!"; } ?>
Puoi utilizzare la funzione print_r($_cookie) per visualizzare la struttura dell'array associativo $_cookie, come faresti con qualsiasi altro array.
Puoi eliminare un cookie chiamando la funzione setcookie() con il nome del cookie e qualsiasi valore (ad esempio una stringa vuota), ma devi impostare la data di scadenza su una data precedente al presente, come nell'esempio seguente:
<?php //Eliminare il cookie setcookie("username", "", time()-3600); ?>
Suggerimento:Deve passare il nome esattamente lo stesso utilizzato durante la creazione iniziale del Cookie, insieme al percorso, al dominio e altri parametri, per assicurarsi di eliminare il Cookie corretto.