Applicazione client-server in PHP con database MySQL



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

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

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

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

Database e reti. Piero Gallo Pasquale Sirsi

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

Progettazione Web Applicazioni client-server

Esercitazione 8. Basi di dati e web

Lavorare con MySQL Parte Seconda.

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

MySQL Database Management System

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

ITI M. FARADAY Programmazione modulare a.s

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

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

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

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

Introduzione a phpmyadmin

Apache 2, PHP5, MySQL 5

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE SITO E-COMMERCE

HTML HTML. HyperText Markup Language. Struttura di un documento. Gli elementi essenziali di un documento HTML sono i seguenti TAG: <HTML>...

DBMS (Data Base Management System)

PHP e Structured Query Language

SOSEBI PAPERMAP2 MODULO WEB MANUALE DELL UTENTE

Volumi di riferimento

La tecnologia ASP.NET e i database

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

Corso di PHP. Prerequisiti. 1 - Introduzione

FPf per Windows 3.1. Guida all uso

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

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Capitolo 13. Interrogare una base di dati

Una metodologia di progettazione di applicazioni web centrate sui dati

Un client su arduino invia i dati acquisiti ad un database

Il Web Server e il protocollo HTTP

2. Costruire un database con Apache, PHP e MySql

ISTRUZIONI INSTALLAZIONE PMANGO

Dispensa di database Access

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

GUIDA UTENTE PRIMA NOTA SEMPLICE

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

MODULO 5 Appunti ACCESS - Basi di dati

Programmazione Server Side e Database in rete

PHP E MYSQL CREAZIONE DI UN NUOVO DATABASE DAL PHPMYADMIN

Application Server per sviluppare applicazioni Java Enterprise

Sessione ordinaria 2005 Seconda prova scritta M070 - ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE

Accesso a basi di dati con ASP. Algoritmo per visualizzare un DB

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

Sistemi per la gestione di database: MySQL ( )

MySQL Database Management System

Guida all Installazione del ProxyFatturaPA

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

Lezione 9. Applicazioni tradizionali

Corso di Sicurezza Informatica. Sicurezza del software. Ing. Gianluca Caminiti

Concetti fondamentali dei database database Cos'è un database Principali database

1.1 Installare un nuovo Client di Concept ed eseguire il primo avvio

Le query. Lezione 6 a cura di Maria Novella Mosciatti

Ministero della Pubblica Istruzione Ufficio Scolastico Regionale per la Sicilia Direzione Generale

COME CREARE E COLLEGARSI AD UN DATABASE MICROSOFT SQL SERVER O SUN MYSQL

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

Sviluppo Applicazioni Mobile Lezione 12 JDBC. Dr. Paolo Casoto, Ph.D

Strumenti Software per Esercitazioni (ambiente Windows) Basi di Dati L LS Ing. Gestionale

developed by Emanuele De Carlo

Laboratorio di reti II: Gestione di database lato server

RELAZIONE PROGETTO DATABASE GESTIONE BIBLIOTECA PERSONALE

AXWIN6 QUICK INSTALL v.3.0

Come installare e configurare il software FileZilla

JDBC versione base. Le classi/interfacce principali di JDBC

Presentazione Data Base

2009. STR S.p.A. u.s. Tutti i diritti riservati

ANNO SCOLASTICO: DISCIPLINA: INFORMATICA CLASSE: 5 SI INDIRIZZO: SISTEMI INFORMATIVI DOCENTI: TISO EMANUELE BARBARA SECCHI

Mac Application Manager 1.3 (SOLO PER TIGER)

Il Web-Service SDMX dell ISTAT

MagiCum S.r.l. Progetto Inno-School

1 Introduzione Installazione Configurazione di Outlook Impostazioni manuali del server... 10

Programmazione Web. Laboratorio 4: PHP e MySQL

I file di dati. Unità didattica D1 1

Progetto di Ingegneria del Software 2. SWIMv2

Costruzione di Sit Web con PHP e MySQL. Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query

[1] Cross Site Scripting [2] Remote / Local File Inclusion [3] SQL Injection

- PROCEDURA TY - MANUALE D USO PALMARE PORTATILE HTC RILEVAMENTO LETTURE CONTATORI ACQUA

La prima operazione da fare è di registrarsi nel sito di Altervista al seguente indirizzo:

Laboratorio Progettazione Web PHP e MySQL. Andrea Marchetti IIT-CNR 2013/2014

Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione. Facoltà di Ingegneria

Esercizi di JavaScript

Il linguaggio HTML - Parte 3

Database 1 biblioteca universitaria. Testo del quesito

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

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Configurazione avanzata di XAMPP

PHP e MySQL. Guida scaricata da

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

01/05/2013 Istruzioni per l installazione

