realizzazione di siti web
Realizzazione di siti web Corso di PHP lezione n. 13
Cookies
Nella realizzazione di siti web per ragioni di sicurezza il client non permette di salvare dati in locale tranne che per l’utilizzo dei cookies.
Che memorizzano dati dal php in una particolare directory ed in formato testo.
Questo è necessario se vogliamo aumentare l’esperienza di navigazione dell’utente ad esempio tenendo traccia della sua navigazione o per evitare il reinserimento di dati in una stessa sessione.
per creare dei cookies bisogna utilizzare la funzione setcookie(nome,valore,expire,domain,secure,httponly);
l’unico parametro richiesto è il nome che comunque è generalmente accoppiato al valore, gli altri sono opzionali.
-
Il primo parametro è il nome della variabile di tipo cookie.
-
Il secondo è il valore della variabile.
-
Il terzo è specifica il tempo per il quale il cookie deve essere conservato, cioè la data di scadenza; in mancanza si eliminerà alla chiusura del browser; tale durata verrà indicata in base al valore UNIX timestamp (secondi intercorsi dal 1 gennaio 1970).
-
Il quarto specifica la cartella del server per il quale il cookie sarà valido; se non verrà specificato il cookie sarà valido solo nell’ambito della directory in cui si trova la pagina che lo ha inviato; per essere valido in tutte le cartelle del sito si indicherà “/”
-
Il quinto ci indica il dominio per il quale il cookie è valido e leggibile e di default si intende il dominio completo del server.
-
Il sesto può assumere valore 0 e 1 e assume di default assume valore pari a 0; se pari a 1 specifica che il cookie potrà essere inviato soltanto se è in corso una https (una protocollo di trasferimento dei dati in modo sicuro.
Tralasciando gli ultimi parametri facciamo un esempio:
<?php
setcookie(“esempiocookie”,”test cookie”,time()+3600);
//memorizza il valore test cookie durata del cookie un ora 3600=1 ora (60 min * 60
sec)
?>
nb. 86400= 1 giorno
Una volta impostato, i dati all’interno di un cookie questo sarà accessibile da php ricorrendo una variabile all’interno dell’array associativo $_COOKIES. Molto semplicemente:
<html>
<body>
<?php
if (!isset($_COOKIES[ ‘esempiocookie’]))
{
echo “esempiocookie non impostato”;
}
else
{
echo “valore cookies= “. $_COOKIES[‘esempiocookie’];
}
?>
</body>
</html>
Modifica
basta reimpostare il valore
<?php
$nome=”esempiocookie”;
//validità 30 giorni
setcookie($nome,”nuovo valore del cookie”, time()+(86400*30));
?>
Eliminazione
Non esiste una funzione, quindi utilizzeremo un escamotage; si reimposta li cookie con una data passata
<?php
setcookie($nome,”nuovo valore del cookie”, time()-3600);
?>
Per utilizzare piu valori in un cookie dobbiamo usare un array
esempio:
<?php
setcookie(“web[informazione]”,”collegato”,time()+3600);
setcookie(“web[dove]”,”sitoesempio”,time()+3600);
setcookie(“web[quando]”,”ora”,time()+3600);
?>
<?php
echo “elenco<br>”;
foreach($_COOKIE[‘web’] as $key => $value)
{
echo $key.”=”. $value;
}
?>