Utilizzo dei cookie con PHP

Come sviluppatore di siti Web, puoi utilizzare PHP per impostare cookie che contengono informazioni sui visitatori del tuo sito Web. I cookie memorizzano informazioni su un visitatore del sito sul computer del visitatore a cui è possibile accedere in occasione di una visita di ritorno. Un uso comune dei cookie è quello di memorizzare un token di accesso in modo che l'utente non debba effettuare l'accesso ogni volta che visita il tuo sito Web. I cookie possono anche memorizzare altre informazioni come il nome dell'utente, la data dell'ultima visita e il contenuto del carrello.

Sebbene i cookie esistano da anni e la maggior parte delle persone li abbia abilitati, alcuni utenti non li accettano a causa di problemi di privacy o li cancellano automaticamente alla chiusura della sessione di navigazione. Poiché i cookie possono essere rimossi da un utente in qualsiasi momento e archiviati in un formato di testo normale, non utilizzarli per memorizzare nulla di sensibile.

Come impostare un cookie tramite PHP

In PHP, il setcookie () La funzione definisce un cookie. Viene inviato insieme alle altre intestazioni HTTP e trasmette prima di analizzare il corpo dell'HTML.

Un cookie segue la sintassi:

setcookie (nome, valore, scadenza, percorso, dominio, sicuro, HttpOnly);

dove nome indica il nome del cookie e valore descrive il contenuto del cookie. Per il setcookie () funzione, solo il nome il parametro è obbligatorio. Tutti gli altri parametri sono opzionali. 

Cookie di esempio

Per impostare un cookie denominato "UserVisit" nel browser del visitatore che imposta il valore sulla data corrente e imposta ulteriormente la scadenza tra 30 giorni (2592000 = 60 secondi * 60 minuti * 24 ore * 30 giorni), utilizzare quanto segue Codice PHP:

$ Mese = 2592000 + tempo ();
// questo aggiunge 30 giorni all'ora corrente
setcookie (UserVisit, date ("F jS - g: i a"), $ Month);
?>

I cookie devono essere inviati prima che qualsiasi HTML venga inviato alla pagina o non funzionino, quindi il setcookie () la funzione deve apparire prima del etichetta.

Come recuperare un cookie tramite PHP

Per recuperare un cookie dal computer dell'utente alla visita successiva, chiamalo con il seguente codice:

if (isset ($ _ COOKIE [ 'UserVisit']))

$ last = $ _COOKIE ['UserVisit'];
echo "Bentornato!
Ultima visita a ". $ Last;

altro

echo "Benvenuti nel nostro sito!";

?>

Questo codice controlla innanzitutto se il cookie esiste. In tal caso, accoglie di nuovo l'utente e comunica l'ultima volta che l'utente ha visitato. Se l'utente è nuovo, stampa un messaggio di benvenuto generico.

MANCIA: Se stai chiamando un cookie sulla stessa pagina in cui prevedi di impostarne uno, recuperalo prima di sovrascriverlo.

Come distruggere un cookie

Per distruggere un cookie, utilizzare setcookie () ancora una volta, ma impostare la data di scadenza per essere nel passato:

$ past = time () - 10;
// questo rende il tempo 10 secondi fa
setcookie (UserVisit, date ("F jS - g: i a"), $ passato);
?>

Parametri opzionali

Inoltre valore e scadere, il setcookie () la funzione supporta numerosi altri parametri opzionali:

  • Sentiero identifica il percorso del server del cookie. Se lo si imposta su "/", il cookie sarà disponibile per l'intero dominio. Per impostazione predefinita, il cookie funziona nella directory in cui è impostato, ma è possibile forzarlo a funzionare in altre directory specificandoli con questo parametro. Questa funzione è a cascata, quindi tutte le sottodirectory all'interno di una directory specificata avranno anche accesso al cookie.
  • Dominio   identifica il dominio specifico in cui lavora il cookie. Per far funzionare il cookie su tutti i sottodomini, specificare esplicitamente il dominio di primo livello (ad es. "sample.com"). Se imposti il ​​dominio su "www.sample.com", il cookie è disponibile solo nel sottodominio www.
  • Sicuro specifica se il cookie deve trasmettere su una connessione sicura. Se questo valore è impostato su TRUE, il cookie verrà impostato solo per le connessioni HTTPS. Il valore predefinito è falso.
  • HttpOnly , se impostato su TRUE, consentirà l'accesso al cookie solo tramite il protocollo HTTP. Per impostazione predefinita, il valore è FALSE. Il vantaggio di impostare il cookie su TRUE è che i linguaggi di scripting non possono accedere al cookie.