Salta ai contenuti

Sessioni e cookie

Ogni richiesta web e separata dalle altre. Se apri una pagina e poi un’altra, PHP non ricorda automaticamente chi sei.

Sessioni e cookie servono a conservare informazioni tra una richiesta e la successiva.

Un cookie e un piccolo dato salvato nel browser dell’utente.

<?php
setcookie("tema", "scuro", time() + 3600);

Questo cookie dura un’ora. 3600 sono secondi.

Alla richiesta successiva puoi leggerlo:

<?php
$tema = $_COOKIE["tema"] ?? "chiaro";
echo $tema;

I cookie sono utili per preferenze semplici, come lingua o tema.

Una sessione salva i dati sul server e collega l’utente a quei dati tramite un identificatore.

Devi chiamare session_start() prima di usare $_SESSION.

<?php
session_start();
$_SESSION["nome"] = "Luca";

In un’altra pagina:

<?php
session_start();
$nome = $_SESSION["nome"] ?? "ospite";
echo "Ciao $nome";

Le sessioni sono adatte per login, carrelli e dati temporanei legati alla visita.

I cookie sono adatti per piccole preferenze che possono restare nel browser.

Per un logout semplice:

<?php
session_start();
session_destroy();

Attenzione: non salvare password in chiaro dentro cookie o sessioni. Per un login reale servono controlli di sicurezza piu completi.

Un cookie e adatto per una preferenza semplice.

<?php
setcookie("lingua", "it", time() + 60 * 60 * 24 * 30);

Questo cookie dura circa 30 giorni. Alla visita successiva puoi leggere la lingua scelta.

<?php
$lingua = $_COOKIE["lingua"] ?? "it";

In un login reale dovresti controllare email e password nel database. Qui guardiamo solo il meccanismo della sessione.

<?php
session_start();
$_SESSION["utente_id"] = 15;

Nelle pagine riservate puoi controllare se l’utente e presente.

<?php
session_start();
if (!isset($_SESSION["utente_id"])) {
echo "Devi accedere";
exit;
}

Se usi $_SESSION senza session_start(), PHP non apre la sessione. Metti session_start() all’inizio del file, prima di stampare HTML.