Io, Informatico Un Viaggio consapevole tra Informatica e Computer Capitolo 13 Linguaggi per il WEB

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "www.tesseract.it Io, Informatico Un Viaggio consapevole tra Informatica e Computer Capitolo 13 Linguaggi per il WEB"

Transcript

1 Io, Informatico Un Viaggio consapevole tra Informatica e Computer Capitolo 13 Linguaggi per il WEB Scripting lato client e lato server Carlo A. Mazzone Tutti i diritti sono riservati. Nessuna parte di questa pubblicazione può essere riprodotta, memorizzata in sistemi di archivio, o trasmessa in qualsiasi forma o mezzo, elettronico, meccanico, fotocopia, registrazione o altri senza la preventiva autorizzazione dell'autore. 1 - Io, Informatico Carlo A. Mazzone versione B

2 Capitolo 13 Linguaggi per il web Capitolo 13 Linguaggi per il web Eccoci giunti, con questo capitolo, ad affrontare uno degli aspetti più importanti delle moderne tecnologie collegate allo sviluppo del software: la creazioni di applicazioni per il web. Il termine applicazione è, ovviamente, sinonimo di software e di programma. Tuttavia, i programmi per il web nascono e vivono in un contesto completamente diverso rispetto alle classiche applicazioni sviluppate per funzionare su singoli PC. Queste ultime, spesso denominate applicazioni standalone 1, vengono eseguite su di un singolo PC e, di norma, da una singola persona alla volta. La questione di fondo è che i programmi lavorano su dei dati che normalmente devono essere gestiti da più operatori. Limitazioni sulla possibilità di far operare più utenti contemporaneamente sugli stessi dati sono inaccettabili per molte tipologie di servizi: pensate, solo a titolo di esempio, ad un programma per la gestione dei clienti di una grossa azienda piuttosto che ad un programma per la gestione delle prenotazioni di treni o di voli. E' intuitivo comprendere come un modello di applicazione standalone sia assolutamente poco praticabile. Una ipotetica segretaria alle prese con un' applicazione standalone Esiste, infatti, l'assoluta necessità di condivisione dei dati dati e che questi vengano trattati con coerenza. Se un'operatrice ha assegnato uno specifico posto in un vagone ferroviario ad uno specifico viaggiatore tale posto deve essere non più disponibile per un ulteriore eventuale viaggiatore. E' quindi ovvio che le operatrici alle prenotazioni debbano condividere lo stesso archivio. Siamo informatici e ci viene quindi naturale schematizzare e formalizzare il nostro mondo. In questo contesto, seppur semplice, riusciamo ad isolare due livelli funzionali differenti: un primo livello costituito dal programma vero e proprio ed un secondo livello costituito dall'archivio di dati. programma archivio dati I due principali livelli funzionali di un'applicazione informatica 1 Letteralmente standalone sta ad indicare un'applicazione autonoma ed in alcuni casi, in senso più stretto, un'applicazione che non necessità di installazione. 2 - Io, Informatico Carlo A. Mazzone versione B

3 Capitolo 13 Linguaggi per il web In gergo tecnico tali livelli prendono il nome di tier (dall'inglese livello ;) Analizzando più in dettaglio le funzionalità del primo livello (quello dell'applicazione) possiamo individuare una ulteriore suddivisione in due ulteriori livelli: un primo tier legato all'interfaccia dell'applicazione (voci di menu, bottoni, caselle di testo, ) ed un secondo livello relativo alla logica di funzionamento dell'applicazione stessa. In definitiva possiamo schematizzare l'applicazione come organizzata in una struttura Three-tier appunto formata da tre livelli: Presentation tier: è il livello dell'interfaccia dell'applicazione Business Logic Tier (o anche detto semplicemente Logic Tier oppure Application Tier) : include la logica ed il relativo codice di funzionamento dell'applicazione Data Tier: è il livello relativo ai dati ed alla loro gestione sul disco 3 - Io, Informatico Carlo A. Mazzone versione B

4 Capitolo 13 Linguaggi per il web Schema di una applicazione three-tier Questo tipo di organizzazione delle applicazioni consente una maggiore flessibilità. La prima considerazione è che nulla vieta di realizzare applicazioni modulari in cui una parte (Presentation e Business logic) sono distribuite su diverse specifiche macchine mentre la parte relative all'archivio viene collocata su di un'altra macchina. Ciò rende possibile, evidentemente, condividere in una unica posizione l'archivio stesso. 4 - Io, Informatico Carlo A. Mazzone versione B

5 Capitolo 13 Linguaggi per il web Condivisione di dati da differenti postazioni Le applicazioni possono essere costruite utilizzando svariati linguaggi (C++, Visual Basic, Delphi,...) ed accedere attraverso la rete locale alla macchina che contiene l'archivio dei dati. Il tutto risulta abbastanza semplice finché ci limitiamo, appunto, all'ambito di una LAN. Ma cosa succede nel momento in cui voglio far accedere al DBMS utenti esterni alla LAN? E' in questo contesto che linguaggi ed ambienti di sviluppo tradizionali mostrano tutti i loro limiti. La risposta alle necessità appena presentate è presente, in maniera intuitiva, nel titolo stesso del capitolo: linguaggi per il web. E' dunque il web a fornire l'ambiente ideale per soddisfare tali esigenze. L'HTML rappresenta l'interfaccia ideale che va a posizionarsi sul primo livello di presentazione della nostra struttura 3-tier mentre il terzo livello, quello del DB, rimane sostanzialmente invariato e senza particolari nuovi elementi da scoprire. Il problema lo troviamo nel secondo ed intermedio livello: come facciamo ad implementare la business logic dell'applicazione dato che l'html non è un linguaggio di programmazione ma solo di presentazione di dati? La soluzione, data inizialmente (siamo nei primi anni 90) da forzature nell'uso dei linguaggi tradizionali (C, Visual Basic, ecc.) ha trovato una concretizzazione in una nuova classe di linguaggi studiati appositamente per il web. Solo per citarne alcuni: ASP, PHP, Java. 5 - Io, Informatico Carlo A. Mazzone versione B

6 Programmazione lato client Programmazione lato client Per programmazione lato client si intende l'insieme del codice che viene eseguito direttamente dal browser senza richiedere funzionalità ulteriori al server web. Quando si fa richiesta di una pagina web, questa viene scaricata dal browser che provvede ad interpretarla. Se all'interno della pagina è contenuto semplice codice HTML il tutto è abbastanza banale e, ovviamente, statico. Per implementare un determinato comportamento dinamico abbiamo bisogno di ricorrere ad un vero e proprio linguaggio di programmazione. 6 - Io, Informatico Carlo A. Mazzone versione B

7 Programmazione lato client JavaScript JavaScript può essere incluso direttamente nelle nostre pagine HTML, oppure, può essere richiamato utilizzando un file di testo esterno. Per far capire al browser che deve gestire con un pezzo di codice particolare (e quindi non del semplice HTML) è necessario utilizzare l'apposito tag <SCRIPT>. Vediamo subito un semplice esempio il cui scopo è quello di visualizzare un messaggio di testo, l'ormai mitico Salve, mondo : <SCRIPT language="javascript"> <--// alert("salve, mondo"); //--> </SCRIPT > Per evitare problemi ai browser che non dovessero riuscire ad eseguire JavaScript si utilizzano i simboli di commento <--// //--> Se lo script viene utilizzato all'interno di una pagina HTML, esso può essere inserito sia nella sezione body che nella sezione head : <html> <head> <title>salve mondo con JavaScript</title> </head> <body> <SCRIPT language="javascript"> <!--// alert("salve, mondo"); //--> </SCRIPT> </body> </html> In alternativa sarebbe stato possibile includere il codice: alert("salve, mondo"); (senza quindi i tag di apertura e chiusura SCRIPT) in un file di testo con estensione.js e richiamare il file dall'interno dell' HTML con la seguente sintassi: <SCRIPT src="nomefile.js"> In ogni caso, ciò che si ottiene è l'esecuzione dell'istruzione alert che visualizza un box di messaggio con il classico messaggio di saluto. 7 - Io, Informatico Carlo A. Mazzone versione B

8 Programmazione lato client Uno degli aspetti fondamentali di JavaScript è la possibilità di gestire tutta una serie di eventi che hanno a che fare con l'utilizzo di una pagina web (il clic su di un bottone così come la digitazione di un tasto sulla tastiera). Tali eventi sono ovviamente utilizzati per scatenare una serie di istruzioni da eseguire nel momento in cui si verificano. La cosa da notare è che in generale questi eventi non vengono definiti in un tag <script> ma direttamente nei tag HTML; ad esempio: <A href="uscita.html" onclick="alert('arrivederci a presto')">esci</a> Come potete osservare, nel tag <A>, utilizzato per creare un link ad una pagina, ho inserito la parola chiave onclick. Tale parola chiave rappresenta il metodo associato all'azione di clic sull'elemento stesso (il nome del metodo è sufficientemente autoesplicativo). Ciò comporta il fatto che, una volta cliccato sul link, verrà eseguito il codice scritto immediatamente dopo il nome stesso (nello specifico l'istruzione alert ). Piuttosto che inserire le istruzioni JavaScript direttamente nell'html è sicuramente più sensato relegare le istruzioni stesse all'interno di specifiche funzioni. Lo stesso comportamento descritto prima è gestibile come segue: <html> <head> <title>salve mondo con JavaScript</title> <SCRIPT language="javascript"> <!--// function saluto() alert("arrivederci a presto"); //--> </SCRIPT> </head> <body> <A href="uscita.html" onclick=saluto();>esci</a> </body> </html> Il seguente esempio è un po' più complesso: <html> <head> <title>salve mondo con JavaScript</title> <SCRIPT language="javascript"> <!--// function verificanome() alert("sono qui"); if (test.nome.value == "") alert("devi inserire un nome"); return false; else alert("nome OK"); return true; //--> </SCRIPT> 8 - Io, Informatico Carlo A. Mazzone versione B

9 Programmazione lato client </head> <body> <form name="test" method="get" action="invia.php" onsubmit="return verificanome()"> Nome: <input type="text" name="nome"> <input type="submit" value="invia"> </form> </body> </html> 9 - Io, Informatico Carlo A. Mazzone versione B

