I cookie sono una parte fondamentale della gestione delle sessioni in PHP e vengono utilizzati per memorizzare dati sul client che possono essere recuperati successivamente. Questo è particolarmente utile per mantenere lo stato dell’utente tra le pagine di un sito web. Di seguito ti fornirò una guida completa su come utilizzare i cookie in PHP, includendo esempi pratici e fonti affidabili.
Per creare un cookie in PHP, è possibile utilizzare la funzione `setcookie()`. Questa funzione deve essere chiamata prima che venga generato qualunque output HTML.
```
// Impostare un cookie che scade dopo 1 giorno
setcookie(“username”, “MarioRossi”, time() + 86400, “/”); // 86400 secondi = 1 giorno
?>
```
Per leggere un cookie, si utilizzano le variabili globali `$_COOKIE`. Se il cookie è stato settato con successo, esso sarà disponibile in questo array.
```
if(isset($_COOKIE[“username”])) {
echo “Utente: “ . $_COOKIE[“username”];
} else {
echo “Cookie ‘username’ non settato”;
}
?>
```
Per modificare un cookie, basta impostarlo nuovamente con `setcookie()`, utilizzando lo stesso nome del cookie già esistente.
```
// Modifica del valore del cookie ‘username‘
setcookie(“username”, “LuigiBianchi”, time() + 86400, “/”);
?>
```
Per eliminare un cookie, si deve settare la sua data di scadenza a un valore nel passato.
```
// Eliminare un cookie settando la sua scadenza nel passato
setcookie(“username”, “”, time() – 3600, “/”);
?>
```
La funzione `setcookie()` accetta diversi parametri che consentono di avere un maggiore controllo sui cookie:
```
bool setcookie (
string $name,
string $value = “”,
int $expires = 0,
string $path = “”,
string $domain = “”,
bool $secure = false,
bool $httponly = false
);
```
- $name: Il nome del cookie.
- $value: Il valore del cookie.
- $expires: La data di scadenza del cookie (in timestamp).
- $path: Il percorso sul server in cui il cookie sarà disponibile.
- $domain: Il dominio in cui il cookie sarà disponibile.
- $secure: Indica se il cookie deve essere trasmesso solamente su connessioni HTTPS.
- $httponly: Se impostato a `TRUE`, il cookie sarà accessibile solo attraverso il protocollo HTTP (non sarà accessibile via JavaScript).
Supponiamo di voler creare un sistema di autenticazione molto semplice utilizzando i cookie:
```
// login.php
// Check se il form è stato inviato
if($_SERVER[‘REQUEST_METHOD’] == ‘POST’) {
$username = $_POST[‘username’];
$password = $_POST[‘password’];
```
// welcome.php
if(isset($_COOKIE[“user”])) {
echo “Benvenuto “ . $_COOKIE[“user”] . “!”;
} else {
echo “Devi effettuare il login!”;
}
?>
```
1. PHP Manual: [setcookie](https://www.php.net/manual/en/function.setcookie.php)
2. W3Schools: [PHP Cookies](https://www.w3schools.com/php/php_cookies.asp)
3. Mozilla Developer Network (MDN): [HTTP cookies](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies)
Queste risorse forniscono una solida base per comprendere e implementare i cookie in PHP, oltre a coprire altri aspetti avanzati della gestione dei dati utente.