programmare le sessioni oggi con i nuovi array superglobali è quasi banale!
L'array in questione è $_SESSION;
Puoi chiamarlo anche dentro le funzioni senza doverlo passare ocme parametro!


è sufficiente la chiamata a
session_start();

all'inizio dello script, per associare correttamente l'utente a quella sessione.

Per precauzione, se dovesse apparirvi il problema dell' "output already sent", chiamate prima

ob_start();

Dopodichè, se vuoi memorizzare un dato, usi

$_SESSION['nomevar'] = 'pippo';


per richiamarlo:

echo $_SESSION['nomevar'];

Fine.

Per eliminare i contenuti della sessione, usa

session_unset();
session_destroy();

Secondo me, l'ideale per un login è la cosa seguente:

l'utente chiede il login:
se si è autenticato correttamente gli imposti, SE LO HA ESPRESSAMENTE CHIESTO, un cookie con la chiamata a

setcookie('id',$classe_di_codifica->codifica($id_dal_db),'/',time()+" quanto ti pare in sec.");



inserendovi per esempio, l'ID ma CODIFICATO! per esempio con una funzione crypt() a 2 vie, inserita magari in una classe.

Per l'attuale navigazione, imposti un
$_SESSION['login'] = true;

e su ogni pagina ne effettui la presenza.

Quando si slogga, la volta successiva controlli la presenza della variabile

$_COOKIE['id']

se presente la decodifichi ed effettui una chiamata al db per verificare che l'utente esista.

altrimenti... si rilogga.

Non usare cookie in chiaro; meglio evita!

Bye