10 Programmazione lato server Programmazione lato server Come più volte già ribadito, il linguaggio HTML non possiede le caratteristiche tipiche dei linguaggi di programmazione come, ad esempio, la capacità di eseguire una determinata serie di istruzioni in base ad una data condizione o come il ripetere, per un certo numero di volte, un dato blocco di istruzioni. Per programmazione lato server si intende la possibilità di creare pagine web in maniera dinamica attraverso un linguaggio che generi al volo le pagine stesse o parti di esse sul server web. Risiedendo sul server tali pagine dinamiche hanno la possibilità di interagire con elementi complessi collocati sul server come ad esempio un database dal quale attingere dati in base a specifiche richieste. Un server web non è altro che un programma che gira (è in esecuzione) su di una data macchina. Faccio notare, incidentalmente, come tale macchina debba avere caratteristiche hardware di un certo rilievo: una buona quantità di RAM, uno o più processori di una certa potenza, dischi capienti e veloci, ecc. Il tutto è ampiamente giustificato dal fatto che la macchina in questione deve rispondere alle richieste di molteplici utenti che effettuano accessi alle pagine messe a disposizione dalla macchina. Come più volte menzionato tale ruolo prende il nome di server in contrapposizione al ruolo di client svolto dalle macchine che richiedo il servizio di visualizzazione pagine web. Nel contesto specifico il programma che gira sul server prende il nome di servizio nel contesto di macchine Windows e di demone nel caso di macchine Unix-Linux. Si tratti di servizio o di demone, tali nomi vengono dati per distinguere queste applicazioni dai classici programmi che vengono avviati dall'utente in caso di necessità. Mi spiego: Word, Excel, Nero e tutti gli altri programmi che possono venirvi in mente vengono lanciati nel momento del bisogno da parte dell'utente; un server web, al contrario, deve essere sempre pronto e disponibile ad erogare pagine web nel momento in cui un client ne faccia richiesta. E' quindi indispensabile che questi programmi vengano eseguiti in automatico al boot (fase di accensione) del server e che restino ovviamente sempre in funzione. In maniera del tutto naturale ho parlato dei due contesti fondamentali in cui ci troviamo a muoverci: hardware e software. Dico subito che il primo esula dal mio obiettivo Io, Informatico Carlo A. Mazzone versione B

11 PHP PHP è un acronimo per "PHP: Hypertext Preprocessor". Si tratta di linguaggio di scripting creato specificatamente per lo sviluppo di pagine web dinamiche. Esso è utilizzabile sia su piattaforma Windows che Unix Linux in maniera completamente gratuita. Ovviamente per la sua esecuzione è necessario uno specifico supporto che deve essere fornito dal web server. L'ambiente ideale in cui far funzionare le pagine PHP è sicuramente rappresentato dal web server Apache. Tuttavia, non sempre l'installazione di Apache risulta essere un'operazione banale. Ma c'è di più: spesso, oltre al semplice supporto dell'interprete del PHP è necessario fornire supporto per l'accesso ad un database che, in combinazione con Apache, si traduce quasi sempre con la presenza del software di gestione di database MySQL. Come già detto nel capitolo relativo alla gestione dei database una soluzione semplice ed efficace per Apache, PHP e MySQL può sicuramente essere realizzata attraverso l'installazione del pacchetto software XAMPP. Il sito ufficiale di XAMPP è disponibile all'indirizzo: dal quale è possibile effettuare il download della versione a cui si è interessati e sul quale trovare tutto il materiale informativo e di supporto necessario. Per l'amministrazione di XAMPP è disponibile un' apposito pannello di controllo. Il pannello di controllo di XAMPP La cartella principale a cui riferirsi per inserire i propri file è \xampplite\htdocs (oppure \xampp\ htdocs nel caso della versione non lite). Supponendo di creare un file denominato test.html questo potrà essere visualizzato richiamando la seguente URL: Io, Informatico Carlo A. Mazzone versione B

12 La mia prima pagina in PHP Vediamo come di consueto come salutare il mondo in php: <html> <head> <title>salve mondo da PHP</title> </head> <body> //prima pagina in PHP echo "salve, mondo"; </body> </html> Dall'esempio risulta chiaro che si tratta di una normale pagina di codice HTML con inframmezzate delle istruzioni particolari racchiuse tra i tag <? php e Tali tag servono a delimitare il codice php e a far quindi capire al server che deve trattare quei codici in maniera particolare. Per far si che il server interpreti quelle istruzioni non come del semplice testo ma come appunto istruzioni php è necessario che la pagina venga salvata con un'appropriata estensione; si solito, come ci aspetteremmo,.php. Tale impostazione riguarda la configurazione del server; si può fare riferimento al file di configurazione php.ini all'interno del quale è possibile definire tutta una serie di comportamenti. Ad esempio, è possibile specificare dei tag identificati del linguaggio alternativi ai classici:... semplificandoli in: <?... Una nota sui commenti del PHP Non mi stancherò mai di ripetere l'estrema importanza di usare i commenti all'interno del proprio codice. Qualche minuto in più speso per inserire qualche commento sulle funzionalità di un certo pezzo di codice potrebbe essere decisivo per salvarvi dal linciaggio a opera di chi dovrà mettere le mani sul vostro lavoro in futuro dovendo questi impazzire a capire che diavolo avevate intenzione di fare in un dato punto del vostro lavoro. Un primo commento classico, preso dal C++, è quello relativo al doppio slash '//' che si sviluppa su di una singola riga: //questo è un commento su di una singola riga La seconda possibilità prevede l'utilizzo dei caratteri /* per iniziare il commento e */ per terminarlo. Ad esempio: /* questo è un commento che può estendersi su più righe */ Come dovrebbe risultare chiaro dallo stesso esempio, tale commento è utile nel caso si vogliano utilizzare più righe Io, Informatico Carlo A. Mazzone versione B

13 Infine esiste la possibilità di utilizzare il carattere '#' all'inizio della riga di commento: #anche questo è un commento su di una singola riga Anche questa tipologia consente il commento di una singola riga 13 - Io, Informatico Carlo A. Mazzone versione B

14 Le variabili in PHP In un qualsiasi linguaggio di programmazione, dopo la stampa del classico Salve, Mondo, il primo elemento con il quale si viene a contatto, quasi inevitabilmente, è dato dal concetto di variabile. Una variabile è un contenitore predisposto per la gestione di un certo tipo di dato: un numero intero, un numero con la virgola, un carattere, una stringa di caratteri, ecc. In PHP una variabile non deve essere preventivamente dichiarata, come succede in altri linguaggi come ad esempio in C, ma è sufficiente inizializzarla ad un dato valore per renderla disponibile all'uso all'interno del codice. Una variabile PHP deve iniziare con il simbolo del dollaro $ come ad esempio: $pippo = 113; In cui si è inizializzata variabile di nome pippo con il valore numerico 113. Sono ora necessarie alcune note di carattere generale sull'uso delle variabili in PHP. Innanzitutto, il nome della variabile deve iniziare con una lettera (a-z oppure A-Z). In alternativa, il nome può iniziare con il simbolo underscore _ ( trattino basso). Tale lettera o underscore può essere seguita da un qualsiasi carattere, numero o ulteriore trattino basso. I nomi delle variabili sono case sensitive ovvero c'è differenza tra lettere minuscole e maiuscole e quindi, ad esempio, le variabili $var e $VAR rappresentano due variabili differenti. $var = 'Carlo'; $VAR = 'Mazzone'; echo "$var $VAR"; // Stampa "Carlo Mazzone" In base a queste prime considerazioni, dovrebbe nasce spontanea una domanda: se le variabili non vengono dichiarate, come si stabilisce il tipo della variabile? La risposta, abbastanza semplice, è che la variabile, in generale, assume (o, per meglio dire, desume) il proprio tipo dal valore che gli viene assegnato. $a = TRUE; // valore booleano $b = 'Carlo'; // stringa $c = Mazzone ; // stringa $d = 66; // valore intero E' possibile determinare il tipo assegnato ad una variabile utilizzando la funzione gettype. Ad esempio, il successivo frammento di codice: $pluto = 66; echo gettype($pluto); 14 - Io, Informatico Carlo A. Mazzone versione B

15 stamperà a video integer. Infatti, il valore '66' assegnato alla variabile pluto viene considerato come numero intero. I tipi di variabile Il PHP rende disponibili otto tipi di variabili "primitive", ovvero predefinite. Quattro tipi semplici: boolean (boleano) integer (inero) float - double (numeri con la virgola) string (stringhe) Due tipi composti: array (vettori) object (oggetti) Ed infine due tipi speciali: resource NULL Relativamente ai tipi float e double c'è da dire che essi rappresentano lo stesso tipo di oggetti (numeri con la virgola) e che il double viene ormai considerato obsoleto e mantenuto solo per ragioni storiche. Le costanti Le costanti sono dei valori che non cambiano (e non possono essere cambiati ;) durante l'esecuzione. Per definire una costante si utilizza la funzione define() specificando il nome della costante ed il relativo valore come vi mostro di seguito: define("costante", "Salve, mondo."); echo COSTANTE; // stampa "Salve, mondo." Il nome di una costante, che per convenzione utilizza caratteri tutti in maiuscolo, non deve essere preceduta dal carattere $ come per le variabili. Inoltre, così come i nomi di variabili è casesensitive. Da notare, ancora, come le costanti possano contenere solo dati di tipo semplice (boolean, integer, float e string). Le stringhe Una stringa è una concatenazione di caratteri. Il lettore attento avrà notato come sia possibile definire una stringa utilizzando sia il singolo che il doppio apice. $a = 'Carlo'; // stringa $b = Mazzone ; // stringa 15 - Io, Informatico Carlo A. Mazzone versione B

