Formazione pratica nell’ambito di moduli professionalizzanti orientati
all’Informatica del secondo anno di corso della Laurea in Ingegneria
dell’Informazione
Azione n° 167509
Progetto Moduli Professionalizzanti n° 162781, Obiettivo 3, Misura C.3.
Moduli e contenuti professionalizzanti inseriti nei corsi di laurea e diplomi
universitari dell’Università degli studi di Brescia”
Edizione 2
Web Programming
Specifiche generali del progetto
Riccardo Cassinis
Marzia Tassi
Fabio Tampalini
Università degli Studi di
Brescia
4 maggio 2004
Nota importante

Queste trasparenze, e tutto il materiale relativo al corso, sono
reperibili all’indirizzo web
http://www.ing.unibs.it/~cassinis/Dida/FSE
Web programming
4 maggio 2004
2
Prima di tutto, il calendario:
I edizione
Giorno
Ore
Aula
Docenti

Martedì
4/5
10.30 – 12.30
Lab. Via Valotti
Cassinis, Tampalini

Martedì
11/5
08.30 – 12.30
Lab. Via Valotti
Cassinis, Tassi, Tampalini

Martedì
18/5
08.30 – 12.30
Lab. Via Valotti
Cassinis, Tassi, Tampalini

Martedì
25/5
10.30 – 12.30
Lab. Via Valotti
Cassinis, Tassi
Web programming
4 maggio 2004
3
Prima di tutto, il calendario:
II edizione
Giorno
Ore
Aula
Docenti

Martedì
4/5
14.30 – 16.30
Lab. Via Valotti
Cassinis, Tampalini

Martedì
11/5
14.30 – 18.30
Lab. Via Valotti
Cassinis, Tassi, Tampalini

Martedì
18/5
14.30 – 18.30
Lab. Via Valotti
Cassinis, Tassi, Tampalini

Martedì
25/5
14.30 – 16.30
Lab. Via Valotti
Cassinis, Tassi
Web programming
4 maggio 2004
4
Introduzione


Questo modulo si propone di integrare nozioni in parte già
acquisite, applicandole alla realizzazione di un organico
“programma”, potenzialmente distribuito sulla rete Internet
su scala mondiale.
Esso prevede una parte di introduzione al lavoro, e una parte
realizzativa.
Web programming
4 maggio 2004
5
Prerequisiti




Il corso si rivolge a chi ha già un minimo di esperienza di uso
dei linguaggi HTML e C, e dei sistemi operativi Windows e
Linux
La documentazione necessaria può essere integralmente
reperita sull’internet. I link relativi sono indicati sul sito web
segnalato in precedenza
Le informazioni sulla Bourne-Again Shell possono essere
ottenute direttamente da brad digitando man bash
Lo stesso vale per tutti i comandi Linux
Web programming
4 maggio 2004
6
Obiettivi

Acquisire “manualità” nell’uso di alcuni strumenti per la
produzione del software, con particolare riferimento a







Pagine HTML statiche
PHP
Uso elementare di MySQL
Vari editor di testo
Client FTP, SSH, HTTP, etc.
Rendersi conto delle problematiche reali che si incontrano
durante lo sviluppo di un progetto software
Evidenziare i vantaggi e le difficoltà dello sviluppo di moduli
software cooperanti
Web programming
4 maggio 2004
7
Programma di lavoro

Lezione teorica: 2 ore




Esercitazione pratica 1: 4 ore






Esame delle caratteristiche della rete: numeri di IP, routing
Introduzione a MySQL, con esercizi
Presentazione del problema da risolvere e della distribuzione del lavoro
Preparazione e collaudo delle pagine HTML
Preparazione di alcuni script
Esercitazione pratica 2: 4 ore



Organizzazione del lavoro
Presentazione e discussione degli strumenti
Introduzione al linguaggio PHP, con esercizi
Preparazione dei rimanenti script
Integrazione e collaudo del sistema
Valutazione e discussione dei risultati: 2 ore
Web programming
4 maggio 2004
8
Il server che useremo




Indirizzo IP: 192.168.120.50 (non ha un nome simbolico)
Usabile solo dall’interno del laboratorio
Ognuno di voi ha un account personale, descritto nel foglietto
che vi è stato dato
Potete accedere al server tramite:



SSH (e scp)
FTP
HTTP
Web programming
4 maggio 2004
9
Utilizzazione del server:





Per creare un vostro “server privato”, dovete creare una
cartella che si chiama public_html, e metterci dentro i file
.html e .php che creerete.
Per farvi servire il file html, puntate il browser su
http://192.168.120.50/~userid/nomedelfile.html
Per creare una CGI, dovete metterla in
/var/www/cgi-bin/nomedelfile.cgi
Attenzione! È una cartella condivisa!
Per utilizzare una CGI, dovete puntare a
http://192.168.120.50/cgi-bin/nomedelfile.cgi
C’è già un file che si chiama test.cgi per provare
Web programming
4 maggio 2004
10
Il paradigma fondamentale: l’interazione
server-browser
Client
Server
Web server
Web programming
Http
Browser
4 maggio 2004
11
Un modo per ottenere questo è…
Client
Server
Web server
Http
Browser
CGI prog.
Web programming
forms
4 maggio 2004
12
Ma un altro modo potrebbe essere…

Scrivere del codice HTML, in cui alcuni tag sono dei
programmini




