Fino ad ora abbiamo imparato a prendere decisioni e interagire utilizzando php, ma come fare quando dobbiamo memorizzare dei dati per poi riusarli in futuro? PHP ci offre molte opzioni per memorizzare i dati, in questo articolo parleremo dei cookie.
[lightgrey_box]
SOMMARIO GUIDA
Parte 2: Funzioni per gestire le stringhe
Parte 4: Guida Cicli IF, ELSE, ISSET, EMPTY
Parte 6: i cicli PHP: Do,While – For – Foreach
[/lightgrey_box]
I cookie vengono salvati sul client e possono avere una dimensione massima di 4KB, questi non possono essere considerati una risorsa sicura per salvare dati sensibili visto che sono preda facile di attacchi da siti esterni o utenti malintenzionati quindi consiglio di utilizzarli per salvare dati che non possono compromettere la sicurezza del vostro sito.
Creazione e lettura di un cookie
La creazione di un cookie è molto semplice, qua sotto potere vedere un codice di esempio
[lightgrey_box]setcookie ( nome , valore , durata , path , dominio , sicurezza )[/lightgrey_box]
Tramite la funzione setcookie creiamo il cookie, ma andiamo ad analizzare le tutte i valori che possiamo dare al cookie:
nome: il nome che andrà a identificare il cookie, infatti è possibile salvare più di un cookie, se viene creato un cookie e gli viene assegnato come nome il nome di un cookie già esistente il primo verrà sostituito con quello appena creato.
[lightgrey_box]valore: Il valore che sarà assegnato al cookie.
durata: Tempo in cui il cookie resterà attivo, questo deve essere salvato utilizzando il timestamp attuale.
path: Cartelle che potranno leggere il cookie.
dominio: Dominio che potrà leggere il cookie.
sicurezza: Questo accetta 2 valori (0 e 1), se scelto 0 il cookie sarà salvato in modo sicuro mentre con 1 in modo insicuro (valore standard).[/lightgrey_box]
I valori path, dominio e sicurezza come vedremo negli esempi successivi non sono strettamente necessari per il corretto funzionamento del cookie.
Per leggere il valore che abbiamo inserito sarà necessario usare la variabile standard di php $_COOKIE seguita dal nome che abbiamo assegnato al cookie racchiuso tra parentesi quadre
Codice di esempio
In questo codice di esempio vedremo come permettere l’accesso al sito solo agli utenti che affermano di avere più di 14 anni
<?php if(isset($_POST['anni'])) { setcookie("anni",$_POST['anni'], time() + 3600); } if(!isset($_COOKIE['anni'])) { ?> <form method="post" action="<?php echo "prova.php"; ?>"> <p>Quanti anni hai?:</p><select name="anni"> <?php for($x = 1; $x <= 17; $x++) { echo '<option value="'.$x.'">'.$x.'</option>'; } ?> <option value="'18'">'18 + '</option> </select><br /><br /> <input type="submit" value="invia" /> </form> <?php } elseif($_COOKIE['anni'] > 14 || @$_POST['anni'] > 14) { ?> Hai piu' di 14 anni, puoi accedere a questa pagina <br /> contenuto della pagina <?php } else { ?> Hai meno di 14 anni, non puoi accedere a questa pagina <br /> <?php } ?>
Andiamo ad analizzare il codice
if(isset($_POST['anni'])) { setcookie("anni",$_POST['anni'], time() + 3600); }
Se abbiamo inviato i dati del form con la nostra età creiamo il cookie che salverà questo valore.
if(!isset($_COOKIE['anni'])) { ?> <form method="post" action="<?php echo "prova.php"; ?>"> <p>Quanti anni hai?:</p><select name="anni"> <?php for($x = 1; $x <= 17; $x++) { echo '<option value="'.$x.'">'.$x.'</option>'; } ?> <option value="'18'">'18 + '</option> </select><br /><br /> <input type="submit" value="invia" /> </form> <?php }
Se non è ancora stato creato il cookie allora mostriamo un form con un menù a tendina che ci permetterà di inserire la nostra età, il contenuto della pagina non verrà visualizzato fino a quando il cookie non verrà creato.
elseif($_COOKIE['anni'] > 14 || @$_POST['anni'] > 14) { ?> Hai piu' di 14 anni, puoi accedere a questa pagina <br /> contenuto della pagina <?php } else { ?> Hai meno di 14 anni, non puoi accedere a questa pagina <br /> <?php } ?>
Se il cookie anni è stato creato effettuiamo un controllo sul suo valore, se è maggiore di 14 mostriamo il contenuto della pagina, mentre se è minore di 14 viene mostrato un messaggio che ci spiega il motivo per cui non è stato possibile visualizzare la pagina, da notare che ho messo un controllo OR ( || ), per il valore del form perché il cookie viene spesso salvato alla fine dell’esecuzione dello script quindi l’invio del form avrebbe un risultato inatteso.
Conclusioni
I cookie sono un ottimo modo per rendere i nostri siti più autonomi e con una maggiore interattività rendendo l’esperienza più “personalizzata”, se l’articolo ti è stato utile non dimenticarti di condividerlo e se hai dubbi o domande non esitare a lasciare un commento.