16 Il modo più semplice per definire una stringa consiste nell'utilizzare l'apice singolo. Nel caso in cui la stringa contenga già di suo il singolo apice questo, per evitare un troncamento della stringa stessa deve essere preceduto dal carattere speciale \ (backslash). $test = 'L\'inverno è alle porte'; Se si necessita di concatenare due o più stringhe che utilizzano i singoli apici è possibile utilizzare l'operatore di concatenazione. (punto): $test1 = 'L\'inverno è alle porte '; $test2 = 'Non è il caso di andare al mare a fare un bagno'; echo $test1. $test2 ; Una stringa può essere utilizzata anche utilizzando i doppi apici. In questo secondo caso non sarà necessario utilizzare il simbolo backslash per evitare il troncamento. Inoltre, in fase di stampa sarà possibile evitare la concatenazione con il simbolo punto inserendo direttamente le variabili all'interno dei doppi apici: queste verranno espanse in automatico: $test1 = "L'inverno è alle porte"; $test2 = "Non è il caso di andare al mare a fare un bagno"; echo "$test1 $test2"; Nel caso in cui si utilizzino i doppi apici, PHP può interpretare all'interno della stringa differenti caratteri speciali. Questi vanno sotto il nome di sequenze di escape. La più classica è sicuramente \n che viene utilizzata per forzare un ritorno a capo: <html> <head> <title>test</title> </head> <body> <H1>Test</H1> $test1 = "Questa è una riga"; $test2 = "Questa è una seconda riga"; echo "$test1 \n $test2"; </body> </html> Attenzione: la sequenza \n genera un ritorno a capo nel codice sorgente e ciò normalmente non si traduce in un ritorno a capo nella pagina visualizzata nel browser. Infatti, il precedente codice sorgente interpretato dal browser darà come risultato ciò che segue: <html> <head> <title>test</title> </head> <body> <H1>Test</H1> Questa è una riga Questa è una seconda riga </body> </html> Il risultato a video sarà ovviamente dato da una unica riga di testo Io, Informatico Carlo A. Mazzone versione B

17 Nel caso in cui avessimo voluto produrre due righe separate avremmo dovuto inserire il tag <br> come vi mostro di seguito: $test1 = "Questa è una riga"; $test2 = "Questa è una seconda riga"; echo "$test1 <br> $test2"; 17 - Io, Informatico Carlo A. Mazzone versione B

18 Il costrutto selezione Una delle attività fondamentali che qualsiasi programma deve svolgere consiste nella scelta tra una sequenza di istruzioni piuttosto che un'altra in base al verificarsi di una data condizione. Il costrutto in questione, appunto noto come costrutto selezione, viene implementato PHP con la seguente sintassi: if ($x > $y) echo "x e' maggiore di y"; else echo "x NON e' maggiore di y"; if - elseif if ($x > $y) echo "x e' maggiore di y"; elseif ($x == $y) echo "x e' uguale a y"; else echo "x e' minore di y"; 18 - Io, Informatico Carlo A. Mazzone versione B

19 I costrutti di iterazione Il termine iterazione è sinonimo di ripetizione; in informatica ci si riferisce, ovviamente, ad una o più istruzioni che in certi contesti devono essere ripetute per un certo numero di volte. Tale numero di ripetizioni può essere noto e ben definito a priori oppure, in altri casi, c'è la necessità di ripetere un gruppo di istruzioni finché non si verifica una data situazione. Sempre riferendomi al contesto informatico faccio notare come il costrutto di iterazione prenda il nome generico di ciclo e che il realizzare cicli venga definito in slang 1 ciclare. Il costrutto for La sintassi generale del costrutto for è la seguente: for (espr1; espr2; espr3) istruzioni; Per prima cosa viene valutata l'espressione espr1 all'interno del for. Tale valutazione avviene una sola volta all'inizio della prima iterazione del ciclo. Successivamente, all'inizio di ogni nuova iterazione, viene valutata la seconda espressione espr2. Se essa risulta essere vera (soddisfatta) vengono eseguite le istruzioni all'interno del blocco di parentesi graffe. In caso contrario, se essa risulta essere falsa, l'esecuzione del ciclo si interrompe passando all'esecuzione delle istruzioni successive al blocco for. Alla fine di ogni iterazione viene eseguite l'espressione espr3. Esempio: for ($i = 1; $i <= 10; $i++) echo "<br>". $i ; Il precedente frammento di codice stamperà i numeri da 1 a 10. Da notare l'uso del tag <br> con relativa concatenazione tramite il simbolo. (punto) che forzerà i numeri ad essere stampati ognuno su di una riga differente. Infatti, espr1 ($i=1) verrà eseguita all'inizio del ciclo impostando la variabile $i al valore 1 (uno). Tale variabile assume in questi contesti il nome di contatore (ed il motivo mi sembra abbastanza ovvio). Ad ogni iterazione, verrà valutata espr2 ($i <= 10), Finchè questa risulterà vera il ciclo continuerà il suo lavoro. La terza espressione all'interno del for (espr3), come detto, verrà eseguita alla fine di ogni singolo ciclo. Nel nostro esempio, $i++, causerà l'incremento di una unità della variabile $i (il nostro contatore). L'esecuzione del ciclo, quindi, proseguirà fin quando $i non assumerà il valore 11 (undici) rendendo falso il risultato dell'espressione $i <= 10. A volte potrebbe essere necessario uscire dal ciclo for prima della normale conclusione di tutte le iterazioni. Ad esempio, si potrebbe voler uscire in base ad una particolare condizione da testarsi all'interno delle singole iterazioni. Per forzare tale uscita si può utilizzare l'istruzione break;. 1 Lo slang è un modo di parlare proprio di un certo contesto culturale o sociale. Un sinonimo di slang è gergo Io, Informatico Carlo A. Mazzone versione B

20 Il ciclo while Per certi aspetti il ciclo while può essere considerato ancora più semplice del for. La sua sintassi è la seguente: while (espr) istruzioni; Il blocco istruzioni verrà eseguito finché sarà valida (valore vero) l'espressione espr argomento del while. Vi presento di seguito lo stesso problema appena risolto con il for. $i = 1; while ($i <= 10) echo "<br>". $i; $i++; E' ovvio osservare come nel caso del while l'impostazione iniziale del contatore ed il relativo incremento debbano essere comunque gestiti. Il ciclo do-while Il ciclo do-while, la cui sintassi è la seguente: do istruzioni; while (espr); è estremamente simile al costrutto while. L'unica differenza consiste nel fatto che il blocco di istruzioni verrà sempre eseguito almeno una volta. Infatti, il controllo per l'uscita è posto alla fine del costrutto. $i = 1; do echo "<br>". $i; $i++; while ($i <= 10); Da notare come per entrambi i costrutti while e do-while sia possibile utilizzzare l'istruzione break nel caso si volesse uscire prematuramente dal ciclo Io, Informatico Carlo A. Mazzone versione B

21 I vettori del PHP I vettori, detti comunemente anche array, rappresentano variabili che possono contenere contemporaneamente differenti valori; ogni valore viene collocato in una specifica posizione univocamente identificabile. Array numerici (sequenziali) Il classico tipo di array numerici prevede che i singoli valori vengano individuati e gestiti attraverso un indice (appunto numerico) che parte da zero. Il modo forse più semplice per dichiarare ed inizializzare un array è quello di utilizzare l'apposita istruzione array. Un semplice esempio sarà chiarificatore: $utente = array ("Ciccio", "Pasticcio", 2008, "Developer"); echo "<br>". $utente[0]; echo "<br>". $utente[1]; echo "<br>". $utente[2]; echo "<br>". $utente[3]; Abbiamo dichiarato un array $utente ed abbiamo assegnato ad esso quattro valori utilizzando l'istruzione array. Il PHP interpreta il tipo di tali valori automaticamente. Successivamente, abbiamo stampato i valori delle singole celle con una serie di istruzioni echo. Le singole posizioni vengono identificate dall'indice racchiuso tra parentesi quadre dopo il nome del vettore. Ovviamente è possibile stampare il contenuto delle varie celle dell'array utilizzando un ciclo: $utente = array ("Ciccio", "Pasticcio", 2008, "Developer"); for($i=0; $i<=3; $i++) echo "<br>". $utente[$i]; Array associativi A volte può risultare scomodo gestire gli array attraverso il riferimento numerico dell'indice. Per ovviare a tale problema, il PHP mette a disposizione del programmatore un diverso tipo di array in cui gli elementi sono gestiti attraverso un riferimento descrittivo e non semplicemente numerico. Tali array vengono definiti associativi. $utente2 = array ("nome" => "Ciccio", "cognome" => "Pasticcio", "assunzione" => 1966, "mansione" => "Developer"); echo "<br>nome: ". $utente2["nome"]; echo "<br>cognome: ". $utente2["cognome"]; echo "<br>mansione: ". $utente2["mansione"]; Nell'esempio precedente ho creato ed inizializzato un array associativo di nome utente2. Da notare l'uso dell'operatore => (realizzato mediante i simboli di uguale e di maggiore ) Io, Informatico Carlo A. Mazzone versione B

22 Le principali funzioni per gli array Gli array giocano un ruolo estremamente importante all'interno dello sviluppo del codice ed il PHP viene incontro alle esigenze degli sviluppatori fornendo diverse funzioni predefinite. count: contiamo gli elementi di un array La prima funzione che vi presento è di estrema semplicità; essa consente di contare quanti elementi esistono all'interno di un array.... $file = array ("nome" => "pippo.exe", "dimensione" => "1024", "data_creazione" => "19/12/2008"); echo "<br>elementi array: ". count($file);... key e current: tracciamo le posizioni degli elementi dell'array Il PHP mantiene costantemente un puntatore ad una specifica posizione dell'array. Tale posizione corrente è individuabile tramite una apposita funzione current() che restituisce il valore contenuto nella posizione stessa. Inoltre, tramite la funzione key() è possibile ottenere il nome della chiave della posizione corrente:... $file = array ("nome" => "pippo.exe", "dimensione" => "1024", "data_creazione" => "19/12/2008"); echo "<br>chiave posizione corrente: ". key($file); echo "<br>valore posizione corrente: ". current($file);... Ovviamente, nel caso di un array di tipo sequenziale la funzione key() restituirà l'indice numerico della posizione stessa. next e prev: spostiamo il puntatore E' possibile spostare il puntatore della posizione corrente, in avanti ed indietro, utilizzando le apposite funzioni next() e prev().... $ingredienti = array('farina', 'zucchero', 'uova', 'latte'); // per default il puntatore si riferisce al primo elemeto dell'array echo current($ingredienti). "<br>\n"; // "prima posizione" // saltiamo due posizioni next($ingredienti); next($ingredienti); echo current($ingredienti). "<br>\n"; // "siamo alla terza posizione"... // reset del puntatore reset($ingredienti); echo current($ingredienti). "<br>\n"; // "prima posizione" 22 - Io, Informatico Carlo A. Mazzone versione B

