Esercitazione 8. Basi di dati e web



Похожие документы
19. LA PROGRAMMAZIONE LATO SERVER

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

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

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

BASI DI DATI Cos è il PHP. Cos è il PHP. Esercitazione su PHP & MySQL

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

Il Web Server e il protocollo HTTP

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

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

Dott.ssa Adriana Pietramala

Database e reti. Piero Gallo Pasquale Sirsi

Lezione 9. Applicazioni tradizionali

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

Siti interattivi e dinamici. in poche pagine

Corso di PHP. Prerequisiti. 1 - Introduzione

sito web sito Internet

OSSIF WEB. Manuale query builder

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

Il software di gestione immobiliare più facile da usare. Modulo Web v5.2.

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

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

FPf per Windows 3.1. Guida all uso

Corso basi di dati Installazione e gestione di PWS

Progettazione Web Applicazioni client-server

Unità 2.1 Comandi sui database

MANUALE UTENTE Fiscali Free

Protocolli applicativi: FTP

Il web server Apache Lezione n. 3. Introduzione

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

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

GERARCHIE RICORSIVE - SQL SERVER 2008

GUIDA UTENTE PRIMA NOTA SEMPLICE

INSTALLAZIONE DI JOOMLA! Guida alla installazione di Joomla!

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

Indice Configurazione di PHP Test dell ambiente di sviluppo 28

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

Individuare Web Shell nocive con PHP Shell

SOSEBI PAPERMAP2 MODULO WEB MANUALE DELL UTENTE

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

Lezione 6: Form 27/04/2012

Costruzione di siti web. Il Content Management System Joomla

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Gestione Risorse Umane Web

Apache 2, PHP5, MySQL 5

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

Una metodologia di progettazione di applicazioni web centrate sui dati

Lezione II: Web server e ambiente di lavoro

PHP e MySQL. Guida scaricata da

POSTECERT POST CERTIFICATA GUIDA ALL USO DELLA WEBMAIL

Introduzione all elaborazione di database nel Web

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

Database Manager Guida utente DMAN-IT-01/09/10

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

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Sito web parrocchiale: STRUMENTI E PROGRAMMI

Programmazione Server Side e Database in rete

Esercitazione sulle libpq - libreria C per PostgreSQL

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

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Volumi di riferimento

Guida alla registrazione on-line di un DataLogger

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

Introduzione ai Sistemi di Gestione di Basi di Dati XML

Laboratorio di Sistemi Programmare in Php con NetBeans Php. Programmare in Php con Xampp e NetBeans IDE

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Dispensa di database Access

PRODUZIONE PAGELLE IN FORMATO PDF

Application Server per sviluppare applicazioni Java Enterprise

FASE 1: Definizione del tema, degli obiettivi e del target con il cliente... (da cui dipendono le scelte successive!)

Data Base in Internet

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

MANUALE PARCELLA FACILE PLUS INDICE

Come modificare la propria Home Page e gli elementi correlati

Client - Server. Client Web: il BROWSER

Corso di PHP. Prerequisiti. 1 - Introduzione

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti

Manuale utente Volta Control

Corso di Informatica Modulo T3 B1 Programmazione web

LUdeS Informatica 2 EXCEL. Seconda parte AA 2013/2014

Creare un sito Multilingua con Joomla 1.6

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

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

Presentazione Data Base

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Lezione III: Oggetti ASP e interazione tramite form HTML

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna

Nuovo server E-Shop: Guida alla installazione di Microsoft SQL Server

Simulazione seconda prova Esame di Stato Sito Web - Gestione di un centro agroalimentare all ingrosso (Parte seconda)

Il Web-Service SDMX dell ISTAT

Sistema Gestionale FIPRO. Dott. Enea Belloni Ing. Andrea Montagnani

Licenza per sito Manuale dell amministratore

Il Protocollo HTTP e la programmazione di estensioni Web

Intel One Boot Flash Update Utility Guida dell utente

Транскрипт:

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 molteplicità di tipologie applicative, ad esempio: Interfacce web per l interrogazione e l effettuazione di transazioni su basi di dati DBMS, o più in generale CMS (Content Management Systems) per la gestione di contenuti in portali web In tutte le tipologie applicative abbiamo architetture a tre livelli: Web server, con funzioni di front-end Application server Database server, con funzioni di back-end Il client è sempre un Internet browser Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-2

