2 INFORMATICA PER L'AZIENDA - EDIZIONE GIALLA - LavoriConClasse
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
PAOLO CAMAGNI
RICCARDO NIKOLASSY
INFORMATICA PER L’AZIENDA
EDIZIONE GIALLA
2
SISTEMI INFORMATIVI
AZIENDALI
Progettazione lato server,
integrazione dei dati e processi
nei sistemi ERP,
reti aziendali e sicurezza
HOEPLIpaolo camagni RiccaRdo nikolassy
Informatica
per l’azienda
EdIzIonE gIalla
Sistemi Informativi aziendali
VolUME 2
progettazione lato server,
integrazione dei dati e processi
nei sistemi erp, reti aziendali e sicurezza
editore ulrico hoepli milanoCopyright © Ulrico Hoepli Editore S.p.A. 2014 Via Hoepli 5, 20121 Milano (Italy) tel. +39 02 864871 – fax +39 02 8052886 e-mail hoepli@hoepli.it www.hoepli.it Tutti i diritti sono riservati a norma di legge e a norma delle convenzioni internazionali
Indice
Indice
Unità di apprendimento 1 Unità di apprendimento 2
Fondamenti di programmazione in PHP Programmazione avanzata in PHP
l1 Introduzione all'ambiente PHP l1 la persistenza nel dialogo HTTP
Pagine Web statiche o dinamiche . . . . . . . . . . . . . 2 La persistenza in PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Pagine dinamiche e script lato server . . . . . . . 4 L’autenticazione con i cookies . . . . . . . . . . . . . . . . 71
Richiami sul ruolo del server HTTP . . . . . . . . . . 5 Veriwchiamo le conoscenze . . . . . . . . . . . . . . . . . . . . . . 74
Le origini del linguaggio PHP . . . . . . . . . . . . . . . . . . 6 Veriwchiamo le competenze . . . . . . . . . . . . . . . . . . . . . 75
Includere il codice PHP nelle pagine . . . . . . . . . 7
Veriwchiamo le conoscenze . . . . . . . . . . . . . . . . . . . . . . 10 l2 I file e l’upload in PHP
Veriwchiamo le competenze . . . . . . . . . . . . . . . . . . . . . 12 L’apertura di un file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Lettura e scrittura in un file di testo . . . . . . . . . 78
l2 la sintassi e i costrutti di PHP L’array associativo $_FILES . . . . . . . . . . . . . . . . . . . 80
Gli operatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Veriwchiamo le conoscenze . . . . . . . . . . . . . . . . . . . . . . 82
Costrutti principali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Veriwchiamo le competenze . . . . . . . . . . . . . . . . . . . . . 83
I tipi di dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Il casting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 l3 gli oggetti in PHP
Veriwchiamo le conoscenze . . . . . . . . . . . . . . . . . . . . . . 23 Il paradigma a oggetti in PHP . . . . . . . . . . . . . . . . . . 85
Veriwchiamo le competenze . . . . . . . . . . . . . . . . . . . . . 25 L’ereditarietà . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Veriwchiamo le competenze . . . . . . . . . . . . . . . . . . . . . 91
l3 Visibilità delle variabili e funzioni
Variabili e costanti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Funzioni native particolari di PHP . . . . . . . . . . . . 30
Le funzioni utente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Unità di apprendimento 3
Inclusione di codice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 la gestione dei dati in PHP
Veriwchiamo le conoscenze . . . . . . . . . . . . . . . . . . . . . . 36 l1 la connessione
Veriwchiamo le competenze . . . . . . . . . . . . . . . . . . . . . 38 al database access
l4 I dati provenienti dai form La connessione al database Access . . . . . . . . . . . 94
I dati inviati dai form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 La connessione ad Access con l’oggetto ADO 96
La tecnica postback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Veriwchiamo le competenze . . . . . . . . . . . . . . . . . . . . . . 108
Il metodo GET e le query string . . . . . . . . . . . . . . . 44
l2 la connessione
Veriwchiamo le conoscenze . . . . . . . . . . . . . . . . . . . . . . 47
al database MySQl
Veriwchiamo le competenze . . . . . . . . . . . . . . . . . . . . . 48
Il flusso dei dati nella comunicazione
l5 gli array e le stringhe in PHP tra PHP e MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Gli array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Il DBMS MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Gli array associativi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Le funzioni di connessione
Le stringhe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 al database MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Veriwchiamo le conoscenze . . . . . . . . . . . . . . . . . . . . . . 62 Verificare i risultati di una query MySQL . . . 123
Veriwchiamo le competenze . . . . . . . . . . . . . . . . . . . . . 64 Veriwchiamo le competenze . . . . . . . . . . . . . . . . . . . . . 126
iiiIndice
l3 Effettuare una login l5 la rete per la Pubblica amministrazione
Il concetto di login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Generalità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Script di autenticazione . . . . . . . . . . . . . . . . . . . . . . . . . 130 Organizzazione della rete . . . . . . . . . . . . . . . . . . . . . . . 170
Veriwchiamo le competenze . . . . . . . . . . . . . . . . . . . . . 135 Dominio della Rete Unitaria . . . . . . . . . . . . . . . . . . . 172
L’Agenzia per l’Italia Digitale . . . . . . . . . . . . . . . . . . . 174
l4 gestire un carrello della spesa Veriwchiamo le competenze . . . . . . . . . . . . . . . . . . . . . . 180
con PHP e MySQl
Carrello della spesa con PHP . . . . . . . . . . . . . . . . . . 136
Veriwchiamo le competenze . . . . . . . . . . . . . . . . . . . . . 141 Unità di apprendimento 5
normativa e sicurezza dei sistemi
informativi
Unità di apprendimento 4 l1 la sicurezza nei sistemi informativi
Reti locali per aziende Generalità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
e Pubblica amministrazione Breve storia degli attacchi informatici . . . . . . 185
l1 Introduzione al networking Futuro prossimo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Sicurezza di un sistema informatico . . . . . . . . . 187
Reti: definizioni e concetti di base . . . . . . . . . . . 145 Valutazione dei rischi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Aspetti hardware delle reti . . . . . . . . . . . . . . . . . . . . . 146 Principali tipologie di minacce . . . . . . . . . . . . . . . . 191
Reti locali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 Sicurezza nei sistemi informativi distribuiti 193
Topologia delle reti locali . . . . . . . . . . . . . . . . . . . . . . . 148 Veriwchiamo le conoscenze . . . . . . . . . . . . . . . . . . . . . . . 196
Reti geografiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 l2 normativa sulla sicurezza
Reti wireless . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 e sulla privacy
Veriwchiamo le conoscenze . . . . . . . . . . . . . . . . . . . . . . . 153 Generalità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Giurisprudenza informatica . . . . . . . . . . . . . . . . . . . . 198
l2 l’architettura a strati ISo-oSI e TCP-IP Il decreto 196/03 del 30 giugno 2003 . . . . . . . . . 200
Generalità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 L’articolo 98 del d.lgs. 30/2005 . . . . . . . . . . . . . . . . 206
L’architettura a strati . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 Legge 18 marzo 2008, n. 48 Crimini
Il modello OSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 informatici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Il modello Internet o TCP/IP . . . . . . . . . . . . . . . . . . . 162 Ultimi decreti e/o leggi . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Classi di indirizzi IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Conclusioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Reti IP private (RFC 1918) . . . . . . . . . . . . . . . . . . . . 167 Veriwchiamo le conoscenze . . . . . . . . . . . . . . . . . . . . . . . 211
Veriwchiamo le conoscenze . . . . . . . . . . . . . . . . . . . . . . . 168 Veriwchiamo le competenze . . . . . . . . . . . . . . . . . . . . . . 212
hoepliscuola.it hoepliscuola.it
l3 Il cablaggio strutturato degli edifici l3 la scelta di una corretta
Generalità password/passphrase
Standard internazionali Password e passphrase
Il cablaggio secondo lo standard EIA/TIA-568 Protezione della passphrase
Lo standard ISO/IEC DIS 11801 Veriwchiamo le conoscenze
Sviluppi tecnologici e normativi
Veriwchiamo le conoscenze l4 la normativa delle reti wireless
Veriwchiamo le competenze Generalità
Le disposizioni legali riguardanti le emissioni
l4 Tipologie di reti ETHERnET elettromagnetiche
Ethernet a 10 Mbps L’obbligo di assunzione di misure minime
Ethernet a 10BaseF di sicurezza in presenza di reti wireless
Ethernet a 100 Mbps Reati informatici connessi al wireless
Ethernet a 1 e 10 Gigabit Leggi e decreti dell’ultimo decennio
Veriwchiamo le conoscenze Veriwchiamo le conoscenze
iVIndice
l5 la tutela del software Unità di apprendimento 7
Generalità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 la prova scritta di informatica
Diritti dell’autore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Licenze d’uso o EULA . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 l1 note generali sulla prova scritta
Licenze per il software di informatica
proprietario/closed source . . . . . . . . . . . . . . . . . . . . . . 219 Generalità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
Licenze per il software libero Schema generale di soluzione . . . . . . . . . . . . . . . . . 295
e open source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 Verifica delle competenze . . . . . . . . . . . . . . . . . . . . . . 301
Veriwchiamo le competenze . . . . . . . . . . . . . . . . . . . . . . 223 l2 galleria d’arte (abacus 1998)
Il testo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Osservazioni sul testo . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Unità di apprendimento 6 Analisi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Il software per il supporto Ipotesi aggiuntive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
dei processi aziendali Moduli (o blocchi) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Schema concettuale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
l1 ERP, Enterprise Resource Planning
Schema logico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Generalità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Interrogazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Storia dei sistemi ERP . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Codice lato server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
Le soluzioni ERP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Veriwchiamo le competenze . . . . . . . . . . . . . . . . . . . . . . 234
hoepliscuola.it
l2 l’integrazione
dei processi aziendali l3 Band musicale (Mercurio 2001)
Generalità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Implementare in azienda un sistema
informativo integrato . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 l4 Studio medico (Mercurio 2007)
Il passaggio a un sistema ERP . . . . . . . . . . . . . . . . . 238 Il testo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Principi per una corretta implementazione 239 Osservazioni sul testo . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Le soluzioni ERP sul mercato . . . . . . . . . . . . . . . . . . 241 Analisi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Veriwchiamo le conoscenze . . . . . . . . . . . . . . . . . . . . . . . 244 Ipotesi aggiuntive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Moduli (blocchi funzionali) . . . . . . . . . . . . . . . . . . . . . 315
l3 la connessione ad access con Schema concettuale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
dataSet in VB.nET Schema logico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
La finestra Origini dati in VB.NET . . . . . . . . . . . 245 Normalizzazione delle tabelle . . . . . . . . . . . . . . . . . . 321
Utilizzare il DataSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 Interrogazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Veriwchiamo le competenze . . . . . . . . . . . . . . . . . . . . . . 255 Codice lato server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
l4 Progetto VB.nET
per l’integrazione aziendale: hoepliscuola.it
l’agenda con dataSet
Gestire una rubrica con DataSet . . . . . . . . . . . . . . 256
l5 agenzia immobiliare (Commerciale 2011)
Veriwchiamo le competenze . . . . . . . . . . . . . . . . . . . . . . 269 l6 dischi & musicisti (abacus 2005)
l5 Progetto per l’integrazione l7 libreria online (abacus 2007)
aziendale: l’anagrafica clienti
con RecordSet l8 Banca del tempo (abacus 2002)
La connessione ad Access con l’oggetto ADO 272
Veriwchiamo le competenze . . . . . . . . . . . . . . . . . . . . . . 290
hoepliscuola.it
l6 Progetto per l’integrazione aziendale:
la fatturazione
Vpresentazione
Presentazione
L’impostazione del presente corso in due volumi è stata realizzata sulla base delle indica-
zioni ministeriali in merito a conoscenze e abilità proposte per la disciplina Informatica
nell’articolazione Sistemi Informativi Aziendali degli Istituti Tecnici settore Economico,
dove la materia è prevista nel secondo biennio e nel quinto anno del nuovo ordinamento.
Abbiamo ritenuto irrinunciabile fare tesoro della nostra esperienza maturata nel corso di
numerosi anni di insegnamento che ci ha reso consapevoli della difficoltà di adeguare le
metodologie didattiche alle dinamiche dell’apprendimento giovanile e ai continui cambia-
menti tecnologici che implicano sempre nuove metodologie di comunicazione, per pro-
porre un testo con una struttura innovativa, riducendo l’aspetto teorico e proponendo un
approccio didattico di apprendimento operativo, privilegiando il “saper fare”.
Scopo del volume per il quinto anno è fornire le basi teoriche e pratiche per la programma-
zione di applicazioni gestionali in VB.NET, per la realizzazione di siti web dinamici in PHP
e per la comprensione delle principali problematiche connesse alle reti di computer azien-
dali e della Pubblica Amministrazione, in particolar modo sotto l’aspetto della sicurezza.
Il volume è strutturato in unità di apprendimento suddivise in lezioni che ricalcano le indi-
cazioni dei programmi ministeriali per il quinto anno di studio: lo scopo di ciascuna unità
di apprendimento è quello di presentare un intero argomento, mentre quello delle lezioni
è di esporne un singolo aspetto.
Nella pagina iniziale
di ogni unità di apprendimento All'inizio
è presente un indice delle di ogni lezione sono
lezioni trattate indicati in modo
sintetico i contenuti
Indice degli obiettivi che si
intendono raggiungere e delle attività
che si sarà in grado di svolgerepresentazione
Le finalità e i contenuti dei diversi argomenti affrontati sono pre-
sentati all’inizio di ogni unità di apprendimento; in conclusione di
ogni lezione sono presenti esercizi di valutazione delle conoscen-
ze e delle competenze raggiunte, suddivisi in domande a risposta
multipla, vero o falso, a completamento, e infine esercizi di pro-
gettazione da svolgere autonomamente.
Al libro viene allegato un CD-ROM che contiene i file sorgenti con
il codice di tutti gli esempi proposti nel testo nonché il materiale
necessario per eseguire le procedure guidate degli esercizi svolti e
da svolgere in itinere nelle diverse unità didattiche con le rispet-
tive soluzioni.
L’ambiente visuale
In Microsoft Acces di VBA per Excel
s è possibile creare Lezione 1
lizzate. finestre di inserim
1
Lezione ento o di ricerc
Excel a e filtraggio
di VBA per dati persona-
e visuale
L’ambient
Zoom su...
Le osservazioni aiutano si procede
scriven-
OLE AUTOMATI
Prima di utilizza
ON
. re questo lingua
proprietà di testo relativa
lo studente a comprendere
OLE è l’acron ggio è impor
ificare una casella imo tante conoscere
3 Per mod vo valore nella si modifi
ca la di oggetti). Con di Object Linked and Embe il significato di
do il nuo pulsante (ad OLE
secondo un funzio Automation si indica l’oppo
dded, (in ingles OLE Automation.
testo del o il nuovo testo e colleg
ificare il a Cap- rtunità di far coope amento e incorporazio
Per mod , scrivend nto una risorsa messa namento di tipo Client/Serve ne
tion acca r, dove un progra rare tra loro più programmi,
e ad approfondire proprietà
esem pio
tion, con
Cap
“Prova”)
fermand
o con il tast
lla
nella case Invio. ▶
o
anche detto
grado di comun
lingua comun
a disposizione
“VBA Compliant”, da un altro programma
icare e compr
dall’inglese “comp
endere la sintass
mma (client),
(server). Il può richiedere
iacente”, si intend programma server viene
e, i vari applic i del Visual Basic. e qualsi asi applicativo
ativi possono In questo modo in
interagire fra , parlando una
di loro scamb
iandosi inform
ione azioni.
progettaz
la modalità ione
• Attivare la modalità progettaz
enti
• Disattivare Casella degli strum
la
• Attivare Microsoft
grafici grafico
o!
Prova adess
oggetto Excel
Il signiƂcato
ire un Microsoft
• Inser
ed eseguirlo Outlook
i e Codice. Leggere
Controll
sso rapido lavoro. tà Caption
). email Inviare
a di acce
a la barr ante nel foglio di esempio” (proprie
di moltissimi termini 1 Attiv
3 Asse gna
un puls
2 Inserisci al pulsante il test
ante il
o “Primo
colore blu scur
ante (pro
tà BackCo
prie
lor).
o (proprie tà ForeColor, colo
prietà Fon
re bianco).
t, Georgia
, 16).
Mediante l’OLE
Gestire
contatti
email
gna al puls del testo del puls o del pulsante (pro Automation è
4 Asse
informatici viene illustrato e 5 Mod
6 Mod
ifica il colo re
di carattere
ifica il tipo del codice (Visu
a la finest
ra
del test
al Basic
Editor).
pacchetto Offi
◗ inviare email
to Word o da
ce:
tramite Outlo
possibile effettu
ok prelevando
are le seguenti
operazioni con
i programmi
del
7 Attiv io di lavoro. zione. un
◗ usare le funzio foglio Excel;
gli indirizzi da
un database Acces
approfondito nel fogl etta ma.
8 Tornare la Modalità prog ficare il program ni
◗ importare una di Excel all’interno di un docum
s, da un docum
en-
veri
9 Disattiva pulsante per ◗ trasferire un
tabella Excel
in un database ento Word;
sul
1p Fai clic le. testo
◗ prelevare statist scritto in Word in alcune
Access;
il fi
1q Salva iche da un foglio slide di Power
Excel in un docum Point per creare
ento di Word. una presen tazione;
VBA i diversi: );
mma in può essere eseguito inante sul quale avviene
due mod un click
un progra ■ Le macro
■ Scrivere realizzato in linguagg pio un puls
io VBA
ro (ad esem al Basic Editor.
ma o di lavo
fogli Visu di , proce- Il registratore
Un program evento legato al modulo pulsante di ◀ macro ▶
ente in un su di un stiera e/o con è un
un
◗ tramite il codice direttam un click il mouse, perme mezzo per memorizzare e
sto caso Le macro eseguo ttendo così di riutiliz
◗ scrivend
o to, in que no sequenze creare delle proced zare le azioni compiute
ad un even o di di azioni molto ure automatizza con la ta-
ma legato rlo sul fogli più rapidamente te chiamate macro
un program o: i e trascina di noi. .
Per scri vere mod zione; po Controll ◀ Macro Una
seguente progetta o dal grup macro può essere
diamo nel sull’icona Modalità ante di comand Edit or;
in linguaggio
Visual Basic for definita come un insieme
puls al Basic dalla sequenza Applications di istruzioni, detto
1 fare clic l’oggetto grafico are il Visu End: di istruzioni che (VBA) codice. Il codice
liere attiv croistruzione la compongono ed è in grado di eseguire è scritto
2 sceg cinato per e Sub e che identifica
una istruzione . La parola macro azioni descrit
lavoro; oggetto tras tra le righ molto potent deriva dal termin te appunto
pio clic sull’ ce seguente e formata da
più istruzioni.
e informatico
ma-
3 fare dop punto scrivere codi ▶
sto
4 a que tto in
VBA”
a tutti” ramma scri lavoro”
“Salve un prog io di
MsgBox ento: sono are nel fogl ante;
“Mi pres torn clic sul puls
MsgB ox per facendo
“Premete
Ok
in Excel, ;
MsgBox io tornare e di tasti Alt + F11 69
necessar
ramma è combina
zion
prov are il prog ro usando la 77
5 per
al foglio
di lavo
6 tornare
Lo studente può mettere
in pratica in itinere quanto sta
apprendendo nel corso della lezione Le parole chiave
In questa sezione viene vengono poste in evidenza
approfondito un argomento e spiegate allo studente
di particolare importanza
hoepliscuola.it
Alla pagina web http://www.hoepliscuola.it sono disponibili le risorse online, tra cui
lezioni, numerosi esercizi aggiuntivi per il recupero e il rinforzo, nonché schede di
valutazione di fine unità.
Per la veriƂca delle conoscenze
e delle competenze è presente
un'ampia sezione di esercizi
ViiiFONDAMENTI DI
1 PROGRAMMAZIONE
IN PHP
UNITÀ DI APPRENDIMENTO
L 1 Introduzione
all’ambiente pHp
L 2 La sintassi
e i costrutti di pHp
L 4 I dati provenienti dai form
L 5 gli array
e le stringhe in pHp
L 3 Visibilità
delle variabili e funzioni
OBIETTIVI ATTIVITÀ
• comprendere il concetto di pagina Web • applicare gli operatori e i principali
statica e dinamica costrutti del linguaggio php
• capire il ruolo dei server http e degli • dichiarare e richiamare funzioni passando
script lato server parametri
• riconoscere il ruolo dei tipi dati ed • elaborare i campi Get e poSt ricevuti dai
effettuare il casting tra tipi diversi form
• comprendere la visibilità delle variabili • Creare script che utilizzino Array e
• capire il concetto di elaborazione stringhe
distribuita • utilizzare la tecnica postback
• Dewnire gli Array e gli Array associativi • Elaborare i campi ricevuti da query stringUdA 1 Fondamenti di programmazione in pHp
lezione 1
IntroduzIone
all’ambIente PHP
In QueSta lezIone ImPareremo...
• il concetto di pagina Web statica e dinamica
• il ruolo dei server Http
• il signiƂcato di script lato server
■■ Pagine Web statiche o dinamiche
La tecnologia attuale permette di creare pagine Web statiche o dinamiche. In una pagina Web sta-
tica, il contenuto della pagina viene stabilito nel momento in cui si crea e si memorizza la pagina
sul Web server e quindi ogni volta che un utente accede a una pagina statica, questa gli presenta
le stesse informazioni, a meno che non venga aggiornata, cioè riscritta. In tal modo più utenti che
accedono alla stessa pagina ottengono gli stessi contenuti.
Richiesta pagina
Server del sito web Computer
interessato del visitatore (Client Side)
(Server Side) Invio pagina
Elaborazione
Database di tipo standard
Nessun componente
Banca dinamico attivato
dati
In una pagina Web dinamica, i contenuti della pagina variano in funzione delle informazioni passate
dall’utente come input (ad esempio la login di accesso a una sezione riservata di un sito).
2Introduzione all’ambiente pHp Lezione 1
Richiesta pagina
Server del sito web Computer
interessato del visitatore (Client Side)
(Server Side) Invio pagina
Scambio
ed elaborazione
dati tra le due parti
Elaborazione
Database di tipo dinamica
Componenti dinamici
Banca e fonti dati attivati
dati
È importante sottolineare che il codice della pagina dinamica è nascosto all’utente che riceve sem-
pre una pagina in formato HTML. Il Web server, infatti, prima di inviare la pagina dinamica all’uten-
te la trasforma in una pagina statica generando al volo (on-the-fly) il codice HTML come risultato
di una elaborazione del codice dinamico presente nella pagina sul server. Questa elaborazione del
codice dinamico è effettuata da un apposito modulo o componente software del server Web o in
stretta relazione con esso, definito scripting engine (motore di scripting), che assolve alla funzione
di interprete del linguaggio. Quando l’utente richiede una pagina dinamica effettua una richiesta al
server Web (Request), a quel punto il server, dopo aver elaborato la pagina restituirà (Response) una
pagina il cui contenuto può variare in relazione alla richiesta e alla elaborazione che è stata eseguita
sul server da parte dello script dinamico.
Richiesta (R) (Request) Sito
Risposta (Response) Script engine
Server web
Utente
...
condizione
...
...
a
...
In sintesi quando un client fa una richiesta a un server per ottenere una pagina statica (con esten-
sione .htm o .html), vengono eseguiti questi passaggi:
1 il client richiede una pagina al Web server (request);
2 il Web server invia la pagina Web al client sotto forma di documento HTML (response);
3 il browser del client interpreta e visualizza il documento HTML ricevuto.
3UdA 1 Fondamenti di programmazione in pHp
Quando invece si tratta di una pagina dinamica (con estensione .php ad esempio) i passaggi sono:
1 il client richiede una pagina al Web server (request);
2 il Web server elabora il codice interno alla pagina e sostituisce il codice sorgente PHP con codice HTML;
3 il Web server invia la pagina al client sotto forma di documento HTML (response);
4 il browser del client interpreta e visualizza il documento HTML ricevuto.
■■ Pagine dinamiche e script lato server
Perché le pagine Web diventino dinamiche, vi si possono inserire degli script. Uno script è un codice
di programma inserito in un file HTML che viene interpretato ed eseguito. Si possono avere script
lato client, che vengono interpretati ed eseguiti dal browser e script lato server. In questo caso il
server, sulla base delle istruzioni di scripting, confeziona una pagina HTML e la invia al client; infatti
PHP è un linguaggio di scripting lato server.
Le applicazioni tipiche degli script lato server sono le interrogazioni ai database remoti, per ottene-
re servizi come ad esempio motori di ricerca, blog, forum di discussione. In genere le applicazioni
per internet sono la combinazione di tre tipologie di pagine, secondo una architettura posta su 3
livelli ◀ three-tier architecture ▶ in cui il livello più basso è quello che riceve l’utente finale (front
end), in formato dhtml (Dynamic HTML), il livello intermedio (middleware) corrisponde al forma-
to delle pagine PHP, mentre il livello più alto (back end) corrisponde alle applicazioni che gestiscono
i database remoti.
◀ three tier architecture In three tier
architecture, there is an intermediary lev-
Level 1 Level 2 Level 3
el, meaning the architecture is generally split up
Sending SQL between:
Http requests query
- a client, which requests the resources, equipped
request,
files, with a user interface (usually a Web browser) for
SQL… presentation purposes;
Sending
replies - the application server (also called middleware),
whose task it is to provide the requested resourc-
Client Application Database
server server es, but by calling on another server;
- the data server, which provides the application
server with the data it requires. ▶
Per utilizzare php è necessario dotarsi di alcuni elementi, che vanno dal Web server, all’interprete del
linguaggio (chiamato engine o motore), al Database Administrator. L’architettura Three tier indicata
di seguito è riferita in particolare al ruolo che svolge PHP nella tipica comunicazione client server:
1. Richiesta pagina PHP
Client Web Server
6. Elaborazione pagine PHP
e invio al Client della pagina HTML
5. Invio 2. Richiesta
pagina elaborazione
elaborata programma
4. Invio dati
Database Interprete
PHP
programma
3. Richiesta dati
4Introduzione all’ambiente pHp Lezione 1
I componenti illustrati si possono così riassumere:
◗■ Web server:
– apache (Windows, Linux)
– internet information Server (IIS)
◗■ Interprete PHP o PHP engine (Zend)
◗■ Database:
– access
– MySQL
◗■ Client Browser:
– FireFox, Safari, internet explorer, opera, chrome
LAto CLIENt
Per programmazione lato client intendiamo l’insieme dei programmi (in genere script o
applet) che vengono interpretati ed eseguiti dal client. Per programmazione lato server
intendiamo l’insieme dei programmi che vengono interpretati sul server e poi inviati
sotto forma di pagine HTML verso il client.
Di conseguenza, chi accede a una pagina PHP non ha la possibilità di leggere le istruzioni in essa
contenute: essendo state già processate, quello che il client vedrà sarà il risultato dell’elaborazione;
per riassumere, il client vedrà cosa fa lo script ma non come lo fa. Programmare in modo lato server
implica quindi una gestione delle risorse assai accurata, per evitare problemi quali:
◗■ gestione della contemporaneità nella richiesta della stessa informazione;
◗■ elaborazione lenta;
◗■ sicurezza dei dati;
◗■ difficoltà nell’aggiornamento dei dati sul server;
◗■ ripetizione delle informazioni (ridondanza);
◗■ caduta della linea con conseguente perdita di informazioni;
◗■ ecc.
■■ Richiami sul ruolo del server HTTP
Un server HTTP gestisce 2 flussi di informazioni:
• HTTP request: le richieste in arrivo dai client;
• HTTP response: le risposte del server, inviate ai client;
Request
Response
Server Client
In particolare l’oggetto HTTP request contiene tutte le informazioni relative alla richiesta che il
client effettua tramite il browser al server: l’indicazione di un URL o di una pagina specifica e gli
eventuali dati. L’HTTP response contiene invece l’oggetto inviato in risposta dal server al client,
suddiviso in intestazione o header (contenente il codice di stato del server, eventuali metadati) e
corpo o body (contenente il codice della pagina Web richiesta).
5UdA 1 Fondamenti di programmazione in pHp
esempio di Http
request
esempio di Http
response
Gli script lato server possono interagire con vari oggetti della conversazione client server, tra cui
HTTP request e HTTP response. L’oggetto HTTP request contiene tutte le informazioni relative
alla richiesta che il client effettua al Web server. Ad esempio quando l’utente compila un modulo
on-line (form) e lo invia parte la richiesta al server, in questo caso l’oggetto request conterrà varie
informazioni relative alla richiesta del client, tra cui tutti i dati del modulo come ad esempio i nomi
dei campi e i rispettivi valori. L’oggetto response viene invece utilizzato dal Web server per inviare
informazioni al client (browser). L’esempio di una response è data dal codice PHP scritto di seguito:
Mentre invece un esempio di request è dato da un form HTML, oppure un form generato con una
pagina PHP.
■■ Le origini del linguaggio PHP
◀ php ▶ è un linguaggio di scripting lato server, appartiene alla categoria di linguaggi Open Source,
la cui sintassi deriva direttamente dal linguaggio C. Il codice PHP può essere scritto in una pagina
che contiene anche codice HTML. L’interprete PHP traduce il codice PHP in html, offrendo la pos-
sibilità ai programmatori di creare pagine Web dinamiche.
◀ PHP SigniƂca Hypertext Preprocessor (Preprocessore Ipertestuale). Il nome originale era
personal home page tools (Strumenti Personali per Home Page), tuttavia dopo la sua vasta
espansione gli fu assegnato un nome che appare forse più appropriato. ▶
6Introduzione all’ambiente pHp Lezione 1
A differenza delle pagine Web statiche, che contengono HTML e al massimo CSS, il contenuto di una
pagina Web dinamica può modificarsi in seguito ad azioni o input dell’utente o a seguito di informa-
zioni provenienti per esempio da database o da file.
Il linguaggio in oggetto consente di ricevere dati provenienti dai form, elaborarli per fornire una
risposta al client. Inoltre consente di realizzare connessioni a database come ad esempio MySQL e
Access per realizzare interrogazioni a dati in remoto.
I programmi scritti in PHP vengono dewniti lato server in quanto necessitano di essere ese-
guiti su un Web server.
I programmi scritti nei ◀ Server Side Language ▶, come appunto php, forniscono al client solo
il risultato dell’esecuzione del programma sotto forma di pagine HTML. Il browser del client deve
essere soltanto in grado di interpretare il codice HTML utilizzato, pertanto dal client non possiamo
“vedere” il codice sorgente in php che ha generato la pagina, in quanto essa viene eseguita sempre
e solo sul server.
ColdFusion Perl Ruby
Python
◀ Server Side Language A server-side scripting
Java language is one that resides on the server. Whereas
client-side scripting happens inside the users browser, after
ASP.NET they’ve downloaded the code, server-side languages work be-
fore the Ƃle is sent from the server. Server-side languages tend
to deal with more “heavy lifting” than client side. They retrieve
records from databases, maintain state over the stateless HTTP
connection, and do a lot of things that require more security
than JavaScript alone can provide. Because they reside on the
server, these programs never have their source code exposed to
PHP the user. JavaScript source code must be available to the client
Percentages of websites using various server-side
by deƂnition. Some server-side languages are: php, Ruby, Py-
programming languages thon, Java, coldFusion, aSp, and perl. ▶
■■ Includere il codice PHP nelle pagine
L’interpretazione di uno script in PHP avviene per mezzo del motore php (php engine), un program-
ma che effettua prima di tutto il parsing (interpretazione di righe) in grado di esaminare il sorgente
del programma.
L’inizio dello script PHP è sempre delimitato da un particolare tag (UdA 1 Fondamenti di programmazione in pHp
All’interno di questo volume utilizziamo una notazione particolare, utile soprattutto per i ne-
owti, si tratta di digitare il codice HTML, quando inserito nelle istruzioni PHP, sempre in ma-
iuscolo. Questo, anche se non è aderente alle regole dell’XHTML, rende il codice molto più
leggibile e semplice da comprendere.
Le istruzioni sono separate tra di loro dal punto e virgola, inoltre il linguaggio è case sensitive. Gli
script PHP possono essere collocati interamente sia nella di un documento Html, che nel
corpo del documento (). Non possono tuttavia iniziare nella per terminare nel
. Il file nel suo complesso viene eseguito dall’alto verso il basso, ed è possibile passare più
volte da istruzioni HTML a istruzioni PHP. Il prossimo esempio mostra come creare una pagina in
formato PHP, utilizzando un qualsiasi editor in formato testo, in questo caso utilizzeremo l’editor
Scite (www.scintilla.org).
Per eseguire l’esempio che segue dobbiamo avere installato il Web server e il motore PHP, oppure
un pacchetto come ad esempio Xampp o EasyPHP, come illustrato all’interno della prima attività
di laboratorio. Il file deve essere collocato all’interno della document root, che per EasyPHP è rap-
presentata dal seguente percorso:
c:\programmi\easyphp\www
Per XAMPP invece il percorso di default è il seguente:
c:\XAMPP\htdocs
ESEmpIo 1 Prima pagina php
Il codice mostra una semplice pagina nella quale abbiamo inserito del codice PHP all’interno di
altro codice HTML. Come possiamo notare l’importante è chiudere sempre il blocco PHP con il tag
appropriato.
8Introduzione all’ambiente pHp Lezione 1
Il codice è stato digitato mediante il text editor Scite.
Digitiamo l’url della pagina, in questo caso rappresentato dall’indirizzo di loopback, quindi dal nome
della directory (wles) in cui è collocato il file e infine dal file stesso (esempio1.php). Il risultato è il
seguente:
9UdA 1 Fondamenti di programmazione in pHp
Verifichiamo le conoscenze
g Esercizi a scelta multipla
1 tenendo presente come avviene il dialogo Http client server, collega il tipo di componente posto a
sinistra con il relativo software posto a destra:
a) HTTP Server ............... MySQL
b) Interprete PHP ............... FreFox
c) DBMS ............... Zend
d) Browser ............... Apache
............... IIS
............... Opera
2 Il linguaggio pHp è di tipo:
a) solo interpretato
b) solo compilato
c) solo interpretato sul client
d) solo compilato sul client
e) solo interpretato sul server
3 Asp rispetto a pHp è un linguaggio:
a) client side
b) più semplice per chi conosce già Visual Basic
c) solo per sistemi Microsoft
d proprietario
4 Una response Http contiene:
a) il codice PHP della request
b) il contenuto dei soli campi POST inviati dal form utente
c) il contenuto dei campi inviati dal form utente
d) il contenuto dei soli campi GET inviati dal form utente
5 Collega gli elementi dell’architettura three tier posti a sinistra con quelli logicamente correlati posti destra:
a) Front End ............... PHP
b) Back End ............... HTML
c) Middleware ............... MySQL
............... JavaScript
............... Access
............... CSS
6 Qual è la document root di default per XAmpp?
a) c:\programmi\apache\httpdoc
b) c:\xampp\htdocs
c) c:\programmi\htdocs
d) c:\programmi\easyphp\docs
10Introduzione all’ambiente pHp Lezione 1 7 Indica quali sono i tag corretti che consentono di includere codice pHp: a) b) c) d) e) ... 8 metti in ordine logico le seguenti righe di codice per realizzare la stampa a video di tre nomi: paolo, riccardo e Zeev (grassetto, corsivo, sottolineato) : a) ............... echo “Zeev”; b) ............... echo “”; c) ............... ?> d) ............... echo “”; e) ............... echo “Riccardo”; f) ............... echo””; g) ............... echo “Paolo”; h) ............... echo “”; i) ...............
UdA 1 Fondamenti di programmazione in pHp
Verifichiamo le competenze
g Problemi
1 Scrivi una semplice pagina PHP che scriva “Benvenuto nel nostro sito” e veriwcane il funzionamento salvandola
con il nome prova.php.
2 Scrivi una seconda pagina e salvala col nome index.html. Veriwca le differenze rispetto al caso precedente.
3 Veriwca che il client riceva solo il codice HTML di questa pagina e non il codice PHP.
4 Installa easyphp sul tuo pc scaricandolo da Internet, se non ci riesci leggi attentamente la prima lezione di
laboratorio.
5 installa Xampp sul tuo pc scaricandolo da internet, se non ci riesci leggi attentamente la prima lezione di
laboratorio.
6 Veriwca quale è l’ultima versione di easyphp.
7 Crea una sotto cartella della document root di easyphp.
8 Scrivi una pagina php che stampi a video il tuo nome ripetuto 10 volte separato da una linea verde.
9 Scrivi una pagina php che scriva 10 nomi a scelta ogni volta di colore diverso.
12Puoi anche leggere