23 Dall'esempio si evince anche l'esistenza e l'utilizzo della funzione reset() che riporta il puntatore alla prima posizione dell'array. E' disponibile, inoltre, la funzione end() che sposta il puntatore all'ultima posizione dell'array. Each() e list(): visitiamo l'array La funzione each() legge ed estrae la chiave ed il valore dalla posizione corrente dell'array inserendoli in un array costituito da due posizioni. Ovviamente, nel caso di array numerici, la chiave corrisponde all'indice dell'elemento:... $torta = array('farina', 'zucchero', 'uova', 'latte'); $ingrediente = each($torta); echo "Indice: ". $ingrediente[0]. "<br>\n"; echo "Valore: ". $ingrediente[1]. "<br>\n";... Una cosa importante da notare è che la funzione each(), una volta invocata, causa lo spostamento in automatico del puntatore alla successiva posizione dell'array. Ciò consente di realizzare un pezzo di codice come il successivo che con due chiamate alla funzione each scorre i primi due elementi dell'array torta.... $torta = array('farina', 'zucchero', 'uova', 'latte'); $ingrediente = each($torta); echo "". $ingrediente[0]. "<br>\n"; echo "". $ingrediente[1]. "<br>\n"; $ingrediente = each($torta); echo "". $ingrediente[0]. "<br>\n"; echo "". $ingrediente[1]. "<br>\n"; Io, Informatico Carlo A. Mazzone versione B

24 La funzione list() consente di assegnare il contenuto di un array ad una serie di variabili singole:... $torta = array('farina', 'zucchero', 'uova', 'latte'); list($ingrediente1, $ingrediente2, $ingrediente3, $ingrediente4) = $torta; echo "<br>". $ingrediente1; echo "<br>". $ingrediente2; echo "<br>". $ingrediente3; echo "<br>". $ingrediente4;... Come si vede dall'esempio, la funzione list() usa come argomenti una lista di variabili alle quali associa i singoli valori, letti in sequenza, dell'array posto dopo l'operatore di assegnazione. A questo punto può risultare interessante mostrare come sia possibili scandire un intero array facendo lavorare insieme le funzioni list e each:... $torta = array('farina', 'zucchero', 'uova', 'latte'); while (list($chiave, $valore) = each($torta)) echo "Chiave: ". $chiave. " Valore: ". $valore. "<br>";... L'output sarà il seguente: Chiave: 0 Valore: farina Chiave: 1 Valore: zucchero Chiave: 2 Valore: uova Chiave: 3 Valore: latte Gli array predefiniti del PHP Il linguaggio PHP mette a disposizione del programmatore una serie di array associativi predefiniti. Ciò significa che tali array non devono essere creati dallo sviluppatore ma sono direttamente utilizzabili all'interno del nostro codice. Tra questi array il primo che vi presento è chiamato $_SERVER. Le varie posizioni di tale array contengono informazioni davvero preziose; ad esempio, la poszione con indice REMOTE_ADDR contiene l'indirizzo IP del client che sta visualizzando la pagina mentre la posizione con indice HTTP_USER_AGENT contiene le informazioni relative al browser utilizzato per visualizzare la stessa pagina in questione. Un esempio d'uso dovrebbe chiarirvi le idee: <html> <head><title>my IP Address and more...</title></head> <body> <center><h1>my IP Address and more...</h1></center> $myip = $_SERVER["REMOTE_ADDR"]; $browser = $_SERVER["HTTP_USER_AGENT"]; echo "Il tuo attuale IP e': ". $myip. "<br><br>"; echo "Il tuo browser e': ". $browser. "<br>"; 24 - Io, Informatico Carlo A. Mazzone versione B

25 </body> </html> Di seguito vi presento una lista con alcuni altri importanti valori utilizzabili nei nostri script: 'PHP_SELF' Il nome del file contenente lo script in esecuzione relativo alla radice del webserver (document root). Ad esempio, $_SERVER['PHP_SELF'] in uno script all'indirizzo darà come valore /test/prova.php. D'altra parte la costante FILE contiene il percorso completo ed il nome del file php. 'SERVER_ADDR' L'indirizzo IP del server dove è in esecuzione lo script corrente. 'SERVER_NAME' Il nome del server dove è in esecuzione lo script corrente. 'SERVER_SOFTWARE' La stringa identificativa del server. 'REQUEST_METHOD' Il metodo utilizzato per richiamare la pagina; ad esempio: 'GET', 'HEAD', 'POST', 'PUT'. 'QUERY_STRING' La query string, se presente attraverso la quale la pagina è stata richiesta. 'DOCUMENT_ROOT' La radice del web server in cui lo script è in esecuzione. Il precedente elenco è solo un piccolo estratto dei valori messi a disposizione del programmatore PHP e non vuole ovviamente essere esaustivo Io, Informatico Carlo A. Mazzone versione B

26 Leggiamo i valori del form Supponiamo di avere un form web per raccogliere i dati di un generico utente: nome, cognome, età, ecc. Predisponiamo allora il codice HTML opportuno. Tramite i tag <form> e </form> definiamo il nostro modulo. Utilizziamo il metodo post e definiamo come action la pagina php leggidati.php. <html> <head> <title>inserimento dati utente</title> </head> <body> <H1>Inserimento dati utente</h1> <form method="post" action="leggidati.php"> Nome: <input type="text" name="nome"><br> Cognome: <input type="text" name="cognome"><br> <input type="submit" value="invia"> <input type="reset" value="cancella"> </form> </body> </html> Il contenuto del file leggidati.php potrebbe essere il seguente: <html> <head> <title>dati</title> </head> <body> <H1>dati utente</h1> Nome: echo $_POST['nome']; <br> Cognome: echo $_POST['cognome']; <br> </body> </html> La pagina in questione si limita a stampare a video il valore delle variabili catturare tramite le caselle di testo (textbox) nome e cognome. Per realizzare tale cattura si utilizza un array associativo predefinito (cioè reso disponibile direttamente dal linguaggio) di nome $_POST Io, Informatico Carlo A. Mazzone versione B

27 PHP ed i database E' intuitivo pensare che di norma non è sufficiente acquisire i dati passati dal form. In generale, infatti, i dati inviati dal client richiedono una qualche interazione con un database. Di seguito cercherò di illustrarvi le operazioni fondamentali da implementare per una corretta gestione di un database mysql. La prima operazione da realizzarsi è quella consistente nella connessione al server. A tale scopo usiamo la specifica funzione mysql_connect che prende in input i parametri relativi al server, all'utente ed alla relativa password. $connessione = mysql_connect("localhost", "utente_mysql", "password_mysql"); if (!$connessione) die ('Non riesco a connettermi: '. mysql_error()); print ("Connesso con successo"); mysql_close($connessione); Ok, il primo passo è compiuto e dovrebbe anche essere abbastanza semplice da interpretare. La funzione mysql_connect in caso di successo restituisce un link alla risorsa rappresentata dal DB mentre in caso contrario restituisce il valore booleano FALSE. La funzione die (un alias per la funzione exit) stampa un messaggio a video ed interrompe lo script corrente. Da notare come venga concatenato il valore restituito dalla funzione mysql_error che stampa il testo del messaggio di errore restituito dall'ultima operazione effettuata verso MySQL. Miglioriamo lo script generalizzando i parametri di connessione attraverso l'uso di specifiche variabili. Inoltre, come ulteriore operazione utilizziamo la funzione mysql_select_db per selezionare il database sul quale vogliamo effettuare le nostre operazioni. $db_host = 'localhost'; $db_user = 'root'; $db_password = ''; $db_name = 'testdb'; $connessione = mysql_connect($db_host, $db_user, $db_password); if (!$connessione) die ('Errore nella connessione al server: '. mysql_error()); $db_selected = mysql_select_db($db_name, $connessione); if (!$db_selected) die ("Errore nella selezione del database: ". mysql_error()); print ("Connesso con successo"); mysql_close($connessione); 27 - Io, Informatico Carlo A. Mazzone versione B

28 INSERT Una delle operazioni fondamentali che è necessario realizzare su di un DB è quella relativa all'inserimento dei dati. Per ottenere tale risultato incapsuliamo una query SQL di tipo Insert come argomento della funzione PHP mysql_query. La funzione mysql_query accetta in input una query SQL; se tale query è di tipo INSERT, UPDATE e simili (ma non di tipo SELECT), restituisce TRUE in caso di successo e FALSE in caso di errore. Tale comportamento è del tutto naturale. Infatti, le istruzioni insert ed update si limitano ad inserire dei dati all'interno del DB e tali operazioni possono andare a buon fine oppure non riuscire nel loro intento. $db_host = 'localhost'; $db_user = 'root'; $db_password = ''; $db_name = 'testdb'; $connessione = mysql_connect($db_host, $db_user, $db_password); if (!$connessione) die ('Errore nella connessione al server: '. mysql_error()); print ("Connesso con successo"); $db_selected = mysql_select_db($db_name, $connessione); if (!$db_selected) die ("Errore nella selezione del database: ". mysql_error()); $sql = "INSERT INTO tab_prova (nome,cognome) VALUES ('Carlo','Mazzone')"; $result = mysql_query($sql); if (!$result) die("errore nella query $query: ". mysql_error()); print ("dati inseriti con successo"); mysql_close($connessione); Nel pezzo di codice appena presentato abbiamo inserito in maniera hard coded due valori costanti. Ovviamente, in generale, tali valori saranno prelevati da un form HTML. La soluzione più semplice e pulita può consistere nell'associare i valori passati dal form a specifiche variabili. E' buona norma filtrare tali valori attraverso la funzione trim che ripulisce i valori passati dal form da eventuali spazi in eccesso:... $nome = trim($_post['nome']); $cognome = trim($_post['cognome']); $sql = "INSERT INTO tab_prova (nome,cognome) VALUES ('$nome','$cognome')";... Nota: è possibile utilizzare la funzione mysql_affected_rows() per determinare righe sono state coinvolte da un'istruzione di tipo DELETE, INSERT oppure UPDATE Io, Informatico Carlo A. Mazzone versione B

