Cookies PHP

I cookie sono spesso utilizzati per identificare gli utenti.

Cos'è un cookie?

I cookie sono spesso utilizzati per identificare gli utenti. I cookie sono piccoli file che il server lascia nel computer dell'utente. Ogni volta che lo stesso computer richiede una pagina tramite il browser, invia anche i cookie. Attraverso PHP, è possibile creare e recuperare i valori dei cookie.

Come creare un cookie?

La funzione setcookie() viene utilizzata per impostare i cookie.

Nota:La funzione setcookie() deve essere posizionata prima dei tag <html>.

Sintassi

setcookie(name, value, expire, path, domain);

Esempio

Nell'esempio seguente, creeremo un cookie chiamato "user", con il valore "Alex Porter". Abbiamo anche stabilito che questo cookie scadrà dopo un'ora:

<?php 
setcookie("user", "Alex Porter", time()+3600);
?>
<html>
<body>
</body>
</html>

Nota:Quando si inviano i cookie, i valori dei cookie vengono automaticamente codificati URL, e decodificati automaticamente al recupero (per evitare la codifica URL, utilizzare setrawcookie() al suo posto).

Come recuperare il valore di un cookie?

La variabile $_COOKIE di PHP viene utilizzata per recuperare i valori dei cookie.

Nell'esempio seguente, abbiamo recuperato il valore del cookie chiamato "user" e lo abbiamo visualizzato sulla pagina:

<?php
// Stampa un cookie
echo $_COOKIE["user"];
// Un modo per visualizzare tutti i cookie
print_r($_COOKIE);
?>

Nell'esempio seguente, utilizziamo la funzione isset() per confermare che il cookie è stato impostato:

<html>
<body>
<?php
if (isset($_COOKIE["user"]))
  echo "Benvenuto " . $_COOKIE["user"] . "!<br />";
else
  echo "Benvenuto ospite!<br />";
?>
</body>
</html>

Come eliminare un cookie?

Quando si elimina un cookie, dovresti modificare la data di scadenza a un punto nel passato.

Esempio di eliminazione:

<?php 
// Imposta la data di scadenza a un'ora fa
setcookie("user", "", time()-3600);
?>

Cosa fare se il browser non supporta i cookie?

Se la tua applicazione coinvolge browser che non supportano i cookie, dovrai adottare altri metodi per trasmettere informazioni da una pagina all'altra nell'applicazione. Un modo è passare i dati dal modulo (abbiamo già introdotto il modulo e l'input dell'utente in questa guida).

Il seguente modulo invia l'input dell'utente a "welcome.php" quando l'utente fa clic sul pulsante di invio:

<html>
<body>
<form action="welcome.php" method="post">
Nome: <input type="text" name="name" />
Età: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>

Recupera i valori da "welcome.php", come questo:

<html>
<body>
Benvenuto <?php echo $_POST["name"]; ?>.<br />
Sei <?php echo $_POST["age"]; ?> anni.
</body>
</html>