Pagine statiche e pagine dinamiche Il protocollo http prevede: Una richiesta da parte del client (browser), consistente nella specifica di un file, accompagnata da un eventuale passaggio di parametri, con modalità varie Una risposta da parte del web server (file html, immagine, ecc.) Il file restituito dal server può essere: Una pagina statica: tipicamente un file html (di contenuto prefissato) memorizzato nel server, in particolare quello specificato nella richiesta Una pagina dinamica : un file contenente codice html costruito run-time in base ai contenuti del file di richiesta, della base di dati, e in base al valore dei parametri Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-3

Scripting lato-server e lato-client Lo strato applicativo è costituito da codice eseguibile (script) e si sviluppa a due livelli Lato-server : Esecuzione di uno script lanciato dal web server in base alla richiesta del browser per costruire una pagina dinamica Lo script può lanciare a sua volta l esecuzione di altro codice applicativo e coinvolgere livelli di back-end dell architettura Tipici linguaggi di scripting lato-server sono PHP, Perl, ASP Lato-client: Esecuzione di uno script sul browser durante l interpretazione della pagina e sulla base dell interazione dell utente Tipico linguaggio di scripting lato-client è Javascript Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-4

PHP (Hypertext Preprocessor) È un linguaggio di scripting lato-server specificamente progettato per la costruzione di pagine html dinamiche È un free software rilasciato sotto una particolare licenza Il codice PHP è immerso (embedded) nel sorgente html ed interpretato da un apposito modulo, che è parte del web server Quando al web server viene richiesto un file.php, oppure incontra codice PHP in un file html, esso ne demanda l esecuzione ad un suo apposito modulo, il PHP runtime (interprete PHP) L interprete PHP agisce come un filtro: Accetta in ingresso testo e istruzioni PHP da un file Produce in uscita un file, tipicamente un file html Nel costruire l output, l interprete PHP interagisce con altri moduli applicativi, tipicamente il DBMS Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-5

Esecuzione degli script PHP Web server Script PHP Pagina dinamica Web browser PHP Comandi SQL Risultati (tabelle) RDBMS Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-6

Architetture lato server Un architettura lato server comprende: Un sistema operativo Un web server Un modulo di interpretazione PHP (parte del web server) Un DBMS A parte gli ambienti proprietari, le più diffuse piattaforme sono: LAMP: Linux Apache MySQL PHP WAMP: Windows Apache MySQL PHP A parte Windows, la piattaforma WAMP è tutta open source Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-7

Form in pagine html Le form sono moduli di richiesta inserite in pagine html Una form (letteralmente modulo) permette di raccogliere valori che vengono poi passati come parametri in una richiesta http Oltre a caselle per l input di testo, una form può contenere anche elementi speciali, denominati control, quali: menu, checkbox, pulsanti, ecc. Ci sono tre tipi di pulsanti: Pulsanti di submit: provocano la trasmissione (submit) della form ed il relativo passaggio dei parametri Pulsanti di reset: provocano il ripristino dei valori iniziali Pulsanti di push: usati per attivare il lancio di uno script latoclient Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-8

Passaggio dei parametri e azione Il passaggio dei parametri, consiste nella trasmissione del form data set, cioè dell insieme dei valori associati ai vari control Quando una form viene trasmessa il passaggio dei parametri può avvenire in due diversi modi Metodo GET: quando la richiesta è inviata, il form data set è inserito come parte della URL Metodo POST: il form data set è inviato, in forma opportunamente codificata insieme alla richiesta, ma i parametri non sono visibili nella URL Inoltre nella form viene specificata una azione, ovvero il nome di un file (es. un file php che deve essere mandato in esecuzione sul server) Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-9

Interrogazione da web della base di dati (A) È possibile interrogare una base di dati tramite un web server tramite una sequenza di passi: A. Compilazione e trasmissione della form 1. L utente tramite il browser richiede una URL cui corrisponde una pagina html contenete una form 2. La pagina è interpretata dal browser che sviluppa i vari controlli, menu, checkbox, pulsanti ecc. 3. L utente compila la form specificando, direttamente o indirettamente il form data set cioè i parametri che specificano l interrogazione 4. All atto del submit viene inoltrata una richiesta al web server del file specificato nella action (ad es. un file.php), con associato il form data set Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-10

