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 HOEPLI
paolo 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 milano
Copyright © 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 iii
Indice 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 iV
Indice 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 V
presentazione 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 svolgere
presentazione 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 Viii
FONDAMENTI 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 string
UdA 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). 2
Introduzione 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. 3
UdA 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 4
Introduzione 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). 5
UdA 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. ▶ 6
Introduzione 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. 8
Introduzione 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: 9
UdA 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 10
Introduzione 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. 12
Puoi anche leggere