29 SELECT L'interrogazione di un DB per estrarre informazioni tramite istruzioni di tipo SELECT è senz'altro una delle operazioni più comuni. Per inviare tale richieste al nostro DB utilizziamo, come nel caso precedente, la funzione mysql_query. La funzione mysql_query, nel caso in cui venga utilizzato con una SELECT, restituisce FALSE nel caso in cui dovesse verificarsi un errore (lo stesso comportamento che riscontriamo per le istruzioni insert ed update) mentre restituisce l'elenco di record che soddisfano la select in caso contrario. Tali record possono essere letti dalla funzione mysql_fetch_row. Tale funzione restituisce un array numerico che corrisponde alle righe prelevate dalla select muovendo il puntatore interno ai dati avanti di una posizione ad ogni chiamata. $db_host = 'localhost'; $db_user = 'root'; $db_password = ''; $db_name = 'testdb'; $connessione = mysql_connect($db_host, $db_user, $db_password); if (!$connessione) die ('Errore nella connessione al server: '. mysql_error()); print ("Connesso con successo"); $db_selected = mysql_select_db($db_name, $connessione); if (!$db_selected) die ("Errore nella selezione del database: ". mysql_error()); $result = mysql_query("select nome, cognome FROM tab_prova "); while ($row = mysql_fetch_row($result)) echo 'Nome: ', $row[0], ' Cognome: ', $row[1], "<br>"; mysql_close($connessione); E' possibile utilizzare in alternativa la funzione mysql_fetch_array. Questa può restituire sia un array di tipo numerico se chiamata come segue: mysql_fetch_array($result, MYSQL_NUM) un array di tipo associativo: mysql_fetch_array($result, MYSQL_ASSOC) oppure entrambi se chiamata come segue: mysql_fetch_array($result, MYSQL_BOTH) Nota: è possibile usare la funzione mysql_num_rows() per determinare il numero di righe restituite dalla SELECT. Ad esempio: 29 - Io, Informatico Carlo A. Mazzone versione B

30 $link = mysql_connect("localhost", mysql_user", "mysql_password"); mysql_select_db("database", $link); $result = mysql_query("select * FROM table1", $link); $num_rows= mysql_num_rows($result); echo "$num_rows Rows\n"; 30 - Io, Informatico Carlo A. Mazzone versione B

31 ASP ASP, acronimo di Active Server Pages, più che un linguaggio di programmazione è un ambiente che permette di eseguire script lato server. I due linguaggi principali che possono essere utilizzati in tale contesto sono Jscript e VBScript. Particolarmente interessante è proprio VBScript, trattandosi di un linguaggio derivato da Visual Basic e quindi molto appetibile per l'enorme schiera di programmatori che utilizzano tale linguaggio. Lo scotto da pagare nell'utilizzo di ASP è che esso è utilizzabile quasi esclusivamente su piattaforma Microsoft Windows. Un file ASP è un file di testo semplice con estensione.asp. Vediamo un primo semplice e classico esempio. Salutiamo il mondo con ASP <%@Language=VBScript%> <html> <head> <title>salve mondo con ASP</title> </head> <body> <% Dim strmessaggio strmessaggio = "salve, mondo" %> <p>il messaggio è: <%=strmessaggio%> </p> </body> </html> La prima riga serve per indicare il linguaggio di scripting predefinito per la pagina. Tale opzione è valida solo per i linguaggi che supportano il modello ad oggetti (come ad esempio JScript e VBScript): <%@Language=ScriptingLanguage%> Il linguaggio VBScript VBScript come detto è un sottoinsieme di Visual Basic dal quale eredità quasi tutte le caratteristiche principali a cominciare dalla gestione delle variabili. Tipi di variabili VBScript non prevede la dichiarazione esplicita del tipo di variabile. Ogni variabile dichiarata risulta essere del tipo Variant. Variant è una specie di scatola magica in cui il tipo di oggetto contenuto si trasforma in automatico a seconda del contesto in cui la scatola viene utilizzata. Un esempio: <% Dim Test 'creiamo una variabile Variant di nome Test Test = "5" ' stringa Test = Test + 5 'intero con valore 10 %> 31 - Io, Informatico Carlo A. Mazzone versione B

32 Il valore è: <%=Test%> Come detto un Variant può contenere differenti tipi di dati. Sebbene tutto il lavoro di conversione venga svolto internamente è importante capire quali sono le tipologie variabili in cui vengono trasformati i dati: Boolean (vero-falso) Byte (0-255) Integer (intero) Long Single (virgola mobile in singola precisione) Double (virgola mobile in doppia precisione) Currency Date Time String Empty Null Object Error Poiché la conversione del tipo di variabile avviene in maniera automatica risulta a volte necessario convertire in maniera esplicita una data variabile nel tipo richiesto dal contesto: Per far ciò si utilizzano specifiche funzioni: (Cbool, Cdate, Cint,...) Oggetto Request: otteniamo le informazioni dall'utente Salve, <%= Request.QueryString("name") %>... Salve, <%= Request.Form("name") %> <HTML> <HEAD>...</HEAD> <BODY> Salve, <%= Request.Form("nomeCognome") %><br> La tua professione è: <%= Request.Form("professione") %><br> Sesso: <%= Request.Form("sesso") %><br> </BODY> </HTML> Uso dei cookies con l'oggetto Request Un cookie, letteralmente biscotto, è una sorta di gettone che può essere inviato dal server verso il client o viceversa dal client verso il server. Quando è il server ad inviare il cookie verso il client questo provvede a memorizzarlo per un uso futuro da parte dell'applicazione web presente sul server che lo ha inviato. I cookie hanno come scopo principale quello di registrare informazioni relative all'utente ed alla sua navigazione. La seguente sintassi restituisce il valore del cookie di nome interessi: <%= Request.Cookies("interessi") %> 32 - Io, Informatico Carlo A. Mazzone versione B

33 Oggetto Response: inviamo informazioni all'utente L'oggetto Response, utilizzato per inviare informazioni all'utente, ha varie forme di utilizzo: Inviamo testo Il metodo write è sicuramente il più semplice ed utilizzato: Response.Write variabile Dove variabile è un qualsiasi tipo di dato supportato dal linguaggio di scripting. Il metodo write è molto utile nel caso si voglia inviare del testo all'utente dall'interno di una procedura. Ad esempio: <% If mattina Then Response.Write "<H3>Buongiorno</H3>" Else Response.Write "<H3>Buonasera</H3>" End If %> Vi ricordo che in ogni caso il pezzo di codice precedente potrebbe essere scritto come: <H3> <% If mattina Then %> Buongiorno <% Else %> Buonasera <% End If %> </H3> Redirezione verso un'altra URL Piuttosto che inviare testo direttamente all'utente è possibile redirigire il browser dell'utente verso una nuova pagina asp con il metodo Response.Redirect URL Ad esempio: <% If Not Session("Been_to_Home_Page") Then Response.Redirect "homepage.asp" End If %> Uso dei cookies con l'oggetto Response Il seguente pezzo di codice imposta il valore di un cookie: <% Response.Cookies("interessi")="informatica" %> Se il cookie non esiste il sistema provvede a crearne uno nuovo Io, Informatico Carlo A. Mazzone versione B

34 Accesso a Database da ASP Per poter accedere ai contenuti di un archivio il sistema più semplice è sicuramente quello di utilizzare una serie di moduli precostruiti. Vediamo quindi un elenco dei moduli necessari: 1. utilizziamo HTML per quanto riguarda la formattazione delle pagine e dei loro contenuti 2. per rendere dinamiche le pagine ci affidiamo ad un linguaggio di Scripting: ASP 3. per l'accesso ai contenuti degli archivi utilizziamo un motore di accesso ai dati: ADO 4. per l'archiviazione fisica dei dati utilizziamo un apposito database: Microsoft Access I primi due elementi li conosciamo già; analogamente per quanto riguarda il quarto. Vediamo allora cos'è e come funziona ADO. Connessione al database La prima operazione da compiere consiste nello stabilire una connessione con il database. A tale scopo ADO mette a disposizione l'oggetto Connection Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open strconn strconn è una stringa che indica le carateristiche della connessione. È possibile utilizzare varie e diverse modalità indicando diversi provider. La più semplice consiste nello specificare direttamente il nome di una voce ODBC. In alternativa è possibile indicare manualmente (vedi esempio) il nome path completo del database. Esecuzione comandi SQL Un modo estremamente semplice per eseguire un comando del linguaggio SQL su di un database è quello di usare l'istruzione Execute Per un comando che non restituisce record possiamo usare la seguente forma: connection.execute CommandText, RecordsAffected, Options Al contrario per un comando che deve restituire un insieme record possiamo usare la seguente forma: Set recordset = connection.execute (CommandText, RecordsAffected, Options) adcmdtext = 1 'L'opzione adcmdtext valuta CommandText come la definzione di un comando o uan chiamata a stored procedure Esempio di lettura dati <% Option Explicit 'Stabiliamo la connessione al DB 'Indichiamo i parametri per la connessione Dim strconn strconn="driver=microsoft Access Driver (*.mdb); DBQ=c:\IoInformatico.mdb;" 34 - Io, Informatico Carlo A. Mazzone versione B

35 Dim Conn Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open strconn 'Stringa con istruzioni SQL Dim strsql strsql = "SELECT * " strsql = strsql & " FROM tab_user " Dim RS Set RS=Conn.Execute(strSQL,, 1) response.write ("Lista utenti") Response.write ("<ul>") Do While Not RS.EOF response.write ("<li> Identificativo: " & RS("userID") & "</li>") response.write ("<li> Nome: " & RS("firstName") & "</li>") response.write ("<li> Cognome: " & RS("lastName") & "</li>") response.write ("<br>") RS.MoveNext Loop Response.write ("</ul>") RS.Close() Set RS = Nothing Set Conn = Nothing %> Esempio inserimento di dati /*pagina html per inserimento dati */ <html> <head> <title>inserisci dati</title> </head> <body> <FORM METHOD="post" ACTION="insert.asp"> <BR>Nome: <INPUT TYPE="TEXT" NAME="FirstName" VALUE="" > <BR>Cognome: <INPUT TYPE="TEXT" NAME="LastName" VALUE=""> <BR><INPUT TYPE="submit" VALUE="Invia" > <BR><INPUT TYPE="reset" VALUE="Annulla" > </FORM> </body> </html> Attenzione: La possibilità di effettuare modifiche su di un archivio è data anche dai permessi sul file system. Se non correttamente impostati il sistema potrebbe segnalare un errore del genere: '''''''''''''''''''''''''''''''''''''' Operation must use an updateable query ''''''''''''''''''''''''''''''''''''''' La ragione più comune è data dal fatto che l'utente anonymous (Internet Guest account IUSR_NOMEMACCHINA) non ha i permessi di scrittura sul file.mdb Da notare che usando un databse Microsoft Access con ADO, è anche necessario concedere alll'account in oggetto i permessi di scrittura (Write permissions) sulla cartella che contiene il file mdb. Ciò a causa de fatto che il motore Jet crea un file.ldb per gestire il locking del database. <% Option Explicit Dim strnome Dim strcognome strnome = Request.Form("FirstName") strcognome = Request.Form("LastName") 35 - Io, Informatico Carlo A. Mazzone versione B

PHP. A. Lorenzi, R. Giupponi, D. Iovino LINGUAGGI WEB. LATO SERVER E MOBILE COMPUTING Atlas. Copyright Istituto Italiano Edizioni Atlas

PHP. A. Lorenzi, R. Giupponi, D. Iovino LINGUAGGI WEB. LATO SERVER E MOBILE COMPUTING Atlas. Copyright Istituto Italiano Edizioni Atlas PHP A. Lorenzi, R. Giupponi, D. Iovino LINGUAGGI WEB. LATO SERVER E MOBILE COMPUTING Atlas Copyright Istituto Italiano Edizioni Atlas Programmazione lato server PHP è un linguaggio che estende le funzionalità

Dettagli

Lezione II: Web server e ambiente di lavoro

Lezione II: Web server e ambiente di lavoro Lezione II: Web server e ambiente di lavoro In questa lezione, in laboratorio, si mostrerà quali sono i passi necessari per creare ed eseguire una pagina ASP. Brevemente, verrà fatto anche vedere, come

Dettagli

BASI DI DATI http://www.diee.unica.it/~giacinto/bd. Cos è il PHP. Cos è il PHP. Esercitazione su PHP & MySQL

BASI DI DATI http://www.diee.unica.it/~giacinto/bd. Cos è il PHP. Cos è il PHP. Esercitazione su PHP & MySQL Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Contatti BASI DI DATI http://www.diee.unica.it/~giacinto/bd Esercitazione su PHP & MySQL! Roberto Tronci! e-mail: roberto.tronci@diee.unica.it!

Dettagli

19. LA PROGRAMMAZIONE LATO SERVER

19. LA PROGRAMMAZIONE LATO SERVER 19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici

Dettagli

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment Obiettivi d esame PHP Developer Fundamentals on MySQL Environment 1.0 Ambiente di sviluppo 1.1 Web server e database MySQL Comprendere la definizione dei processi che si occupano di fornire i servizi web

Dettagli

ACTIVE SERVICE PAGES E DATABASE: tecnologia ADO

ACTIVE SERVICE PAGES E DATABASE: tecnologia ADO ACTIVE SERVICE PAGES E DATABASE: tecnologia ADO CARICARE DATI IN UNA TABELLA DA UN FORM Per utilizzare il Database nel Web, è necessario essere collegati al Db stesso, per far ciò, si utilizzano gli ADO

Dettagli

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Data Base. Master Bio Info Reti e Basi di Dati Lezione 6 Data Base 1 Sommario I concetti fondamentali. Database Relazionale.. Query e SQL MySql, Creazione di un db in MySQL con PHPmyAdmin Creazione database e delle Tabelle Query Inserimento Ricerca Modifica

Dettagli

MySQL Database Management System

MySQL Database Management System MySQL Database Management System II parte Progetto gestione booking prenotazioni on-line 1. Progettazione e creazione struttura database che chiameremo booking. 2. Progettazione e creazione di un form

Dettagli

MySQL Database Management System

MySQL Database Management System MySQL Database Management System http://www.mysql.com/ DATABASE RELAZIONALI Un database è una collezione strutturata di informazioni. I database sono delle strutture nelle quali è possibile memorizzare

Dettagli

Esercizi di JavaScript

Esercizi di JavaScript Esercizi di JavaScript JavaScript JavaScript é un linguaggio di programmazione interpretato e leggero, creato dalla Netscape. E' presente a patire da Netscape 2 in tutti i browser ed é dunque il linguaggio

Dettagli

Corso di PHP. Prerequisiti. 1 - Introduzione

Corso di PHP. Prerequisiti. 1 - Introduzione Corso di PHP 1 - Introduzione 1 Prerequisiti Conoscenza HTML Principi di programmazione web Saper progettare un algoritmo Saper usare un sistema operativo Compilazione, link, esecuzione di programmi Conoscere

Dettagli

Corso di PHP. Prerequisiti. 6.1 PHP e il web 1. Conoscenza HTML Tecnica della programmazione Principi di programmazione web

Corso di PHP. Prerequisiti. 6.1 PHP e il web 1. Conoscenza HTML Tecnica della programmazione Principi di programmazione web Corso di PHP 6.1 PHP e il web 1 1 Prerequisiti Conoscenza HTML Tecnica della programmazione Principi di programmazione web 2 1 Introduzione In questa Unità illustriamo alcuni strumenti di programmazione

Dettagli

1) Il client(browser utilizzato) invia al server i dati inseriti dall utente. Server