PHP - Storia. Inizialmente sviluppato da Rasmus Lerdorf come serie di script CGI

Транскрипт:

Applicazione client-server in PHP con database MySQL Emanuele Scapin 1 1 Liceo Statale F.Corradini, via Milano 1, 36016 Thiene 30/05/2012 1 Premessa Dopo la trattazione di argomenti teorici di progettazione di Basi di Dati (database) 1 si vuole proporre la creazione di una semplice applicazione clientserver 2. Si farà ricorso a codice SQL 3 per costruire delle query da applicare a un database MySQL 4, le interrogazioni verranno implementate grazie a codice in linguaggio PHP 5. 2 Requisiti: conoscenze dello studente Lo studente deve necessariamente avere acquisto competenze in merito ai seguenti argomenti teorici precedentemente trattati: 1 Il termine database o base di dati indica un insieme di archivi collegati secondo un particolare modello logico (attualmente il modello relazionale) e in modo tale da consentire la gestione dei dati. 2 Un applicazione client-server è un tipo di applicazione di rete nel quale un computer client (cliente) istanzia l interfaccia utente di un applicazione la quale si connette ad una server application (applicazione server) oppure a un sistema di database. 3 SQL (Structured Query Language) è un linguaggio di interrogazione per database. 4 Un database relazionale tra i più popolari, la versione base è gratuita. 5 PHP (acronimo di Hypertext Preprocessor), è un linguaggio di scripting interpretato, con licenza open source e libera, originariamente concepito per la programmazione Web ovvero la realizzazione di pagine web dinamiche. 1

progettazione concettuale e schema entità/relazioni (ER); progettazione logica e schema relazionale, vincoli relazionali e ottimizzazione (forme normali); istruzioni del linguaggio Sql. Deve inoltre ricordare i seguenti argomenti trattati gli anni precedenti: linguaggio Html; programmazione con linguaggio C++. 3 Requisiti: hardware e software Per implementare una applicazione client-server si deve utilizzare una rete locale (LAN) dove ogni studente avrà a disposizione una postazione di lavoro. Per utilizzare efficacemente le conoscenze sulle reti si deve evitare di installare il database MySQL 6 e il web server Apache 7 con interprete Php in ogni singola macchina ma invece si preferirà utilizzare un server condiviso in cui fare le installazioni. Sul server viene prima installato il database MySQL con le opportune configurazioni, successivamente viene installato Apache, una volta installato Apache si installa l interprete di Php 8 facendo attenzione alla manipolazione dei file di configurazione in modo da rendere visibile l interprete al web server. Righe da inserire nel file Httpd.conf di Apache per permettere l invocazione dell interprete Php. # S t a r t Php i n t e g r a t i o n LoadModule php5 module c : / programmi/php/ php5apache2 2. d l l AddType a p p l i c a t i o n /x httpd php. php PhpIniDir C: / programmi/php #End Php i n t e g r a t i o n Ora Apache deve pubblicare sia file Html che file Php. 6 Reperibile sul sito www.mysql.it. 7 Reperibile sul sito httpd.apache.org. 8 Reperibile sul sito www.php.net. 2

<IfModule dir module> DirectoryIndex index. html index. php </IfModule> Il web server fa uso di una cartella dove verranno pubblicate le pagine web in Html e in Php, questa cartella deve essere condivisa in rete da tutte le postazioni di lovoro. Infine, per operare agevolmente con il database si installa PhpMyAdmin 9, questa applicazione fa uso del web server e del linguaggio Php e offre una interfaccia grafica per la gestione del database MySQL. Tutti i pacchetti software utilizzati e installati sono reperibili gratuitamente in rete, infatti sono concessi con licenza GPL 10. 4 Applicazioni Di seguito si presentano delle applicazioni che possano guidare lo studente all uso di Php per interrogare e manipolare un database MySQL tenendo presente un approccio graduale a passi successivi di crescita delle competenze, come enunciato precedentemente. 4.1 Php, un primo esempio Per introdurre il linguaggio Php vale la pena proporre un piccolo esempio dove gli studenti potranno subito verificare analogie e differenze con il linguaggio C++ già di loro conoscenza. <?php $ i = 0 ; echo ( < t a b l e border = 1 c e l l p a d d i n g = 10 > ); while ( $ i < 10) { echo( < tr><td>r i g a $i </td><td>a l t r a c e l l a </td></tr > ); $ i ++; } echo ( </ table > );?> il risultato sarà una semplce tabella come nell immagine seguente. 9 Reperibile sul sito http://www.phpmyadmin.net. 10 La GNU General Public License, comunemente indicata con l acronimo GNU GPL o semplicemente GPL, è una licenza per software libero. 3

