Guida ai cookie php: cosa sono e come usarli in modo corretto

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 1: Iniziare con PHP

Parte 2: Funzioni per gestire le stringhe

Parte 3: Trucchi PHP e MYSQL

Parte 4: Guida Cicli IF, ELSE, ISSET, EMPTY

Parte 5: Gli array PHP

Parte 6: i cicli PHP: Do,While – For – Foreach

Parte 7: Guida ai cookie PHP

[/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.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

guida-ai-cicli-php-uso-di-for-foreach-e-do-while
Up Next:

Guida ai cicli PHP: uso di For, Foreach e Do-While

Guida ai cicli PHP: uso di For, Foreach e Do-While