1) Il client(browser utilizzato) invia al server i dati inseriti dall utente. Server 2) Il Server richiama l'interprete PHP il quale esegue i comandi contenuti nel file.php specificato nell'attributo action del tag form creando un file HTML sulla base dei dati inviati dall utente 1) Il

Dettagli

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione Automatizzare i compiti ripetitivi I file batch Anno accademico 2000-01 1 Spesso capita di dover eseguire ripetutatmente una data sequenza di comandi Introdurli uno a uno da tastiera è un processo lento

Dettagli

PHP e MySQL. Guida scaricata da www.webstyling.it

PHP e MySQL. Guida scaricata da www.webstyling.it Home -> Manuali & Tutorials -> Guida PHP PHP e MySQL E' possibile realizzare delle applicazioni in php appoggiandosi ad un database, quale ad esempio MySQL. Con le novità introdotte ai tempi di MySQL 4.1

Dettagli

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS CONTENUTI: CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS Creazione database vuoto Creazione tabella Inserimento dati A) Creazione di un database vuoto Avviamo il programma Microsoft Access. Dal menu

Dettagli

FPf per Windows 3.1. Guida all uso

FPf per Windows 3.1. Guida all uso FPf per Windows 3.1 Guida all uso 3 Configurazione di una rete locale Versione 1.0 del 18/05/2004 Guida 03 ver 02.doc Pagina 1 Scenario di riferimento In figura è mostrata una possibile soluzione di rete

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo Creazione di moduli Creazione di moduli Che cos'è un modulo? Un elenco di domande accompagnato da aree in cui è possibile scrivere le risposte, selezionare opzioni. Il modulo di un sito Web viene utilizzato

Dettagli

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress Copyright Andrea Giavara wppratico.com Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress 1. Il pannello amministrativo 2. I dati importanti 3. Creare il database - Cpanel - Plesk

Dettagli

Quesiti 6 e 7) - 9 - Creiamo il file query4.php su una piattaforma OPEN SOURCE usando in linguaggio PHP ospitato su un webserver APACHE per interrogare un database MYSQL. Tale file verrà attivato cliccando

Dettagli

Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica.

Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica. Tecnologie informatiche ACCESSO REMOTO CON WINDOWS Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica. Un esempio di tale servizio

Dettagli

ACTIVE SERVICE PAGES E DATABASE: tecnologia ADO

ACTIVE SERVICE PAGES E DATABASE: tecnologia ADO ACTIVE SERVICE PAGES E DATABASE: tecnologia ADO LEGGERE E VISUALIZZARE I DATI DI UNA TABELLA IN UNA PAGINA WEB Per visualizzare i dati di una tabella in una pagina web, dobbiamo utilizzare l'oggetto ADODB.Recordset

Dettagli

Access. P a r t e p r i m a

Access. P a r t e p r i m a Access P a r t e p r i m a 1 Esempio di gestione di database con MS Access 2 Cosa è Access? Access e un DBMS che permette di progettare e utilizzare DB relazionali Un DB Access e basato sui concetti di

Dettagli

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Web PHP Tematiche Trattate

Dettagli

Manuale d uso Software di parcellazione per commercialisti Ver. 1.0.3 [05/01/2015]

Manuale d uso Software di parcellazione per commercialisti Ver. 1.0.3 [05/01/2015] Manuale d uso Software di parcellazione per commercialisti Ver. 1.0.3 [05/01/2015] Realizzato e distribuito da LeggeraSoft Sommario Premessa... 2 Fase di Login... 2 Menù principale... 2 Anagrafica clienti...

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Lavorare con MySQL Parte Seconda.

Lavorare con MySQL Parte Seconda. Lavorare con MySQL Parte Seconda. PHP, dalla versione 4.0, usufruisce difunzioni native per colloquiare con MySQL, senza appoggiarsi ad alcuna libreria o modulo esterno. In questa lezione verranno esaminate

Dettagli

PHP e MySQL. Scripting server-side per accesso a DB MySQL

PHP e MySQL. Scripting server-side per accesso a DB MySQL PHP e MySQL Scripting server-side per accesso a DB MySQL Connessione a un DB MySQL Prima di accedere ai dati è necessario creare una connessione con il DB In PHP si utilizza la funzione mysql_connect,

Dettagli

PORTALE CLIENTI Manuale utente

PORTALE CLIENTI Manuale utente PORTALE CLIENTI Manuale utente Sommario 1. Accesso al portale 2. Home Page e login 3. Area riservata 4. Pagina dettaglio procedura 5. Pagina dettaglio programma 6. Installazione dei programmi Sistema operativo

Dettagli

Manuale per la configurazione di AziendaSoft in rete

Manuale per la configurazione di AziendaSoft in rete Manuale per la configurazione di AziendaSoft in rete Data del manuale: 7/5/2013 Aggiornamento del manuale: 2.0 del 10/2/2014 Immagini tratte da Windows 7 Versione di AziendaSoft 7 Sommario 1. Premessa...

Dettagli

LEGGERE E VISUALIZZARE I DATI DI UNA TABELLA IN UNA PAGINA WEB

LEGGERE E VISUALIZZARE I DATI DI UNA TABELLA IN UNA PAGINA WEB ADO ACTIVE SERVICE PAGES E DATABASE: tecnologia LEGGERE E VISUALIZZARE I DATI DI UNA TABELLA IN UNA PAGINA WEB Per visualizzare i dati di una tabella in una pagina web, dobbiamo utilizzare l'oggetto ADODB.Recordset

Dettagli

GUIDA UTENTE PRIMA NOTA SEMPLICE

