laboratorio7


L'esercitazione ha come obiettivo quello di permettere allo studente di acquisire familiarità con aspetti più avanzati del linguaggio PHP. In particolare verrà esplorato l'uso del di sessioni e/o cookies per il mantenimento dello stato di una applicazione ed in particolare per l'implementazione di un meccanismo di autenticazione. L'esercitazione nel suo complesso richiede più tempo di quello a disposizione.

L'applicazione di riferimento è quella sviluppata nell'esercitazione precedente, che consisteva di due pagine, la prima Pagina 1 che visualizzava le persone all'interno di un database e permetteva di selezionarne una, la seconda Pagina 2, che mostrava lo stato di famiglia della persona selezionata. Ecco una possibile Soluzione da cui partire.

Si presuppone la conoscenza della parte teorica discussa a lezione. Si consiglia di leggere tutto il testo prima di iniziare lo svolgimento. Dubbi su MySQL e sul linguaggio php possono essere risolti riferendosi rispettivamente alla MySQL Reference Guide e al PHP Manual.

Svolgimento dell'esercitazione

1. Aggiunta di un filtro

Modificare la Pagina 1 di modo che ad inizio pagina sia visualizzato un text input, dove l'utente può inserire la parte iniziale del nome, ed un bottone "Filtra". Schiacciando il bottone, viene mostrata solo la lista di persone il cui cognome inizia con la stringa inserita.

2. Pagina di login

Aggiungere una pagina di login, mediante la quale l'utente accede all'applicazione. L'utente deve specificare una login ed una password. Per il momento si assuma che la lista dei login validi e delle corrispondenti password sia mantenuta in un array

$passwords=array("login_1" => "password_1", ..., "login_k"=>"password_k");

hard-coded nel sorgente della funzione get_password($login), che dato un login restituisce la password corrispondente.
  • Il mantenimento dello stato di autenticazione deve essere realizzato con il meccanismo di sessione. Si suggerisce di usare una variabile di sessione $_SESSION['logged'] che indica se l'utente è autenticato.
  • Pagina 1 e Pagina 2 devono essere protette da accessi di utenti non autenticati. Questo può essere ottenuto, attivando la sessione ad inizio pagina e controllando che la variabile $_SESSION['logged'] sia settata.
  • Pagina 1 e Pagina 2 devono riportare, nell'intestazione, il login dell'utente.

3. Logout

Rendere disponibile, in Pagina 1 e Pagina 2, un link di logout, che permetta di chiudere la sessione.

4. Estensioni e varianti

  • Memorizzare lo stato di autenticazione in un cookie, così che l'autenticazione duri oltre la chiusura del browser.
  • Memorizzare le informazioni sugli utenti (login, hash delle password, ...) in una tabella MySQL e quindi nel rendere disponibile una pagina di registrazione.

[Pagine PHP per i punti precedenti]