Esercitazione 6
|
In questa esercitazione dovete interagire con il server MySQL.
Se non lo avete ancora fatto, verificate se il vostro utente MySQL funziona.
Si presenta una schermata di phpmyadmin
dove dovete salvare un database con lo stesso nome del vostro utente MySQL. A questo punto
potete creare, cancellare, modificare le tabelle del database appena creato.
Nota: perchè tutto funzioni dovete abilitare SSL nel browser.
|
|
Esercizio: accesso ad un database via web
Se non ricordate le funzioni PHP per l'interazione con MySQL potete guardare
i
sorgenti degli esempi della lezione Introduzione a MySQL.
- Create nel vostro database una tabella studenti.
Per ogni studente memorizzate
idstud, nome, cognome, recapito, matricola, login, password, attivo
(all'inizio i campi indirizzo, login, password e attivo saranno vuoti
oppure avranno un valore di default che dovete scegliere durante la creazione
della tabella).
Il campo attivo serve per decidere se un login è abilitato oppure no;
potete scegliere un tipo intero cui associare solo due valori (ad esempio
0=non attivo, 1=attivo).
PS: in laboratorio mi sono accorta che nella tabella studenti
si potrebbe evitare di inserire il campo idstud perchè basta
il numero di matricola (o, viceversa, potete usare idstud e non memorizzare
il numero di matricola).
- Scrivete un programma PHP che genera dinamicamente un menu come quello nella
Figura 1 che contiene l'elenco degli studenti presenti nel database,
ordinati per cognome.
Qui trovate l'esempio
di generazione dinamica di un menu vista a lezione.
Figura1
- Selezionando uno studente e premendo il pulsante Continua
deve essere generato un modulo simile a quello in Figura 2 che
contiene le informazioni già presenti nel database (non modificabili)
e permette di aggiungere quelle mancanti.
- Premendo Modifica si devono aggiornare i dati nel database.
Figura2
Nota1: la prima volta che si assegna il login ad uno studente, i
campi di input del modulo dovranno contenere la voce non disponibile.
Per le modifiche successive dovranno comparire i dati già
presenti nel database. Questo si può ottenere:
- Cercando nel database i dati dello studente selezionato;
- Generando gli elementi di input del modulo con un attributo
value inizializzato con il valore contenuto nel database
oppure con non disponibile.
Se $row["login"] contiene il login dello studente selezionato si potrebbe
scrivere qualcosa di simile:
if ($row["login"]=="")
$valore = "non disponibile";
else
$valore = $row["login"]';
echo "<input type='text' name='login' size='30' maxlength='50' ";
echo "value='" . $valore. "'>";
Naturalmente, se decidete di usare come valori di default per gli attributi
non obbligatori la stringa non disponibile il codice precedente si semplifica
molto perchè non serve fare il test sul valore nullo.
Nota2: attenzione ai controlli sull'input!
Nota3: a far le cose per bene, si dovrebbero prevedere due campi per
la password e fare il controllo sull'uguaglianza dei dati forniti in
input. Inoltre, nel modulo si dovrebbe usare
<input type='password' name='password' .... >
per evitare di riprodurre a video la password in chiaro!
|
|
|