Interrogazione da web della base di dati (B) B. Esecuzione lato-server 5. Il web server riconosce il file.php e ne demanda l interpretazione al modulo PHP 6. Il modulo PHP si connette al DBMS e gli passa una serie di comandi SQL (l interrogazione) 7. Il DBMS valuta l interrogazione e restituisce al modulo PHP il risultato (una tabella) tramite il meccanismo dei cursori 8. Il modulo PHP usa il risultato per costruire una pagina html con il risultato dell interrogazione e la restituisce al web server 9. Il web server restituisce la pagina html al browser 10. Il browser interpreta la pagina e visualizza il risultato dell interrogazione Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-11

Sviluppo dell ambiente di esercitazione Per preparare l ambiente di esercitazione occorre installare: MySQL Apache Il modulo PHP (in realtà parte di Apache) Si assume che tutto ciò sia stato installato la piattaforma di sviluppo web/database, XAMPP Dal pannello di controllo lanciare sia MySQL cheapache Apache una volta partito si pone in ascolto sulla porta 80 Negli esempi che seguono si suppone che XAMP sia stato installato nella directory C:\xampp In questo caso Apache assume come sua directory di root C:\xampp\htdocs Ricopiare in questa directory la cartella db scaricata dal sito Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-12

Esempi Come esempi prepariamo una serie di form per l interrogazione della base di dati La Famiglia Persone (Nome, Sesso, Anno, Città) Discendenza (Genitore, Figlio) Stato (Città, Inizio, Fine, Stato) Matrimoni (Marito, Moglie, Anno) Le interrogazioni come struttura sono predefinite, ma possono essere parametriche, nel qual caso i parametri vengono raccolti tramite le form Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-13

Sviluppo dell ambiente di esercitazione (2) Per editare i file PHP conviene, ma non è indispensabile, usare un editor guidato dalla sintassi Una scelta efficace e facile da installare è Notepad++ facilmente reperibile in rete Oltre che per il PHP funziona per molti altri tipi di file I colori e le altre caratteristiche sono personalizzabili Posizione del web server e dei contenuti Se il web server è nello stesso host del client, allora si trova all indirizzo localhost A volte localhost potrebbe non funzionare: allora basta provare con 127.0.0.1 Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-14

Esempio 1 ES1. Nome di tutte le persone nella base di dati All interrogazione corrisponde la query SQL: SELECT Nome FROM Persone Non ci sono parametri, pertanto non è necessario predisporre una form Basta predisporre sul server un file php in cui: Viene effettuata la connessione al DBMS Viene selezionato il DB Famiglia Viene passata la query, che restituisce la tabella Persone La tabella viene letta tupla per tupla e stampata, tramite il comando echo, nella pagina html statica che viene generata Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-15

Esempio 1: il file pagina.php Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-16

Esempio 1: recupero delle tuple L idea è quella che dall ambiente applicativo si vede un cursore, il quale contiene inizialmente la prima tupla della tabella risultato Successivamente ogni operazione di fetch sposta il cursore sulla tupla successiva Nella fattispecie: Il risultato della Select viene messo in $r Il comando $d=mysql_fetch_array($r)mette in $d la successiva tupla della tabella Al termine della tabella $d vale falso La tupla corrente ( $d ) viene usata per generare una riga nella pagina html generata da PHP contenente il valore dell attributo Nome Nel browser chiedere la pagina: http://localhost/db/pagina.php Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-17

Esempio 2 ES2. Sesso, nome e anno di nascita di tutti membri della famiglia nati dopo un certo anno All interrogazione corrisponde la query SQL: SELECT Nome, Sesso, Anno FROM Persone where Anno>inizio order by anno Occorre una form perché deve essere acquisito il parametro inizio La form2.html prevede una casella per inserire l anno il comando input specifica: L etichetta associata alla casella: Anno di inizio La specifica del nome del parametro name="inizio" Tipo type="text" e dimensione size="20" Il valore iniziale value="" (stringa vuota) Azione associata: action="pagina2.php" method="post" Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-18