GUIDA UTENTE PRIMA NOTA SEMPLICE GUIDA UTENTE PRIMA NOTA SEMPLICE (Vers. 2.0.0) Installazione... 2 Prima esecuzione... 5 Login... 6 Funzionalità... 7 Prima Nota... 8 Registrazione nuovo movimento... 10 Associazione di file all operazione...

Dettagli

Impostare il browser per navigare in sicurezza Opzioni di protezione

Impostare il browser per navigare in sicurezza Opzioni di protezione Impostare il browser per navigare in sicurezza Opzioni di protezione Data la crescente necessità di sicurezza e tutela dei propri dati durante la navigazione in rete, anche gli stessi browser si sono aggiornati,

Dettagli

Esercitazione 4 JDBC

Esercitazione 4 JDBC JDBC Obiettivi dell esercitazione Familiarizzare con l'organizzazione dell'ambiente di lavoro per la realizzazione di applicazioni Java Utilizzare i costrutti di base della libreria JDBC per 1. la gestione

Dettagli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

Dettagli

Manuale Utente Albo Pretorio GA

Manuale Utente Albo Pretorio GA Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate

Dettagli

Database e reti. Piero Gallo Pasquale Sirsi

Database e reti. Piero Gallo Pasquale Sirsi Database e reti Piero Gallo Pasquale Sirsi Approcci per l interfacciamento Il nostro obiettivo è, ora, quello di individuare i possibili approcci per integrare una base di dati gestita da un in un ambiente

Dettagli

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

LA GESTIONE DELLE VISITE CLIENTI VIA WEB LA GESTIONE DELLE VISITE CLIENTI VIA WEB L applicazione realizzata ha lo scopo di consentire agli agenti l inserimento via web dei dati relativi alle visite effettuate alla clientela. I requisiti informatici

Dettagli

MANUALE UTENTE Fiscali Free

MANUALE UTENTE Fiscali Free MANUALE UTENTE Fiscali Free Le informazioni contenute in questa pubblicazione sono soggette a modifiche da parte della ComputerNetRimini. Il software descritto in questa pubblicazione viene rilasciato

Dettagli

Corso di Informatica Modulo T3 B2 - Database in rete

Corso di Informatica Modulo T3 B2 - Database in rete Corso di Informatica Modulo T3 B2 - Database in rete 1 Prerequisiti Programmazione web Applicazione web Modello OSI Architettura client/server Conoscenze generali sui database Tecnologia ADO in Visual

Dettagli

Direzione Centrale per le Politiche dell Immigrazione e dell Asilo

Direzione Centrale per le Politiche dell Immigrazione e dell Asilo Direzione Centrale per le Politiche dell Immigrazione e dell Asilo Sistema inoltro telematico domande di nulla osta, ricongiungimento e conversioni Manuale utente Versione 2 Data creazione 02/11/2007 12.14.00

Dettagli

Corso basi di dati Installazione e gestione di PWS

Corso basi di dati Installazione e gestione di PWS Corso basi di dati Installazione e gestione di PWS Gianluca Di Tomassi Email: ditomass@dia.uniroma3.it Università di Roma Tre Cosa è PWS? Il Personal Web Server altro non è che una versione ridotta del

Dettagli

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 PAG. 2 DI 38 INDICE 1. PREMESSA 3 2. SCARICO DEL SOFTWARE 4 2.1 AMBIENTE WINDOWS 5 2.2 AMBIENTE MACINTOSH 6 2.3 AMBIENTE

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

Esercitazione 8. Basi di dati e web

Esercitazione 8. Basi di dati e web Esercitazione 8 Basi di dati e web Rev. 1 Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-1 Basi di dati e web Una modalità tipica di accesso alle basi di dati è tramite interfacce web Esiste una

Dettagli

<?php include './include/page.php';

<?php include './include/page.php'; Il modulo di inserimento Per creare il modulo di inserimento creeremo due file per semplicità: insert.php sarà il file contenente il form dove inserire i dati. Premendo infine il pulsante inserisci si

Dettagli

Installazione e caratteristiche generali 1

