Esercitazione 5
|
Creazione di un'area intranet
Riprendete la tabella degli utenti dell'esercitazione 4
che questa volta diventano i dipendenti dell'azienda ACME.
ACME ha prediposto un'area intranet per lo svolgimento
di molte operazioni interne.
L'accesso all'area intranet è subordinato ad una fase
di autenticazione che avviene in più passi.
- Ogni dipendente deve prima selezionare la propria area
di appartenenza scegliendola da un
menu a tendina simile a quello in figura (non preoccupatevi di riprodurre lo
stesso codice HTML).
- A questo punto deve essere presentato un
secondo menu che contiene i nominativi dei dipendenti dell'area selezionata.
- Selezionato il proprio nome, ogni dipendente deve inserire la propria
password. Se l'autenticazione va a buon fine, verrà presentato un
menu dei possibili servizi on line.
Nota: naturalmente, se l'autenticazione va a buon fine si deve attivare il meccanismo
delle variabili di sessione.
|
|
Esercizi
- Usando phpMyAdmin create e popolate la tabella delle aree dell'azienda ACME,
che dovrà contenere almeno i due attributi idarea e nomearea.
Modificate la tabella degli utenti aggiungendo l'attributo idarea (chiave
esterna - anche se non supportata direttamente in questa versione di MySQL)
che, per ogni dipendente, tiene traccia della sua area di appartenenza.
- Interrogate il database per generare dinamicamente il menu a tendina
che contiene i nomi delle varie aree
(vedi
figura).
Nota: le aree sono una informazione che non varia nel tempo e quindi - almeno
in questo caso - si potrebbe pensare di fare un file HTML statico, ma per esercizio
è meglio farlo comunque dinamico .
Ecco un frammento di pseduo-codice PHP che permette di generare un menu a tendina.
<?
//preparo la query di selezione
$query = "select attr1, attr2 ......";
//eseguo l'interrogazione
$res = mysql_query($query);
//conto i record
$num_res = mysql_num_rows($res);
if ($num_res != 0) {
//formatto il risultato per il client
while ($row = mysql_fetch_array($res))
echo "<option value='" . $row["attr1"] . "'> . $row["attr2"] . "<option>\n";
echo "<select>\n";
}
else
{ .... }
?>
- Quando l'utente preme il tasto Continua nel menu generato al passo precedente
si deve estrarre dal database l'elenco di tutti i dipendenti che lavorano nell'area
selezionata
(vedi
figura).
Qui si dovrà creare una query che usa l'informazione
relativa all'area selezionata ed estrarre tutti i dipendenti che vi lavorano.
Naturalmente questa è una informazione che varia nel tempo e quindi è
opportuno generare il menu in modo dinamico.
Nota: il valore inviato al server che viene usato per la creazione della query
è quello associato all'attributo value nel menu a tendina generato
al passo precedente. Si tratta di un valore che è stato appena estratto dal
database e quindi dovrebbe esistere nel database. Tuttavia, potrebbero
non esserci dipendenti che appartengono ad una determinata area oppure il valore
potrebbe essere stato manipolato dal lato client. Quindi, anche se sembra apparentemente
inutile, qualche controllo va fatto per evitare di restituire all'utente errori
generati dal server MySQL. È sufficiente controllare che la vista risultato
dell'interrogazione non sia vuota (vedi pseduo-codice precedente).
- A questo punto si deve procedere alla fase di autenticazione mediante login e password
e, se tutto va a buon fine, si deve presentare l'elenco dei servizi disponibili.
Nel vostro caso, l'unico servizio sarà quello che permette la modifica del profilo
personale, andando a riprendere (ed eventualmente modificare) il file modprofilo.php
dell'Esercitazione 4.
- Per i più "coraggiosi". Quando create i menu a tendina provate anche
a pensare e a creare dei file di testo che contengono le stesse informazioni, salvati
sul server in formato XML.
|
|
|