Esempio 2: il file pagina2.php Quando la form form2.html viene restituita dal browser il web server manda in esecuzione la action pagina2.php Trattandosi di un file.php la sua interpretazione è demandata al modulo PHP: La parte di codice PHP è contornata da <?php e?> Il resto è codice html Dopo la connessione e selezione del DB viene inviata la query SQL Nella query viene passato il parametro proveniente dalla form: $_REQUEST[inizio] Il risultato restituito dal DBMS è messo in $res Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-19

Esempio 2: la costruzione della pagina L interprete PHP genera una pagina html costituita da: Le parti già in codice html in pagina2.php Le parti generate dall esecuzione delle echo Le stringhe generate da echo sono concatenate tramite l operatore. La stringa <br /> è inserita nella pagina per essere interpretata dal browser e provocare un a capo Il carattere \n provoca un a capo nella pagina html La pagina così generata è di fatto una pagina statica costruita dinamicamente La pagina è restituita dal modulo PHP al web server che la manda a sua volta come risposta al browser Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-20

Esempio 2a (controllo lato client) Nell esempio 2 non c è alcuna forma di controllo sui dati inseriti nel campo Anno di inizio, né sul fatto che essi vengano inseriti A questo esempio corrispondono la pagina form2a.html e la pagina di risposta pagina2a.php In form2a.html: viene inserito un controllo lato client tramite una funzione javascript; la definizione della funzione checkform()è nel header; La funzione è richiamata in corrispondenza dell evento di submit della form: onsubmit="return checkform()" Solo se la funzione restituisce true la submit ha luogo pagina2a.php è identica a pagina2.php ritorna su form2a.html salvo che Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-21

Esempio 2b (controllo lato server) A questo esempio corrispondono la pagina form2b.html e la pagina di risposta pagina2b.php form2b.html è identica a form2.html salvo che lancia pagina2b.php In pagina2b.php: viene inserito un controllo lato server tramite un controllo PHP sulla variabile $_REQUEST['inizio']; se la variabile non è un numero si stampa un messaggio; altrimenti viene eseguita la query con il parametro etc. if(!is_numeric($_request['inizio'])){ echo "Non è stato inserito un numero"; } else{ query e costruzione pagina } Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-22

Esempio 3 ES3. Sesso, nome, anno di nascita e città, di tutte le persone nate in un certo periodo in una certa città La novità in questo caso è nell acquisizione parametro citta, che viene acquisito tramite una select, cioè un menu a tendina Inoltre si vuole che il menu a tendina, sia calcolato dinamicamente, in base alle città effettivamente presenti nel DB La richiesta iniziale sarà costituita dal file form3.php che genererà dinamicamente la form contenente il menu in questione I valori da includere nel menu sono calcolati con l interrogazione: SELECT distinct Città FROM Persone order by Città Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-23

Esempio 4: la form di richiesta ES4. Inserimento di una nuova persona nella tabella Persone specificandone Nome, Città, Sesso e Anno di nascita I dati da inserire vengono acquisiti tramite la form form4.php Nella form vengono eseguiti diversi controlli lato client tramite la funzione checkform: 1. Deve comunque essere inserito il Nome della persona 2. Deve essere selezionato il Sesso dal menu a tendina 3. Se Città non viene inserita si assume il valore NULL 4. Se Anno non viene inserito si assume il valore NULL 5. Se Anno viene inserito si accettano solo valori numerici 6. Nei casi 3 e 4 si controlla che l omissione sia intenzionale Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-24

Esempio 4: il file php La action associata alla form è il file pagina4.php Questo file costruisce la pagina dinamica che viene restituita, e che riporta l esito dell operazione di inserimento 1. Vengono finalizzati i valori di Anno e Città: messi a NULL se viene passata una stringa vuota e messi gli apici a Città 2. Viene preparata la stringa della query di inserimento 3. Viene passata la query al DBMS 4. Se non ci sono errori la funzione mysql_query restituisce true e la cosa viene confermata nella pagina restituita 5. Altrimenti, se l errore è il 1062 si segnala la duplicazione della chiave primaria 6. Negli altri casi si restituisce codice e messaggio passati dal DBMS Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-25