Installazione e caratteristiche generali 1 Installazione e caratteristiche generali 1 Introduzione SIGLA Ultimate e SIGLA Start Edition possono essere utilizzati solo se sono soddisfatti i seguenti prerequisiti: Microsoft.Net Framework 3.5 (consigliato

Dettagli

Visual basic base Lezione 01. L'ambiente di sviluppo

Visual basic base Lezione 01. L'ambiente di sviluppo L'ambiente di sviluppo L'ambiente di sviluppo Visual basic è un linguaggio di programmazione Microsoft. In questo corso prenderemo in considerazione, l'ultima versione. net di questo linguaggio. Microsoft

Dettagli

File, Modifica, Visualizza, Strumenti, Messaggio

File, Modifica, Visualizza, Strumenti, Messaggio Guida installare account in Outlook Express Introduzione Questa guida riguarda di sicuro uno dei programmi maggiormente usati oggi: il client di posta elettronica. Tutti, ormai, siamo abituati a ricevere

Dettagli

Sistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO

Sistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO Sistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO Login All apertura il programma controlla che sia stata effettuata la registrazione e in caso negativo viene visualizzato un messaggio.

Dettagli

Installazione & Configurazione Php e MySQL su Mac Os X. Php

Installazione & Configurazione Php e MySQL su Mac Os X. Php Installazione & Configurazione Php e MySQL su Mac Os X Php PHP è un linguaggio di scripting interpretato, con licenza Open Source, originariamente concepito per la realizzazione di pagine web dinamiche.

Dettagli

Xampp. Valeriano Maysonnave - A.A. 2014/2015 -

Xampp. Valeriano Maysonnave - A.A. 2014/2015 - Xampp Valeriano Maysonnave - A.A. 2014/2015-1 Introduzione...1 2 Installazione su Windows...1 3 Configurazione Apache...2 3.1 Accesso al file di configurazione httpd.conf...2 3.2 Il file httpd.conf...3

Dettagli

corso di Access MICROSOFT ACCESS Docente: Andrea Mereu Università degli studi di Cagliari 16 aprile 9 maggio 2012

corso di Access MICROSOFT ACCESS Docente: Andrea Mereu Università degli studi di Cagliari 16 aprile 9 maggio 2012 1 MICROSOFT ACCESS 1 Docente: Andrea Mereu Università degli studi di Cagliari 16 aprile 9 maggio 2012 Che cos'è Access? 2 Access è un'applicazione database (DBMS), cioè un programma che serve a gestire

Dettagli

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,

Dettagli

SOMMARIO... 3 INTRODUZIONE...

SOMMARIO... 3 INTRODUZIONE... Sommario SOMMARIO... 3 INTRODUZIONE... 4 INTRODUZIONE ALLE FUNZIONALITÀ DEL PROGRAMMA INTRAWEB... 4 STRUTTURA DEL MANUALE... 4 INSTALLAZIONE INRAWEB VER. 11.0.0.0... 5 1 GESTIONE INTRAWEB VER 11.0.0.0...

Dettagli

JAVASCRIPT. Tale file è associato alla pagina web mediante il tag <script> inserito nella sezione <head> con la seguente sintassi:

JAVASCRIPT. Tale file è associato alla pagina web mediante il tag <script> inserito nella sezione <head> con la seguente sintassi: JAVASCRIPT Introduzione Con l HTML siamo in grado di realizzare pagine web statiche. Con il linguaggio Javascript, invece, possiamo interagire modificando il contenuto della pagina. Il linguaggio javascript

Dettagli

PROGETTO PER LA TRASMISSIONE DOCUMENTI RELATIVI ALL APPROVAZIONE DELLE MANIFESTAZIONI IN FORMA DIGITALE

PROGETTO PER LA TRASMISSIONE DOCUMENTI RELATIVI ALL APPROVAZIONE DELLE MANIFESTAZIONI IN FORMA DIGITALE PROGETTO PER LA TRASMISSIONE DOCUMENTI RELATIVI ALL APPROVAZIONE DELLE MANIFESTAZIONI IN FORMA DIGITALE L approvazione di una manifestazione nazionale od internazionale comporta spesso la trasmissione

Dettagli

A. Lorenzi Pagine ASP

A. Lorenzi Pagine ASP Pagine ASP Web server software per la gestione di un computer host Internet oppure di un server di rete, che mette a disposizione dati o applicativi per gli utenti della rete Web server IIS (Internet Information

Dettagli

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013 Laboratorio Progettazione Web PHP e MySQL - Lezione 9 Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013 Architettura di una applicazione Web Browser Web HTTP Server Web API Dati Presentation

Dettagli

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti. SH.MedicalStudio Presentazione SH.MedicalStudio è un software per la gestione degli studi medici. Consente di gestire un archivio Pazienti, con tutti i documenti necessari ad avere un quadro clinico completo

Dettagli

Standard Nazionale di Comunicazione Mercato Gas

Standard Nazionale di Comunicazione Mercato Gas JULIA RETE s.u.r.l. - Società unipersonale a responsabilità limitata Soggetta a direzione e coordinamento del Comune di Giulianova Sede legale: 64021 Giulianova (TE) Corso Garibaldi, 119 Sede operativa:

Dettagli

Lezione III: Oggetti ASP e interazione tramite form HTML

Lezione III: Oggetti ASP e interazione tramite form HTML Lezione III: Oggetti ASP e interazione tramite form HTML La terza lezione, come le precedenti, ha avuto una durata di due ore, di cui una in aula e l altra in laboratorio, si è tenuta alla presenza della

Dettagli

UTILIZZO DEL SOFTWARE MONITOR

UTILIZZO DEL SOFTWARE MONITOR UTILIZZO DEL SOFTWARE MONITOR Il software Monitor è stato realizzato per agevolare la realizzazione dei sondaggi. Esso consente di 1. creare questionari a scelta multipla; 2. rispondere alle domande da

Dettagli

GateManager. 1 Indice. tecnico@gate-manager.it

GateManager. 1 Indice. tecnico@gate-manager.it 1 Indice 1 Indice... 1 2 Introduzione... 2 3 Cosa vi serve per cominciare... 2 4 La Console di amministrazione... 2 5 Avviare la Console di amministrazione... 3 6 Come connettersi alla Console... 3 7 Creare

Dettagli

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2011/2012

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2011/2012 Laboratorio Progettazione Web PHP e MySQL - Lezione 9 Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2011/2012 Architettura di una applicazione Web Browser Web HTTP Server Web PHP Dati View Control

Dettagli

Presentazione Data Base

Presentazione Data Base Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mysql) come supporto Open Source ad un piccolo progetto di Data Base relazionale, e tipicamente ad ogni applicazione non troppo

Dettagli

ARCHIVIA PLUS VERSIONE SQL SERVER

ARCHIVIA PLUS VERSIONE SQL SERVER Via Piemonte n. 6-6103 Marotta di Mondolfo PU tel. 021 960825 fax 021 9609 ARCHIVIA PLUS VERSIONE SQL SERVER Istruzioni per configurazione sql server e conversione degli archivi Versione n. 2011.09.29

Dettagli

ZFIDELITY - ZSE Software & Engineering Pag.1 / 11

ZFIDELITY - ZSE Software & Engineering Pag.1 / 11 ZFIDELITY - ZSE Software & Engineering Pag.1 / 11 Indice Presentazione ZFidelity... 3 Menù Principale... 4 La Gestione delle Card... 5 I tasti funzione... 5 La configurazione... 6 Lettore Con Connessione

Dettagli

Dott.ssa Adriana Pietramala

Dott.ssa Adriana Pietramala Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala a.pietramala@mat.unical.it Riferimenti Sito del corso: Manuale PHP http://www.php.net/download-docs.php Editor di

Dettagli

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca

Dettagli

Il Web Server e il protocollo HTTP

Il Web Server e il protocollo HTTP Corso PHP Parte 2 Il Web Server e il protocollo HTTP E un programma sempre attivo che ascolta su una porta le richieste HTTP. All arrivo di una richiesta la esegue e restituisce il risultato al browser,

Dettagli

Backup e Restore di un database PostgreSQL Sandro Fioravanti INFN-LNF

Backup e Restore di un database PostgreSQL Sandro Fioravanti INFN-LNF SPARC-CS-12/001 20 Gennaio 2012 Backup e Restore di un database PostgreSQL Sandro Fioravanti INFN-LNF Abstract Vengono descritte le procedure di backup e restore dei dati memorizzati in un database di

Dettagli

Guida all uso. Esso sarà riportato nell intestazione. Vediamo:

Guida all uso. Esso sarà riportato nell intestazione. Vediamo: faxm@il è un applicazione che permette agli utenti dei sistemi di telefonia IP di inviare, ricevere e gestire fax. Il tradizionale sistema di fax è ormai superato. Con faxm@il non riceviamo né spediamo

Dettagli

UTILIZZO DEI COOKIES (informativa conforme al Provvedimento del Garante Privacy del 8 Maggio 2014)

UTILIZZO DEI COOKIES (informativa conforme al Provvedimento del Garante Privacy del 8 Maggio 2014) UTILIZZO DEI COOKIES (informativa conforme al Provvedimento del Garante Privacy del 8 Maggio 2014) Star Link srl, Titolare del trattamento dei dati personali, informa che questo Sito internet fa uso di

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

Cookie e Webstorage. Vediamo ora i metodi dell oggetto localstorage. Per memorizzare un valore si utilizza il metodo setitem:

Cookie e Webstorage. Vediamo ora i metodi dell oggetto localstorage. Per memorizzare un valore si utilizza il metodo setitem: Cookie e Webstorage Un cookie (letteralmente biscotto) è un pacchetto di informazioni che viene salvato sul computer dell utente. In successive sessioni di collegamento a Internet (normalmente per un periodo

Dettagli

Apache 2, PHP5, MySQL 5

Apache 2, PHP5, MySQL 5 Installazione di Apache 2, PHP5, MySQL 5 Corso Interazione Uomo Macchina AA 2005/2006 Installazione e Versioni Considerazione le versioni più recenti dei vari software così da poterne sperimentare le caratteristiche

Dettagli

Inserimento dei dati

Inserimento dei dati Inserimento dei dati Ulisse Di Corpo Terminata la fase di progettazione della scheda è possibile iniziare ad inserire i dati. A tal fine si seleziona Inserimento/Modifica dal menù Schede. Il programma

Dettagli

Questo punto richiederebbe uno sviluppo molto articolato che però a mio avviso va al di là delle possibilità fornite al candidato dal tempo a disposizione. Mi limiterò quindi ad indicare dei criteri di

Dettagli

Applicazione ASP di esempio

Applicazione ASP di esempio Applicazione ASP di esempio Database in rete Prof. Claudio Maccherani Un server web è un programma che gira su un computer sempre collegato ad Internet e che mette a disposizione file, pagine e servizi.

Dettagli

Le query. Lezione 6 a cura di Maria Novella Mosciatti

Le query. Lezione 6 a cura di Maria Novella Mosciatti Lezione 6 a cura di Maria Novella Mosciatti Le query Le query sono oggetti del DB che consentono di visualizzare, modificare e analizzare i dati in modi diversi. Si possono utilizzare query come origine

Dettagli

ELENCO CLIENTI FORNITORI Patch1

ELENCO CLIENTI FORNITORI Patch1 ELENCO CLIENTI FORNITORI Patch1 Il pacchetto P15_200ElencoCF_Patch1.exe contiene una serie di aggiornamenti alla procedura di generazione del file contenente l. Download: 1) Assicurarsi di avere una versione

Dettagli

Approfondimenti. Il controllo di SQL Injection nelle pagine ASP e ASP.NET. U.A. 5 - Database in rete con le pagine ASP e ASP.

Approfondimenti. Il controllo di SQL Injection nelle pagine ASP e ASP.NET. U.A. 5 - Database in rete con le pagine ASP e ASP. U.A. 5 - Database in rete con le pagine ASP e ASP.NET 269 Il controllo di SQL Injection nelle pagine ASP e ASP.NET Approfondimenti Con il termine SQL Injection si intende l aggiunta di istruzioni SQL nell

Dettagli

Mac Application Manager 1.3 (SOLO PER TIGER)

Mac Application Manager 1.3 (SOLO PER TIGER) Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i

Dettagli

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. INFORMATICA Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. APPLICAZIONI WEB L architettura di riferimento è quella ampiamente diffusa ed

Dettagli

Dispensa di database Access

Dispensa di database Access Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di

Dettagli

Sistema di gestione Certificato MANUALE PER L'UTENTE

Sistema di gestione Certificato MANUALE PER L'UTENTE Sistema di gestione Certificato MANUALE PER L'UTENTE Pagina 1 di 16 Indice 1 Introduzione...3 2 Genera certificato...4 3 Sospendi certificato...10 4 Riattiva certificato...12 5 Revoca certificato...14

Dettagli

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4) Architettura del WWW World Wide Web Sintesi dei livelli di rete Livelli di trasporto e inferiori (Livelli 1-4) - Connessione fisica - Trasmissione dei pacchetti ( IP ) - Affidabilità della comunicazione

Dettagli

Progetto ittorario Anno scol. 2013-2014

Progetto ittorario Anno scol. 2013-2014 PROGETTO ittorario Scopo: Creazione di una pagina web che mostri l orario di un docente, della classe della materia o dell aula a discrezione dell utente. Sviluppatori: Progetto sviluppato dalla classe

Dettagli

Laboratorio Progettazione Web PHP e FORMs HTML. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014

Laboratorio Progettazione Web PHP e FORMs HTML. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014 Laboratorio Progettazione Web PHP e FORMs HTML Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014 Struttura Applicazioni Web Browser Web HTTP Server Web API Dati Presentation Application Storage

Dettagli

Esempio di esecuzione di una pagina JSP: Il client chiede la pagina: http:// sdfonline.unimc.it/info/modulo.jsp;

Esempio di esecuzione di una pagina JSP: Il client chiede la pagina: http:// sdfonline.unimc.it/info/modulo.jsp; JAVA SERVER PAGES Una pagina JSP (Java Server Pages), richiesta da un utente (client), viene eseguita dal server web nella propria memoria; generalmente il prodotto dell elaborazione è una pagina html

Dettagli

MDAC. Attualmente la versione disponibile di MDAC è la 2.8 ma faremo riferimento alla 2.6. ADO Active Data Objects ADO OLE DB ODBC

MDAC. Attualmente la versione disponibile di MDAC è la 2.8 ma faremo riferimento alla 2.6. ADO Active Data Objects ADO OLE DB ODBC MDAC MDAC è l acronimo di Microsoft Data Access Component e fa parte della tecnologia Microsoft denominata Universal Data Access (UDA). Mette a disposizione una serie di componenti per l accesso a svariate

Dettagli

Progettazione Web Applicazioni client-server

Progettazione Web Applicazioni client-server Progettazione Web Applicazioni client-server Sviluppo di un'applicazione Web integrando: HTML MySQL PHP Apache Applicativi utilizzabili: gestione database: JDER, MySQL Workbench, HeidiSQL (Win), DBeaver

Dettagli

[MANUALE VISUAL BASIC SCUOLA24ORE PROF.SSA PATRIZIA TARANTINO] 14 dicembre 2008

[MANUALE VISUAL BASIC SCUOLA24ORE PROF.SSA PATRIZIA TARANTINO] 14 dicembre 2008 Se devo memorizzare più valori che sono in qualche modo parenti dal punto di vista logico, posso usare il concetto di vettore di variabili (array). Ad esempio, se devo memorizzare le temperature di tutti

Dettagli

Capitolo 1 Installazione del programma

Capitolo 1 Installazione del programma Capitolo 1 Installazione del programma Requisiti Hardware e Software Per effettuare l installazione del software Linea Qualità ISO, il computer deve presentare una configurazione minima così composta:

Dettagli

Manuale d uso [Rev.1 del 07/08/2015] Manutenzione impianti termici Ver. 1.0.6 [05/01/2015]

Manuale d uso [Rev.1 del 07/08/2015] Manutenzione impianti termici Ver. 1.0.6 [05/01/2015] Manuale d uso [Rev.1 del 07/08/2015] Manutenzione impianti termici Ver. 1.0.6 [05/01/2015] Realizzato e distribuito da LeggeraSoft Sommario Introduzione... 2 Installare il programma... 2 Tasto licenza...

Dettagli

Richiesta pagina PHP (es: index.php)

Richiesta pagina PHP (es: index.php) PHP PHP = personal home page SERVER Richiesta pagina PHP (es: index.php) Server Web (Apache) in ascolto sulla porta 80, si accorge che la pagina richiesta è una pagina PHP in base all'estensione o con

Dettagli