4.2 MySQL, la prima tabella Necessariamente per operare su un database si deve costruire uno schema con almeno una tabella con qualche campo su cui scrivere dei dati e leggerli. Se la tabella viene creata con l applicazione MyPhpAdmin la si potrà costruire tramite interfaccia grafica ottenendo il seguente risultato. Lo script Sql equivalente per la creazione della tabella è il seguente 4

CREATE TABLE studente ( id i n t (10) unsigned NOT NULL auto increment, nome varchar (50) NOT NULL, cognome varchar (50) NOT NULL, i n d i r i z z o varchar (50) d e f a u l t NULL, comune varchar (30) d e f a u l t NULL, cap varchar ( 5 ) d e f a u l t NULL, PRIMARY KEY ( id ) ) 4.3 Html e Php, il tag form Il file index.html o index.php (anche se in realtà non contiene codice Php) sarà del tipo <html> <head> <t i t l e ></t i t l e > </head> <body> <form a c t i o n= f o r m a c t i o n. php method= get > Nome : <input type= t e x t name= fnome /><br/> Cognome : <input type= t e x t name= fcognome /><br/> I n d i r i z z o <input type= t e x t name= f i n d i r i z z o /><br/> Comune <input type= t e x t name= fcomune /><br/> Cap <input type= t e x t name= fcap /><br/> <input type= submit value= Submit /> </form> </body> </html> dove è presente una form con degli input di tipo text per l inserimento dei dati e uno di tipo submit per invocare l avvio della action. L invocazione della action, digitando il tasto Submit, produrrà la seguente richiesta della pagina f o r m a c t i o n. php?fnome=luca&fcognome=r o s s i& f i n d i r i z z o=via+v e r d i&fcomune=t h i e n e&fcap =36016 5

che passerà con metodo get i dati alla pagina Php che li dovrà gestire, il cui nome deve coincidere con quello inserito nella action della form, il passaggio dei dati avviene secondo il protocollo Http 11, <?php $nome = $ GET [ fnome ] ; $cognome = $ GET [ fcognome ] ; $ i n d i r i z z o = $ GET [ f i n d i r i z z o ] ; $comune = $ GET [ fcomune ] ; $cap = $ GET [ fcap ] ; echo ( <h3>nome :. $nome. </h3><br / > ); echo ( <h3>cognome :. $cognome. </h3><br / > ); echo ( <h3>i n d i r i z z o :. $ i n d i r i z z o. </h3><br / > ); echo ( <h3>comune :. $comune. </h3><br / > ); echo ( <h3>cap :. $cap. </h3><br / > );?> Fare attenzione al metodo get e il conseguente passaggio dei dati tra le pagine, tra l altro la prima pagina è lato client e si interagisce direttamente sul proprio browser mentre la pagina invocata dalla action è lato server e si vedrà il risultato di elaborazione così come verrà interpretato dal Php lato server. Altri esempi sono comunque presenti online in parecchi siti 12 che spiega il linguaggio anche con l uso di tutorial. Vale la pena provare la action sia con metodo get sia con metodo post e notare le differenze più evidenti. 4.4 La prima query Popolando la tabella del database direttamente da PhpMyAdmin abbiamo la possibilità di avere una tabella non vuota da interrogare da una pagina Php scritta come segue. 11 Il protocollo HTTP (Hyper Text Transport Protocol) è argomento trattato con i protocolli di rete nel secondo quadrimestre della classe quinta. 12 Sito in italiano utile e con esempi è www.html.it, altrimenti c è il sito istituzionale www.w3schools.com con tutorial in inglese. 6

<?php i n c l u d e ( c o n f i g. i n c. php ) ; / Connessione e s e l e z i o n e d e l database / $connessione = mysql connect ( $db host, $db user, $db password ) ; i f ( $connessione == FALSE) d i e ( Errore n e l l a connessione. V e r i f i c a r e i parametri n e l f i l e c o n f i g. i n c. php ) ; m y s q l s e l e c t d b ( Sql1, $connessione ) or d i e ( S e l e z i o n e d e l database non r i u s c i t a ) ; $query = SELECT FROM studente ORDER BY cognome, nome ; $ r i s u l t a t o = mysql query ( $query ) or d i e ( Query f a l l i t a :. m y s q l e r r o r ( ) ) ; / Stampa d e i r i s u l t a t i in HTML / echo ( < t a b l e border = 1 c e l l p a d d i n g = 5 >\n ) ; echo ( < t r ><td>nome</td><td>cognome</td> <td>i n d i r i z z o </td><td>comune</td><td>cap</td></tr > ); while ( $ r i g a = m y s q l f e t c h a s s o c ( $ r i s u l t a t o ) ) { echo ( < tr > ); echo ( <td >. $ r i g a [ nome ]. </ td > ); echo ( <td >. $ r i g a [ cognome ]. </ td > ); echo ( <td >. $ r i g a [ i n d i r i z z o ]. </ td > ); echo ( <td >. $ r i g a [ comune ]. </ td > ); echo ( <td >. $ r i g a [ cap ]. </ td > ); echo ( </ tr > ); } echo </table >\n ;?> / Libera r i s o r s e d e l r i s u l t a t o / m y s q l f r e e r e s u l t ( $ r i s u l t a t o ) ; / Chiusura d e l l a connessione / m y s q l c l o s e ( $connessione ) ; 7