Che vengono eseguiti quando il file viene servito
Il cui (eventuale) output viene servito insieme al file HTML
Che possono utilizzare file contenuti sul server…
…magari organizzati con un sistema facile da usare.
Web programming
4 maggio 2004
13
Un cenno sull’organizzazione del lavoro
1.
2.
3.
4.
5.
Decomporre il lavoro in attività
Valutare la durata di ogni attività
(Valutare il costo delle attività)
Trovare le dipendenze fra le attività
Individuare i punti di controllo
Web programming
4 maggio 2004
14
Un PERT parziale…

Program Evaluation & Review Technique
120
Definizione
delle
spe cific he
10
Creazione
gruppo di
lavoro
15
fse .htm l
10
fse .htm l
15
iscriz.html
10
iscriz.html
180
isc rive.cgi
Web programming
0
isc rive.cgi
4 maggio 2004
15
E il relativo timeline
Name
Defin izione del le
spe cifich e
4-2-0 2
Tas k Duration
10
fse .htm l
15
iscriz.html
15
iscriz.html
10
isc rive.cgi
fse .htm l
Web programming
6-2-0 2
7-2-0 2
8-2-0 2
9-2-0 2
120
Creazione gruppo di
lavoro
isc rive.cgi
5-2-0 2
180
0
10
4 maggio 2004
16
Per finire

Durante il corso, il docente sarà a disposizione, tramite
l’indirizzo di posta elettronica [email protected], per
risolvere ogni perplessità relativa alle specifiche
Web programming
4 maggio 2004
17
Materiale utile per lo svolgimento del lavoro

Le trasparenze che seguono contengono alcuni “pro
memoria” utili per svolgere il lavoro
Web programming
4 maggio 2004
18
Le principali parole chiave relative ai form
<!-- This is the start tag for the form. -->
<form ACTION=MAILTO:[email protected] METHOD=POST>
<!-- This is a hidden field which sends a text so we know from which form we got this.
<input NAME="subject" TYPE="hidden" VALUE="Mail from ARL guestbook">
<!-- This is a standard text field which has the width of 56 characters. -->
<input TYPE="text" NAME="name" SIZE=56 MAXLENGTH=56>
<!-- This is a popup field where the user can choose an item. -->
<select NAME=from>
<option VALUE="mail message">I found the address in a mail message
<option VALUE="search engine">From a search engine
</select>
<!-- This is two radiobuttons where the user can choose an item, for example sex. -->
<input TYPE="radio" NAME="sex" VALUE="male">Male
<input TYPE="radio" NAME="sex" VALUE="female">Female
<!-- This is a textfield where the user can type in some comments about your page.. -->
<textarea NAME="comments" COLS=60 ROWS=8 WRAP="soft"></textarea>
<!-- At last, we have a 'sign' button and a 'reset' button which will clear the form. -->
<input TYPE="submit" VALUE="Sign">
<input TYPE="reset" VALUE="Reset">
<!-- Finally, don't forget to end the form using the end tag. -->
</form>
Web programming
4 maggio 2004
19
Script da inserire in tutte le pagine HTML
<script LANGUAGE="JavaScript">
<!-- Hide this script from incompatible Web browsers! -->
document.writeln("<i>Ultimo aggiornamento: ",
document.lastModified)
document.writeln("</font></i> ")
// Hide this script from incompatible Web browsers! -->
</script>
Web programming
4 maggio 2004
20
Uno script che può essere utile…(1)
#!/bin/bash
# La variabile IFS (Input Fields Separator) contiene tutti i caratteri che devono essere
# considerati separatori. Siccome nel nostro file i campi sono separati da <TAB>,
# definiamo il <TAB> cxome unico separatore possibile (il <CR> lo e' per
# definizione).
IFS=" "
echo IFS "$IFS"
NOMEFILE="provaruota"
echo '********************************'
echo Apertura del File:$NOMEFILE
echo '********************************’
# apre il file numero 3 usando un operatore di redirection
exec 3<> $NOMEFILE
Web programming
4 maggio 2004
21
Uno script che può essere utile…(2)
# legge la prima riga del file in tre variabili
read primo secondo terzo <&3
# cicla con la lettura e la stampa fintanto che $primo contiene qualcosa
while [ $primo ]
do
echo $terzo
# scrive su standard output
echo $secondo
echo $secondo >> fileuscita
echo $primo >> fileuscita
echo
read primo secondo terzo <&3 # legge la prossima riga
done
#chiude il file
3<&-
Web programming
4 maggio 2004
22
Uno script che può essere utile…(3)
# riapre il file numero 3 e fa le stesse cose di prima
exec 3<> $NOMEFILE
echo "File" $NOMEFILE "riaperto"
read primo secondo terzo <&3
while [ $primo ]
do
echo $terzo
echo $secondo
echo $primo
echo $terzo >> fileuscita
echo $secondo >> fileuscita
echo $primo >> fileuscita
echo
read primo secondo terzo <&3 # legge la prossima riga
done
3<&# termina regolarmente
exit 0
Web programming
4 maggio 2004
23
Non dimenticare…


Di mettere due linee bianche dopo l’intestazione di ogni
pagina html generata automaticamente
Di scrivere correttamente l’intestazione:
"Content-type: text/html"

Di salvare sempre il lavoro fatto a intervalli il più ravvicinati
possibile
Web programming
4 maggio 2004
24
Scarica

Modulo di Programmazione - Università degli Studi di Brescia