Introduzione
I cookie sono uno strumento fondamentale per la gestione delle preferenze utente nelle applicazioni web. In questo tutorial, ci concentreremo su come utilizzare i cookie per salvare le preferenze di tema (chiaro o scuro) di un utente. Questo approccio migliora l´esperienza utente, poiché consente di mantenere le impostazioni anche dopo il riavvio del browser o il ritorno sul sito in un secondo momento.
Codice completo
Di seguito è riportato un esempio completo di come implementare la funzionalità di salvataggio delle preferenze di tema utilizzando i cookie in PHP.
<?php
// Funzione per impostare un cookie
function setThemeCookie($theme) {
// Imposta il cookie ´theme´ che scade dopo 30 giorni
setcookie(´theme´, $theme, time() + (30 * 24 * 60 * 60), "/");
}
// Controlla se il modulo è stato inviato
if ($_SERVER[´REQUEST_METHOD´] === ´POST´) {
// Recupera il tema selezionato dall´utente
$selectedTheme = $_POST[´theme´];
// Imposta il cookie con il tema selezionato
setThemeCookie($selectedTheme);
}
// Recupera il tema dal cookie se esiste
$theme = isset($_COOKIE[´theme´]) ? $_COOKIE[´theme´] : ´light´; // Tema di default
?>
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Seleziona Tema</title>
<style>
body.light {
background-color: #ffffff;
color: #000000;
}
body.dark {
background-color: #000000;
color: #ffffff;
}
</style>
</head>
<body class="<?php echo $theme; ?>" Spiegazione
Nel codice fornito, abbiamo una funzione chiamata setThemeCookie che imposta un cookie chiamato theme con il valore del tema selezionato dall´utente. Questo cookie scade dopo 30 giorni. La funzione setcookie è utilizzata per creare il cookie e richiede quattro parametri: il nome del cookie, il valore, la scadenza e il percorso.
Quando l´utente invia il modulo, il tema selezionato viene recuperato e passato alla funzione setThemeCookie. Successivamente, verifichiamo se il cookie theme esiste già. Se esiste, il suo valore viene utilizzato per impostare il tema della pagina; altrimenti, impostiamo un tema di default (chiaro).
Infine, il tema selezionato viene applicato al tag body della pagina, permettendo di cambiare dinamicamente lo stile in base alla preferenza dell´utente.
Best practice
- Limitare la durata dei cookie: Imposta una scadenza ragionevole per i cookie, in modo che non rimangano attivi indefinitamente.
- Usare HTTPS: Assicurati che il tuo sito utilizzi HTTPS per proteggere i cookie durante il trasferimento.
- Limitare l´accesso ai cookie: Utilizza il flag HttpOnly per impedire l´accesso ai cookie tramite JavaScript e Secure per inviarli solo su connessioni sicure.
- Gestire le preferenze utente: Offri sempre un modo per gli utenti di cambiare le loro preferenze in qualsiasi momento.
Riepilogo
In questo tutorial, abbiamo esplorato come utilizzare i cookie in PHP per salvare le preferenze di tema degli utenti. Abbiamo implementato un semplice sistema che consente agli utenti di scegliere tra un tema chiaro e uno scuro, mantenendo la loro scelta anche dopo aver chiuso il browser. L´uso dei cookie per gestire le preferenze utente è una pratica comune che migliora l´esperienza complessiva dell´utente.