Se non si conoscono le istruzioni Php da utilizzare per la connessione al database le si può cercare in Internet 13. L interrogazione al database MySQL deve avvenire tramite opportuni passaggi quali: connettere il database, tramite istruzione mysql connect con opportune credenziali di accesso (username e password) per garantire la sicurezza; selezionare lo schema desiderato, quello dove si trova la tabella da interrogare, tramite l istruzione mysql select db; definire una stringa per la query ed eseguire la query stessa tramite l istruzione mysql query; eseguire un ciclo che scandisca il recordset del risultato fino a che sono presenti record tramite l istruzione mysql fetch assoc che restituisce un record (riga della tabella) alla volta; leggere i campi del record che si vogliono stampare; rilasciare la risorsa utilizzata per il recordset con l istruzione mysql free result e chiudere la connessione con l istruzione mysql close. In questo caso emergono gli aspetti di programmazione e la necessità di conoscere l opportuna libreria del linguaggio e i metodi utili alla scopo. E preferibile fare uso di istruzioni che catturino le segnalazioni di errore, come l istruzione mysql error. 4.5 Il primo comando Dopo la query è conveniente proporre un esempio di esecuzione di una istruzione Sql, in questo caso si utilizzerà la INSERT in modo da popolare la tabella direttamente utilizzando l applicazione. Si può quindi alterare il file form action.php precedentemente proposto, ora nel file non si leggeranno solo i dati provenienti dalla form ma li si userà per eseguire un istruzione Insert sulla tabella, in tal modo la tabella verrà popolata con una riga aggiuntiva. 13 Informazioni sulla libreria con esempi si trovano al sito http://www.php.net/manual/en/ref.mysql.php. 8

<?php $nome = $ GET [ fnome ] ; $cognome = $ GET [ fcognome ] ; $ i n d i r i z z o = $ GET [ f i n d i r i z z o ] ; $comune = $ GET [ fcomune ] ; $cap = $ GET [ fcap ] ; i n c l u d e ( c o n f i g. i n c. php ) ; / Connessione e s e l e z i o n e d e l database / $connessione = mysql connect ( $db host, $db user, $db password ) ; i f ( $connessione == FALSE) d i e ( Errore n e l l a c onnessione. V e r i f i c a r e i parametri n e l f i l e c o n f i g. i n c. php ) ; m y s q l s e l e c t d b ( Sql1, $connessione ) or d i e ( S e l e z i o n e d e l database non r i u s c i t a ) ; $query = INSERT INTO studente (nome, cognome, i n d i r i z z o, comune, cap ) VALUES (. $nome.,. $cognome.,. $ i n d i r i z z o.,. $comune.,. $cap. ) ; mysql query ( $query ) or d i e ( Query f a l l i t a :. m y s q l e r r o r ( ) ) ; / Stampa id chiave a t t r i b u i t o a l record come v e r i f i c a avvenuto i nserimento / p r i n t f ( id a t t r i b u i t o %d\n, m y s q l i n s e r t i d ( ) ) ; / Chiusura d e l l a c o n n e ssione / m y s q l c l o s e ( $connessione ) ;?> Una difficoltà che potrà emergere sarà la gestione della costruzione della stringa contenente il comando da eseguire, stringa prodotta con l istruzione di concatenazione di Php (istruzione.), infatti pur essendo le variabili interpretate come stringhe in Php nella costruzione del comando in Sql vanno apposte le virgolette singole (apostrofo ) in modo che Sql interpreti il dato 9

come stringa. Riferimenti bibliografici [1] Massimo Canducci, PHP 5, SEI, Torino, 2007. [2] Paolo Camagni, Riccardo Nikolassy, PHP Dall HTML allo sviluppo di siti web dinamici, Hoepli, Milano, 2005. [3] Elizabeth Naramore, Sviluppo di siti web con PHP5, Apache e MySQL, Hoepli, Milano, 2005. [4] Mark Wandschneider, Sviluppare applicazioni web con PHP e MySQL, Apogeo, Milano, 2006. [5] Jay Greenspan, Brad Bulger, Sviluppare applicazioni per database con MySQL/PHP, Apogeo, Milano, 2004. [6] Williams Hugh, David Lane, Applicazioni web database con PHP e MySQL, Tecniche Nuove, Milano, 2005. 10