Architettura a tre livelli (1)

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Architettura a tre livelli (1)"

Transcript

1 Elaborazione Automatica dei Dati Php e MySQL Enrico Cavalli Anno Accademico Architettura a tre livelli (1) Le applicazioni sono sviluppate secondo una architettura a tre livelli, affermatasi con Internet. In questo contesto: il client dell applicazione ( livello 1 ) è un semplice browser che richiede pagine a un server web Il server web ( livello 2 ) costituisce il server dell applicazione e interagisce con il server del database Il database server ( livello 3 ) accede al database per recuperare i dati richiesti dal client Vantaggi Stazioni di lavoro leggere, dotate solo di un browser Possibilità di operare da qualsiasi macchina dotata di un browser La distribuzione dell applicazione è semplificata La manutenzione dell applicazione è semplificata (ogni cambiamento nel software applicativo avviene sul solo server) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 2 Architettura a tre livelli (2) Si vogliono sviluppare applicazioni per permettere a utenti inesperti di accedere al database di una applicazione Non è pensabile che accedano al database con comandi SQL Vedono e modificano i dati tramite maschere Oltre a sapere dialogare interattivamente con MySQL e saper sviluppare pagine web dinamiche con Php, bisogna imparare a: Ricevere le richieste dell utente tramite parametri Assegnare il valore dei parametri a variabili php di uno script Sviluppare script in base alle richieste ricevute Sviluppare script che interrogano o modificano un database Sviluppare script per inviare all utente le informazioni richieste Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 3 1

2 Architettura a tre livelli (3) Server Web 5 3 Php 4 Server MySQL DB 1. Il browser richiede una pagina Web dinamica 2. Il Web server riconosce nella richiesta un file con estensione.php e quindi attiva l interprete Php per eseguire gli script in esso contenuti 3. Lo script Php contiene i comandi per collegarsi al database MySQL e inviare le richieste tramite comandi in SQL 4. Il Server MySQL restituisce i dati richiesti 5. Lo script Php scrive i dati in una pagina Web e la restituisce al Web Server 6. Il Web Server invia al browser la pagina richiesta in formato HTML Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 4 Database utilizzato Il database Alimentari raccoglie gli ordini di prodotti alimentari. Prodotto N Includere N Ordine IDProdotto {PK Descrizione Reparto Prezzo Numero{PK Quantità IDOrdine Data Cliente {PK Prodotti( IDProdotto, Descrizione, Categoria, Prezzo ) Ordini( IDOrdine, Data, Cliente) RigheOrdine( Numero, Quantita, IDProdotto, IDOrdine ) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 5 Metodi Get e Post (1) Pagina inviata dal web server al browser. Contiene il nome dello script di risposta Pagina visualizzata dal browser Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 6 2

3 Metodi Get e Post (2) Con il metodo GET i parametri sono trasmessi al server nell URL della pagina richiesta e sono visibili nella pagina di risposta Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 7 Metodi Get e Post (3) Quando il browser richiama lo script di risposta costruisce per ogni parametro del modulo una coppia NomeParametro=Valore ( nome=gianfranco, cognome=farinoni ) che invia con la modalità GET o la modalità POST GET: i parametri sono codificati come parte dell indirizzo e sono visualizzati insieme all URL della pagina Web. Il nome è case sensitive modalità non adatta alla trasmissione di dati riservati modalità non adatta alla trasmissione di campi di grande dimensione Php: salvati nell array associativo $_GET $_GET[ nome ] $_GET[ cognome ] POST: i parametri sono trasmessi in un canale riservato con una modalità che li rende invisibili all utente modalità non adatta per le pagine che si vogliono salvare nei bookmarks Php: salvati nell array associativo $_POST $_POST[ nome ] $_POST[ cognome ] Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 8 Metodi Get e Post (4) Un altro modo di passare parametri ad una pagina Php consiste nel richiamare la pagina aggiungendo i parametri al suo indirizzo spazi o caratteri speciali nei nomi o nei valori spazi +, caratteri speciali %hh indirizzo=via Monte Rosa 12/a indirizzo=via+monte+rosa+12%2fa I parametri sono trasmessi nell array $_GET. Se manca un parametro Php segnala un errore al momento del recupero del valore mancante. Usare isset( ) per identificare queste situazioni e fornire eventuali valori di default $matr = $_GET[ matr ]; $corso = $_GET[ corso ]; If (isset($_get[ matr ])) if (isset($_get[ corso ])) $matr = $_GET[ matr ]; $corso = $_GET[ corso ]; else else $matr = mancante ; $corso = 0001; Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 9 3

4 Operazioni sul database (1) Connessione.php $hostname = "localhost"; $username = "root"; $password = ""; //---- Apertura della connessione con il server MySQL $conn = mysql_connect($hostname, $username, $password); if (! $conn ) { echo "Errore durante la connessione a MySQL."; exit(); else { echo ("Connessione a MySQL effettuata con successo."); // ---- Selezione di un database // ---- Operazioni sul database // ---- Chiusura della connessione mysql_close( $conn ); $conn è un oggetto che identifica la connessione... Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 10 Operazioni sul database (2) ScegliDatabase.php mysql_select_db() restituisce un valore $conn = mysql_connect("localhost", "root", ""); di verità.. if (! $conn ) { exit("errore durante la connessione a MySQL."); else { echo "Connessione a MySQL effettuata con successo<br>"; // // ---- Scelta di Alimentari come database di default // if (! mysql_select_db("alimentari", $conn) ) { exit("errore nella scelta del database Alimentari"); echo "Selezione riuscita, Alimentari è db di default"; // // ---- Operazioni sul database Alimentari // mysql_close( $conn ); if(!exp1){exp2 exp1 OR exp2 Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 11 Short Circuit Evaluation if(!exp1){exp2 exp1 OR exp2 SCE nel caso di OR $Str = Valore iniziale ; $L1 = True; $L2 = $L1 OR ($Str = 0); // $L2 = $L1 ($Str = 0); echo $L2 vale.$l2; echo $Str vale.$str; $Str = Valore iniziale ; $L1 = False; $L2 = $L1 OR ($Str = 0); // $L2 = $L1 ($Str = 0); echo $L2 vale.$l2; echo $Str vale.$str; Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 12 4

5 Short Circuit Evaluation SCE nel caso di AND $Str = Valore iniziale ; $L1 = True; $L2 = $L1 AND ($Str = 0); // $L1 && ($Str = 0); echo $L2 vale.$l2; echo $Str vale.$str; $Str = Valore iniziale ; $L1 = False; $L2 = $L1 AND ($Str = 0); // $L1 && ($Str = 0); echo $L2 vale.$l2; echo $Str vale.$str; Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 13 Dettagli su espressioni logiche OR versus $Ris = $L1 OR $L2; $Ris = $L1 $L2; ($Ris = $L1) OR $L2; $Ris = ($L1 $L2); /* * Valutare le espressioni per: $L1 = False; $L2 = True; * */ AND versus && $Ris = $L1 AND $L2; $Ris = $L1 && $L2; ($Ris = $L1) AND $L2; $Ris = ($L1 && $L2); /* * Valutare le espressioni per: $L1 = True; $L2 = False; * */ Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 14 Operazioni sul database (3) Le operazioni sul database si eseguono con la funzione mysql_query( ) mysql_query( StringaQuery, Connessione ) StringaQuery contiene il testo del comando SQL che si vuole eseguire (bisogna omettere il ; finale) Connessione specifica il database tramite un identificatore di connessione, per default si considera l ultima connessione stabilita mysql_query() restituisce false in caso di errore, mentre restituisce true, o un puntatore alla risposta all interrogazione, in assenza di errori Esempi basati sulla tabella Clienti: CREATE TABLE Clienti ( IDCliente VARCHAR(10) PRIMARY KEY, Nome VARCHAR(30), Cognome VARCHAR(30) ); Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 15 5

6 CreaClienti.php Operazioni sul database (4) $conn = mysql_connect("localhost", "root", ""); if (! $conn ) exit("errore durante la connessione a MySQL."); echo "Connessione a MySQL effettuata con successo. <BR><HR>"; mysql_select_db("alimentari") or exit("errore db Alimentari"); echo "Alimentari è db di default. <BR><HR>"; // ---- Costruzione del comando SQL $sqlcmd = "CREATE TABLE Clienti(". "IDCliente Varchar(10) PRIMARY KEY,". "Nome Varchar(30),". "Cognome Varchar(30) )"; $conn mancante in: mysql_select_db( ) mysql_query( ) // ---- Esecuzione del comando SQL e fine connessione mysql_query( $sqlcmd ) or exit("errore in creazione Clienti"); echo "Tabella Clienti creata con successo. <BR><HR>"; mysql_close($conn); Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 16 Operazioni sul database (5) /**************************************************************** * Approcci alternativi in caso di errore * * mysql_errno() restituisce il codice di errore oppure 0 * mysql_error() restituisce un messaggio di errore o * la stringa vuota ****************************************************************/ // ---- Esecuzione del comando SQL Visualizzare il mysql_query( $sqlcmd ); comando eseguito if ( mysql_errno() == 0 ){ è una buona echo "Comando eseguito con successo."; prassi else { echo "Errore nel comando: <BR> $sqlcmd <BR>"; echo mysql_error(); Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 17 InserisciCliente.php Operazioni sul database (6) // ---- apertura della connessione con MySQL su Alimentari $idcliente = "farigian"; $nome = "Gianfranco"; $cognome = "Farinoni"; // ---- Costruzione del comando INSERT $sqlcmd = "INSERT INTO Clienti VALUES "; $sqlcmd.= "('$idcliente','$nome','$cognome')"; echo "Comando: $sqlcmd <BR>"; mysql_query( $sqlcmd ); if ( mysql_errno()== 0 ) { echo "Comando eseguito con successo."; else { echo "Errore nel comando: ", mysql_error(); // ---- chiusura della connessione Comando: INSERT INTO Clienti VALUES( farigian, Gianfranco, Farinoni ) Comando eseguito con successo Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 18 6

7 ModificaCliente.php Operazioni sul database (7) $idcliente = "farigian"; $nome = "Gian Franco"; // ---- Costruzione del comando UPDATE $sqlcmd = "UPDATE Clienti "; $sqlcmd.= "SET Nome='$nome' "; $sqlcmd.= "WHERE IDCliente='$idcliente'"; echo "Comando: $sqlcmd <BR>"; mysql_affected_rows( ) // ---- Esecuzione del comando e messaggi informativi mysql_query( $sqlcmd ); if ( mysql_errno()== 0 ){ echo "Comando eseguito con successo.<br>"; echo "Numero di righe modificate = ", mysql_affected_rows(); else { echo "Errore nel comando: <BR> $sqlcmd <BR>"; echo mysql_error(); Comando: UPDATE Clienti SET Nome='Gian Franco' WHERE IDCliente='farigian' Comando eseguito con successo. Numero di righe modificate = 1 Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 19 CancellaCliente.php Operazioni sul database (8) // ---- apertura della connessione con MySQL su Alimentari $idcliente = "farigian"; // ---- Costruzione del comando DELETE $sqlcmd = "DELETE FROM Clienti "; $sqlcmd.= "WHERE IDCliente = '$idcliente'"; echo "Comando in esecuzione: $sqlcmd <BR>"; // ---- Esecuzione del comando mysql_query($sqlcmd) or exit("errore nel comando DELETE"); echo "Comando eseguito con successo.<br>"; // ---- chiusura della connessione Comando: DELETE FROM Clienti WHERE IDCliente='farigian' Comando eseguito con successo. Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 20 InserisciOrdine.php Operazioni sul database (9) $data = " "; $cliente = "farigian"; mysql_insert_id( ) // ---- Costruzione del comando INSERT $sqlcmd = "INSERT INTO Ordini VALUES "; $sqlcmd.= "( null, '$data', '$cliente' )"; echo "Comando: $sqlcmd <BR>"; // ---- Esecuzione del comando e messaggi mysql_query( $sqlcmd ); if ( mysql_errno()== 0 ){ $id = mysql_insert_id(); echo "Ordine inserito con successo.<br>"; echo "IDOrdine = $id"; else { echo "Errore nel comando: <BR> $sqlcmd <BR>"; echo mysql_error(); Comando: INSERT INTO Ordini VALUES ( null, ' ', 'farigian' ) Ordine inserito con successo. IDOrdine = 1 Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 21 7

8 Interrogazioni sul database (1) $risultato = mysql_query( SELECT * FROM Ordini ) $risultato: false oppure un oggetto dal quale si estraggono le righe della risposta con mysql_fetch_array( $risultato ) mysql_fetch_array( ) restituisce false oppure la prossima riga in un array associativo Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 22 Interrogazioni sul database (2) E utile pensare a $risultato come alla tabella restituita da SELECT: gli indici dell array associativo $risultato sono i nomi delle colonne della tabella. // ---- attenzione alle colonne quando sono rinominate $sqlcmd = SELECT IDOrdine AS Numero, Data,. Cliente AS CodiceCliente FROM Ordini ; $risultato = mysql_query( $sqlcmd); if (! $risultato) exit( "Errore nel comando SELECT" ); $riga = mysql_fetch_array($risultato); $id = $riga["numero"]; $data = $riga["data"]; $cliente = $riga["codicecliente"];.. Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 23 Interrogazioni sul database (3) /************************************************************** due modi per estrarre tutte le righe dal risultato **************************************************************/ // recupera la prima riga $riga = mysql_fetch_array($risultato); while ($riga) { // Operazioni sulla riga // Estrazione della prossima riga $riga = mysql_fetch_array($risultato); mysql_num_rows( $risultato ) // sapendo quante sono le righe... for ($volte = 0; $volte<mysql_num_rows($risultato); $volte++) { $riga = mysql_fetch_array($risultato); // Operazioni sulla riga Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 24 8

9 Interrogazioni sul database (4) // ---- connessione al database Alimentari $reparto = "alimsur"; // ---- Costruzione del comando SELECT $sqlcmd = "SELECT IDProdotto, Descrizione, Prezzo "; $sqlcmd.= "FROM Prodotti "; $sqlcmd.= "WHERE Reparto = '$reparto' "; echo "Comando SELECT: $sqlcmd <HR Size=4>"; // ---- Interrogazione e gestione dell'errore $risultato = mysql_query( $sqlcmd ); if (! $risultato) exit("errore nell'interrogazione: <BR> $sqlcmd "); // ---- Estrazione della prima riga e iterazione $riga = mysql_fetch_array( $risultato ); if (!$riga) exit("non ci sono prodotti in $reparto "); Prodotti del reparto alimsur // // $riga OR exit("non ci sono prodotti in $reparto "); // Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 25 Interrogazioni sul database (5)... while ( $riga ) { // ---- Visualizzaione della riga $idprodotto = $riga["idprodotto"]; $descrizione = $riga["descrizione"]; $prezzo = $riga["prezzo"]; echo "Codice = $idprodotto, Descrizione = $descrizione, Prezzo = $prezzo <HR>"; // ---- Estrazione della prossima riga $riga = mysql_fetch_array( $risultato ); echo "Numero prodotti = ", mysql_num_rows($risultato); // ---- Chiusura della connessione Prodotti del reparto alimsur Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 26 Interazione con Form HTML (1) Per mostrare queste funzionalità consideriamo il caso di un utente che vuole effettuare acquisti presso un azienda che commercializza prodotti alimentari on line e, tramite un form, richiede l elenco dei prodotti del reparto desiderato. Lo script di risposta visualizza i prodotti del reparto scelto, con codice, descrizione e prezzo. L utente a questo punto effettua un ordine comunicando codice e quantità di un prodotto desiderato e i propri dati. Vedi le pagine HTML e Php nei seguenti file: RichiestaElencoProdotti.html ProdottiReparto.php RegistraOrdine.php Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 27 9

10 Interazione con Form HTML (2) RichiestaElencoProdotti.html Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 28 Interazione con Form HTML (3) ProdottiReparto.php Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 29 Interazione con Form HTML (4)... ProdottiReparto.php... // ---- Costruzione del comando SELECT $sqlcmd = "SELECT IDProdotto, Descrizione, Prezzo "; $sqlcmd.= "FROM Prodotti "; $sqlcmd.= "WHERE Reparto = '$reparto' "; // ---- Interrogazione e gestione dell'errore $risultato = mysql_query( $sqlcmd ); $risultato OR exit("errore nell'interrogazione: <BR> $sqlcmd "); if ( mysql_num_rows($risultato)==0 ) exit("non ci sono prodotti nel reparto $desrep"); <TABLE BORDER=1 CELLPADDING=4> <TR> <TH>Codice</TH> <TH>Descrizione</TH> <TH>Prezzo</TH> </TR> Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 30 10

11 Interazione con Form HTML (5) ProdottiReparto.php while ( $riga=mysql_fetch_array($risultato) ) { $idprodotto = $riga["idprodotto"]; $descrizione = $riga["descrizione"]; $prezzo = $riga["prezzo"]; echo "<TR>"; echo "<TD>$idprodotto</TD>"; echo "<TD>$descrizione</TD>"; echo "<TD>$prezzo</TD>"; echo "</TR>"; echo "</TABLE><BR>"; echo "Numero prodotti = ", mysql_num_rows($risultato); echo "<BR><HR>"; // Chiusura della connessione mysql_close($conn); Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 31 Interazione con Form HTML (6) ProdottiReparto.php <STRONG> Per ordinare un prodotto compili il modulo e faccia clic su: Invia Ordine </STRONG> <FORM ACTION="http:// /RegistraOrdine.php" METHOD="POST" > <INPUT Type="text" NAME="idprodotto" SIZE=10> Codice Prodotto<BR> <INPUT Type="text" NAME="quantita" VALUE="1" SIZE=4> Quantità<BR> <INPUT Type="text" NAME="cliente" SIZE=4> Codice Cliente<BR> <INPUT Type="text" NAME="nome" SIZE=20> Nome <INPUT Type="text" NAME=cognome SIZE=20> Cognome <HR> <BR> <INPUT TYPE="submit" VALUE="Invia Ordine"> <INPUT TYPE="reset" VALUE="Annulla"> </FORM>... Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 32 Interazione con Form HTML (7) RegistraOrdine.php Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 33 11

12 Validazione dei dati (1) I dati inviati dagli utenti devono essere controllati sia per ragioni di sicurezza, sia per prevenire malfunzionamenti dovuti a valori inattesi o irragionevoli dei dati trasmessi erroneamente o maliziosamente dagli utenti Controlli lato client (eseguiti dal browser) richiedono Javascript Controlli lato server Web eseguiti da script PHP Controlli lato server database sono i vincoli d integrità ecc. Se RegistraOrdine.php riceve come parametri: un codice prodotto corretto, il carattere d come quantità e il valore nullo per cliente, lo script invia il seguente messaggio: Prodotto ordinato: Zuppa di pesce Prezzo unitario: 6.30 Quantità ordinata: d Registra un ordine Importo ordine: 0 senza cliente e con quantità uguale a 0 Ordine registrato alle 05:58:06 del giorno: Cliente: Identificativo ordine: 13/8 Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 34 Validazione dei dati (2) Per controllare l esatta natura dei valori trasmessi usiamo il codice: $idprodotto = $_POST["idprodotto"]; $quantita = $_POST["quantita"]; $cliente = $_POST["cliente"]; echo "prodotto = "; var_dump($idprodotto); echo "<BR>"; echo "quantita = "; var_dump($quantita); echo "<BR>"; echo "cliente = "; var_dump($cliente); echo "<BR>"; if ($quantita > 0 ) echo "maggiore <BR>"; else echo "minore uguale <BR>"; echo "quantita = ", $quantita*1, "<BR>"; Controlli su: stringhe nulle, e valori opportuni in base al contesto nel quale si opera I dati arrivano sempre allo script come stringhe di caratteri I dati omessi arrivano come stringhe vuote: Se un parametro inizia con caratteri di tipo numerico viene gestito come valore numerico Se un parametro inizia con caratteri non numerici oppure è la stringa nulla diventa 0 nel calcolo di espressioni numeriche Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 35 Validazione dei dati (3) Validazione dei caratteri inseriti. Per esempio: sono validi solo caratteri alfanumerici. $user = $_POST["utente"]; $pwd = $_POST["password"]; $ammessi = "abcdefghijklmnopqrstuvwxyz". "ABCDEFGHIJKLMNOPQRSTUVWXYZ "; $userok = true; for( $pos=0; $pos<strlen($user) && $userok; $pos++ ) { $car = substr($user, $pos, 1); if ( strpos($ammessi, $car) === false ) $userok = false; $pwdok = true; for( $pos=0; $pos<strlen($pwd) && $pwdok; $pos++ ) { $car = substr($pwd, $pos, 1); if ( strpos($ammessi, $car) === false ) $pwdok = false; if ($userok && $pwdok ) { accesso ai dati else echo "Inserimento dati non corretto ; ===!== Confronto per valore e tipo Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 36 12

13 Validazione dei dati (4) Validazione dei caratteri inseriti. Per esempio: certi termini non sono ammessi $user = $_POST["utente"]; $vietate = array ("select", "insert", "update", "delete", "drop", "alter", "--", "'"); $userok = true; for( $k=0; $k <= 7 && $userok; $k++ ) { if ( strpos($vietate[$k], $user)!== false ) $userok = false;... if ($userok && $pwdok ) { accesso ai dati else echo "Inserimento dati non corretto ; $CMD = Select * From Utenti Where. User = $user and Psw = $pwd Cosa succede se l utente come user o password inserisce: 1 OR 1 = 1 Per impedire l SQL injection si usano appunto il controllo dei caratteri o delle parole immesse oltre alla applicazione della funzione: mysql_real_escape_string(... ) che sostituisce ai caratteri speciali le rispettive sequenze di escape. Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 37 Esercizi 1. Scrivere uno script per inserire righe nella tabella Clienti di un database. La tabella ha il seguente schema: Clienti(IDCliente, Nome, Cognome) e tutti i campi sono di tipo Varchar. 2. Scrivere uno script per modificare i dati inseriti nella tabella Clienti del precedente esercizio. 3. Scrivere uno script per cancellare una riga inserita nella tabella Clienti dell esercizio Scrivere uno script per modificare o cancellare un record della tabella Clienti dell esercizio 1. Lo script deve visualizzare il comando eseguito e in caso di errore nel comando deve inviare un messaggio con la descrizione e il numero dell errore. Provatelo cercando di cancellare o modificare un record inesistente. 5. Scrivere uno script per inserire righe nella tabella Prodotti di schema: Prodotti(IDProdotto, Descrizione, Categoria, Prezzo) con la chiave auto_increment. Visualizzare il comando eseguito e il valore assunto dalla chiave. 6. La tabella Atleti di un database contiene le informazioni sui concorrenti a una gara sportiva internazionale. Costruire la pagina Web per visualizzare l elenco alfabetico con cognome e nome degli atleti di una nazione prefissata. 7. Data una tabella Anagrafica di un database, costruire la pagina Web che visualizza, ordinata alfabeticamente, il cognome e nome delle persone che abitano in una data provincia fornita dall utente tramite un form HTML. 8. Creare una pagina PHP per inserire un nuovo studente nel database della segreteria fornendo i dati tramite il form di una pagina HTML. 9. Data la tabella Clienti di schema: ( Codice, Cognome, Nome, Indirizzo, CAP, ), si costruisca uno script che riceve, tramite un form HTML il codice di un cliente e ne controlla l esistenza in Clienti. Se il cliente è in archivio lo script ne visualizza i dati in un form con il quale è possibile aggiornare i dati del cliente. Se il cliente non è in archivio lo comunica con un messaggio. Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 38 // //----- Esercizi sulla tabella TCambi che generalizza CalcolaValuta.php // ---- Apertura della connessione etc. omessa // $sqlcmd = SELECT Divisa, Valore ";. FROM TCambi ; echo "Comando: $sqlcmd <BR>"; // $TCambi = mysql_query( $sqlcmd ); if (! $TCambi) exit( "Errore nel comando SELECT" ); // $riga = mysql_fetch_array($tcambi); while ($riga) { $divisa = $riga[ Divisa ]; $valore = $riga[ Valore ]; /* * elemento di array $valute * */ $valute[$divisa] = $valore; $riga = mysql_fetch_array($tcambi); Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 39 13

14 // ---- Esecuzione dell interrogazione. echo "<HR>"; echo <h2>valute in archivio</h2><br /> echo "<table border>"; echo "<tr> <th>divisa</th> <th>valore</th> </tr>"; $riga = mysql_fetch_array($tcambi); while ($riga) { $divisa = $riga[ Divisa ]; $valore = $riga[ Valore ]; echo "<tr> <td>$divisa</td> <td>$valore</td> </tr>"; $riga = mysql_fetch_array($tcambi); echo "</table>"; echo "<HR>"; Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 40 // // cancellazione di una riga di TCambi // $divisa = $_GET(divisa); $divisa = Maiuscolo( trim($divisa) ); if ($divisa = EURO ) exit( Operazione non ammessa per Euro ); // ---- Apertura conessione e scelta del DB omessi $sqlcmd = "DELETE FROM TCambi";. "WHERE Divisa = '$divisa'"; echo "Comando in esecuzione: $sqlcmd <BR>"; mysql_query($sqlcmd) or exit("errore nel comando DELETE"); echo "Comando eseguito con successo.<br>"; // ---- chiusura della connessione omessa Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 41 14

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

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

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

PHP 5. PHP ed i database. Database e tabelle. Struttura di un DB relazionale. Accesso a database

PHP 5. PHP ed i database. Database e tabelle. Struttura di un DB relazionale. Accesso a database PHP ed i database PHP 5 Accesso a database PHP funziona con molti database relazionale che includono: Oracle Access Postgres SQL Server MySQL Useremo MySQL poiché è semplice da usare, gratuito e molto

Dettagli

PHP 5. Accesso a database

PHP 5. Accesso a database PHP 5 Accesso a database PHP ed i database PHP funziona con molti database relazionali che includono: Oracle Access Postgres SQL Server MySQL Useremo MySQL poiché è semplice da usare, gratuito e molto

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

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

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

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

APPUNTI DI PHP : V INFORMATICA SEZIONE G

APPUNTI DI PHP : V INFORMATICA SEZIONE G APPUNTI DI PHP : V INFORMATICA SEZIONE G Prof. Conti R. mysql_connect() Apre una connessione verso un DB MySQL. $db = mysql_connect([$db_host[, $db_username[, $db_password[, $newlink[,$clientflags]]]]]);

Dettagli

Esercizi ed appunti PHP

Esercizi ed appunti PHP Indice 1. Informazioni sulla versione PHP installata... 2 2. Generatore di numeri random... 2 3. Contatore di visitatori... 2 4. Programma di inserimento di un nuovo record in un file... 4 scrivi_record.htm...

Dettagli

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

Laboratorio Progettazione Web PHP e MySQL. Andrea Marchetti IIT-CNR 2013/2014 Laboratorio Progettazione Web PHP e MySQL Andrea Marchetti IIT-CNR 2013/2014 Architettura di una applicazione Web Browser Web HTTP Server Web API Dati Presentation Application Storage PHP e DataBase Quando

Dettagli

MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.b Interazione con un database (MySQL Server)

MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.b Interazione con un database (MySQL Server) MODULO 1 PARTE 3 Programmazione (scripting) server-side con PHP 3.b Interazione con un database (MySQL Server) Goy - a.a. 2009/2010 Programmazione Web 1 Informazione persistente Se vogliamo tener traccia

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

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

2. Costruire un database con Apache, PHP e MySql

2. Costruire un database con Apache, PHP e MySql 2. Costruire un database con Apache, PHP e MySql Lo scopo di questa esercitazione è realizzare un server web e costruire un database accessibile attraverso Internet utilizzando il server Apache, il linguaggio

Dettagli

La principale particolarità del web dinamico è la possibilità di variare i contenuti delle pagine in base alle richieste degli utenti.

La principale particolarità del web dinamico è la possibilità di variare i contenuti delle pagine in base alle richieste degli utenti. La principale particolarità del web dinamico è la possibilità di variare i contenuti delle pagine in base alle richieste degli utenti. Questa possibilità si materializza attraverso i meccanismi che permettono

Dettagli

Corso di Web Programming

Corso di Web Programming Corso di Web Programming 11. PHP - Complementi Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea in Informatica Applicata

Dettagli

Perchè un database? Perchè un database? Tipi di DataBase. Scegliere un database. ! Sicurezza. ! Evitare la ridondanza. ! Architettura multilivello

Perchè un database? Perchè un database? Tipi di DataBase. Scegliere un database. ! Sicurezza. ! Evitare la ridondanza. ! Architettura multilivello ! Evitare la ridondanza Perchè un database? Avere PHP che assembla le pagine velocemente da un modello ed un DB è un esperienza unica. Con lo sforzo di programmazione di una pagina, si possono produrre

Dettagli

ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE CORSO SPERIMENTALE Progetto ABACUS SIMULAZIONE PROVA SCRITTA DI INFORMATICA

ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE CORSO SPERIMENTALE Progetto ABACUS SIMULAZIONE PROVA SCRITTA DI INFORMATICA Istituto di Istruzione Superiore Alessandrini - Marino ESAME DI STATO DI ISTITUTO TECICO IDUSTRIALE CORSO SPERIMETALE Progetto ABACUS SIMULAZIOE PROVA SCRITTA DI IFORMATICA La società PcTeramo srl è una

Dettagli

PHP e Structured Query Language

PHP e Structured Query Language Esercitazioni del corso di Tecnologie per la Comunicazione Aziendale PHP e Structured Query Language Marco Loregian loregian@disco.unimib.it www.siti.disco.unimib.it/didattica/tca2008 Interrogazioni (ripasso)

Dettagli

Utilizzare PHP 5. Le variabili GET e POST

Utilizzare PHP 5. Le variabili GET e POST Utilizzare PHP 5 Corso Interazione Uomo Macchina AA 2005/2006 Le variabili GET e POST La principale particolarità del web dinamico è la possibilità di variare i contenuti delle pagine in base alle richieste

Dettagli

bool mysql_select_db([string database_name [,resource link_identifier]]) Connessione ad un server MySQL vuole conettere

bool mysql_select_db([string database_name [,resource link_identifier]]) Connessione ad un server MySQL vuole conettere Connessione ad un server MySQL resource mysql_connect ([string server [, string username [, string password [, bool new_link [, int client_flags]]]]]) server nome o indirizzo del server username nome utente

Dettagli

PHP. Per poter interagire con i dati che si trovano sul server remoto occorrono strumenti server-side.

PHP. Per poter interagire con i dati che si trovano sul server remoto occorrono strumenti server-side. PHP Il linguaggio HTML e i linguaggi di scripting come Javascript impongono alcune limitazioni alle applicazioni che si possono realizzare : per esempio non è possibile costruire un sito Web che consenta

Dettagli

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE SITO E-COMMERCE

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE SITO E-COMMERCE RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE SITO E-COMMERCE CHIARA FERRARI 5I MERCURIO INDICE: 1. TRACCIA DEL PROBLEMA 2. SVILUPPO DEL PROGETTO (ENTITA, ATTRIBUTI) 3. SCHEMA E-R DELLA BASE DEI

Dettagli

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

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database Corso di Informatica Modulo T3 B3 Programmazione lato server 1 Prerequisiti Architettura client/server Conoscenze generali sui database 2 1 Introduzione Lo scopo di questa Unità è descrivere gli strumenti

Dettagli

Un client su arduino invia i dati acquisiti ad un database

Un client su arduino invia i dati acquisiti ad un database Un client su arduino invia i dati acquisiti ad un database PROBLEMA Si vogliono inviare, periodicamente, i dati acquisiti da alcuni sensori ad un database presente su di un server. Arduino con shield Ethernet

Dettagli

PHP E MYSQL CREAZIONE DI UN NUOVO DATABASE DAL PHPMYADMIN

PHP E MYSQL CREAZIONE DI UN NUOVO DATABASE DAL PHPMYADMIN PHP E MYSQL CREAZIONE DI UN NUOVO DATABASE DAL PHPMYADMIN Il metodo migliore per creare nuovi DB è quello di usare l interfaccia del PHPMYADMIN (che viene installata automaticamente con il pacchetto easy

Dettagli

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA GESTIONE MEDIAWORLD

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA GESTIONE MEDIAWORLD Baroni Nicoletta, Carini Giulia, Valentina Porchera, Christian Pala 4C Mercurio RELAZIONE SCRITTA RELATIVA AL PROGRAMMA GESTIONE MEDIAWORLD Traccia del problema: Realizzare la procedura in php con Mysql

Dettagli

4 Pubblicare i dati MySQL

4 Pubblicare i dati MySQL 4 Pubblicare i dati MySQL sul Web Eccoci: questo è ciò che probabilmente vi interessava di più! In questo capitolo imparerete le procedure per prendere delle informazioni contenute in un database per poi

Dettagli

Anno 2013 Informatica ABACUS

Anno 2013 Informatica ABACUS Anno 2013 Informatica ABACUS Testo Una Società Aeroportuale commissiona lo sviluppo di un software per la gestione dei controlli passeggeri e merci nei vari punti di dogana presenti in un Aeroporto Internazionale.

Dettagli

Esercitazione PAM. (Php Apache MySQL)

Esercitazione PAM. (Php Apache MySQL) Prerequisiti: Esercitazione PAM (Php Apache MySQL) Installazione del server Apache: avvenuta; Installazione del server Php: avvenuta; Sincronizzazione dei due server: avvenuta. Abstract: L esercitazione

Dettagli

PHP Survival Kit (Ovvero gestire un database MySQL tramite PHP)

PHP Survival Kit (Ovvero gestire un database MySQL tramite PHP) PHP Survival Kit (Ovvero gestire un database MySQL tramite PHP) Augusto Scatolini (webmaster@comunecampagnano.it) (a.scatolini@linux4campagnano.net) Miniguida n. 183 Ver. 1.0 aprile 2013 La prima guida

Dettagli

RELAZIONE E-COMMERCE

RELAZIONE E-COMMERCE RELAZIONE E-COMMERCE di Jessica Gregoire Istituto Tecnico Economico Agostino Bassi Anno scolastico 2012/2013 1 INDICE Traccia del problema : pagina 2 Analisi di massima: pagina 2 Analisi al dettaglio:

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

PHP: form, cookies, sessioni e. Pasqualetti Veronica

PHP: form, cookies, sessioni e. Pasqualetti Veronica PHP: form, cookies, sessioni e mysql Pasqualetti Veronica Form HTML: sintassi dei form 2 Un form HTML è una finestra contenente vari elementi di controllo che consentono al visitatore di inserire informazioni.

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

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

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

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Si consiglia di creare il data base, inserire i dati nelle tabelle, provare

Dettagli

Presentazione del progetto

Presentazione del progetto Esempio Progetto PHP Un piccolo negozio online CORSO: Master di primo livello in tecnologie sicurezza web e networking Docente: Dott.ssa Daniela Remogna www.fimietta.it 1 Presentazione del progetto L azienda

Dettagli

Gestione Orario Lezioni: Schema del Database

Gestione Orario Lezioni: Schema del Database Gestione Orario Lezioni: Schema del Database corsi corso studenti studente anno anno docente orario id corso giorno ora1 docenti docente dipartimento email ora2 aula aule aula capienza 1 Gestione Orario

Dettagli

Appunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov.

Appunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov. Appunti di MySql Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov. Indice generale avviare la shell mysql...2 comandi SQL per la gestione del database (DDL)...2 visualizzare l'elenco

Dettagli

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

Corso di Sicurezza Informatica. Sicurezza del software. Ing. Gianluca Caminiti Corso di Sicurezza Informatica Sicurezza del software Ing. Gianluca Caminiti SQL Injection Sommario Premessa sul funzionamento dei siti dinamici SQL Injection: Overview Scenari di attacco: Errata gestione

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

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

PHP - Storia. Inizialmente sviluppato da Rasmus Lerdorf come serie di script CGI PHP PHP - Storia Inizialmente sviluppato da Rasmus Lerdorf come serie di script CGI Al progetto si unirono Zeev Suraski e Andi Gutmans che ne scrissero l'interprete Zend Oggi è alla versione 5 e può essere

Dettagli

Applicazione client-server in PHP con database MySQL

Applicazione client-server in PHP con database MySQL 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

Dettagli

Tecnologie e Programmazione Web

Tecnologie e Programmazione Web Presentazione 1 Tecnologie e Programmazione Web Html, JavaScript e PHP RgLUG Ragusa Linux Users Group SOftware LIbero RAgusa http://www.solira.org - Nunzio Brugaletta (ennebi) - Reti 2 Scopi di una rete

Dettagli

A. A. 2014-2015. PHP: Hypertext Preprocessor

A. A. 2014-2015. PHP: Hypertext Preprocessor Corso di Laurea Magistrale in Ingegneria Gestionale Corso di Sistemi Informativi: II Modulo A. A. 2014-2015 PHP: Hypertext Preprocessor 1 Contenuti Introduzione: caratteristiche del linguaggio ed installazione

Dettagli

Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE

Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE Pag. 1/1 Sessione ordinaria 2010 Seconda prova scritta Ministero dell Istruzione dell Università e della Ricerca M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE CORSO DI ORDINAMENTO Indirizzo: INFORMATICA

Dettagli

3. Programmazione con le pagine ASP classiche

3. Programmazione con le pagine ASP classiche LIBRERIA WEB 3. Programmazione con le pagine ASP classiche 1. Le pagine ASP in generale ASP (Active Server Pages) è una tecnologia Microsoft che consente di scrivere codice eseguibile (script) lato server,

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

Indice. 1.13 Configurazione di PHP 26 1.14 Test dell ambiente di sviluppo 28

Indice. 1.13 Configurazione di PHP 26 1.14 Test dell ambiente di sviluppo 28 Indice 25 184 Introduzione XI Capitolo 1 Impostazione dell ambiente di sviluppo 2 1.1 Introduzione ai siti Web dinamici 2 1.2 Impostazione dell ambiente di sviluppo 4 1.3 Scaricamento di Apache 6 1.4 Installazione

Dettagli

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

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,

Dettagli

2 Anno 2003 - Informatica ABACUS

2 Anno 2003 - Informatica ABACUS Testo Un vivaio vuole realizzare una base di dati per gestire le sue attività di vendita di piante e le sue attività esterne. Si vogliono memorizzare, oltre alle informazioni generali sulle diverse specie

Dettagli

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE TABELLA ATTORI

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE TABELLA ATTORI Nicoletta Barbaro 4C Mercurio TRACCIA DEL PROBLEMA: RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE TABELLA ATTORI Un'azienda che distribuisce film in formato dvd chiede ad una software house(4c mercurio)

Dettagli

Dott.ssa Adriana Pietramala. Dott.ssa Maria Vittoria Avolio

Dott.ssa Adriana Pietramala. Dott.ssa Maria Vittoria Avolio Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala a.pietramala@mat.unical.it Dott.ssa Maria Vittoria Avolio avoliomv@unical.it Funzioni predefinite substr(stringa,

Dettagli

Lavorare con MySQL Parte Prima.

Lavorare con MySQL Parte Prima. Lavorare con MySQL Parte Prima. Data la particolarità dell argomento, ho deciso di dividerlo in due lezioni. Nella prima, si parlerà diffusamente di MySQL, cos è un DBMS, cos è l SQL, i campi supportati

Dettagli

MySQL Command Line Client: operazioni fondamentali

MySQL Command Line Client: operazioni fondamentali MySQL Command Line Client: operazioni fondamentali INTRODUZIONE Il RDBMS MySQL, oltre a fornire un applicazione che abbia un interfaccia user-friendly, ha a disposizione anche un altro client, che svolge

Dettagli

Nozioni di base sull utilizzo di PHP e di MySQL

Nozioni di base sull utilizzo di PHP e di MySQL Nozioni di base sull utilizzo di PHP e di MySQL Che cos è PHP? Mi sento in dovere prima di iniziare ad illustrare le nozioni di base di PHP introdurre dicendo PHP che cos è in sostanza; fino a qualche

Dettagli

Laboratorio di Tecnologie Web Laurea in Scienze e Tecnologie Multimediali

Laboratorio di Tecnologie Web Laurea in Scienze e Tecnologie Multimediali Laboratorio di Tecnologie Web Laurea in Scienze e Tecnologie Multimediali Docente: Carlo Drioli 31 marzo 2015 Esempio I prova infracorso Esercizio 1 Si consideri un applicazione per la gestione di menu

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

ASP: DOMANDE E RISPOSTE (Q&A)

ASP: DOMANDE E RISPOSTE (Q&A) Autore: Classe: Nicola Ceccon QUINTA INFORMATICA (5IA) Anno scolastico: 2003/2004 Scuola: Itis Euganeo ASP: DOMANDE E RISPOSTE (Q&A) Dispensa La dispensa presenta i contenuti fondamentali di ASP nella

Dettagli

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

Costruzione di Sit Web con PHP e MySQL. Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query Costruzione di Sit Web con PHP e MySQL Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query Esercitazione In questa lezione si farà insieme una seconda esercitazione che

Dettagli

Sicurezza Informatica: Tecniche di SQL INJECTION

Sicurezza Informatica: Tecniche di SQL INJECTION Sicurezza Informatica: Tecniche di SQL INJECTION Pietro Bongli Aprile 2004 N.B. L'informazione contenuta in queste pagine è divulgata per scopi puramente didattici e non per ni illegali. Structured Query

Dettagli

Interazione con l utente : i moduli.

Interazione con l utente : i moduli. Interazione con l utente : i moduli. Nelle lezioni fin qui riportate, non abbiamo mai trattato l input di utente. Nelle applicazioni web, l input dell utente si acquisisce tramite i moduli (o FORM) HTML.

Dettagli

M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE

M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE Pag. 1/1 Sessione ordinaria 2009 Seconda prova scritta M070 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE CORSO DI ORDINAMENTO Indirizzo: INFORMATICA Tema di: INFORMATICA (Testo valevole per i corsi di

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

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

Dettagli

Introduzione a PHP Gestione dei Dati e della Conoscenza

Introduzione a PHP Gestione dei Dati e della Conoscenza Introduzione a PHP Gestione dei Dati e della Conoscenza Diego De Cao, Roberto Basili {decao,basili}@info.uniroma2.it a.a. 2008/2009 PHP Overview PHP (acronimo ricorsivo per "PHP: Hypertext Preprocessor")

Dettagli

PYTHON Inviare dati con i form A cura di Silvio Bonechi [sabandini_at_tiscali_dot_it] per http://www.pctrio.com

PYTHON Inviare dati con i form A cura di Silvio Bonechi [sabandini_at_tiscali_dot_it] per http://www.pctrio.com PYTHON Inviare dati con i form A cura di Silvio Bonechi [sabandini_at_tiscali_dot_it] per http://www.pctrio.com 10.07.2006 Ver. 1.0 In questo articolo vedremo come gestire con un FORM l invio di dati ad

Dettagli

SQL Injection The dark side of webapplication *** Siamo davvero certi che chi gestisce i nostri dati sensibili lo faccia in modo sicuro?

SQL Injection The dark side of webapplication *** Siamo davvero certi che chi gestisce i nostri dati sensibili lo faccia in modo sicuro? SQL Injection The dark side of webapplication *** Siamo davvero certi che chi gestisce i nostri dati sensibili lo faccia in modo sicuro? Che cos'e' SQL? Acronimo di 'Structured Query Language E' un linguaggio

Dettagli

PHP + MySQL. Programmazione lato server. Cosa vediamo. MySQL. MySQL: comandi utili. MySQL: accesso al server. web server.

PHP + MySQL. Programmazione lato server. Cosa vediamo. MySQL. MySQL: comandi utili. MySQL: accesso al server. web server. Cosa vediamo web server Programmazione lato server PHP + MySQL request response web client database server Cosa vediamo MySQL browser Apache PHP engine MySQL server MySQL is a very fast, robust, relational

Dettagli

WHITE PAPER Per Sql-Injection si intendono comunemente tutti quegli attacchi ad un'applicazione, solitamente Web, in cui il programma esegue query su di un database SQL utilizzando variabili passate dall'utente

Dettagli

RenderCAD S.r.l. Formazione

RenderCAD S.r.l. Formazione Corso Descrizione La durata di questo corso è complessivamente di ore 150 di cui 85 ore di teoria, 35 ore di pratica e 30 ore di stage in azienda. Nel nostro territorio esiste una richiesta di tale figura,

Dettagli

RELAZIONE RELATIVA ALLA GESTIONE DEL SITO DI E-COMMERCE

RELAZIONE RELATIVA ALLA GESTIONE DEL SITO DI E-COMMERCE Gabriele Fiorani 5^D Mercurio 2012/2013 RELAZIONE RELATIVA ALLA GESTIONE DEL SITO DI E-COMMERCE TRACCIA DEL PROBLEMA Realizzare un sito di tipo e-commerce che consenta di gestire l intera procedura informatica

Dettagli

Laboratorio di reti II: Gestione di database lato server

Laboratorio di reti II: Gestione di database lato server Laboratorio di reti II: Gestione di database lato server Stefano Brocchi brocchi@dsi.unifi.it 23 marzo, 2009 Stefano Brocchi Laboratorio di reti II: Database 23 marzo, 2009 1 / 32 Uso di database lato

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 2 Raffaella Gentilini 1 / 45 Sommario 1 Il DDL di SQL: Cancellazione ed Aggiornamento di una BD Cancellazione di Schemi, Tabelle, e Domini Aggiornamento di Tabelle

Dettagli

2104 volume III Programmazione

2104 volume III Programmazione 2103 SQLite Capitolo 77 77.1 Utilizzo generale................................. 2104 77.1.1 Utilizzo di sqlite3».......................... 2104 77.1.2 Copie di sicurezza............................ 2106

Dettagli

PHP + MySQL. Programmazione lato server. Cosa vediamo. web server. database server. request. response. web client

PHP + MySQL. Programmazione lato server. Cosa vediamo. web server. database server. request. response. web client Programmazione lato server PHP + MySQL Cosa vediamo web server request response web client database server 1 Cosa vediamo browser Apache PHP engine MySQL server MySQL MySQL is a very fast, robust, relational

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

Guida a PHP. Primi esempi

Guida a PHP. Primi esempi Guida a PHP Php è un modulo aggiuntivo per web server che permette di creare delle pagine web dinamiche. Una pagina in Php è composta sia da tag html, sia da parti in codice di programmazione Php. Ogni

Dettagli

Metodologie Informatiche Applicate al Turismo

Metodologie Informatiche Applicate al Turismo Metodologie Informatiche Applicate al Turismo 9. HTML Parte II Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea in Scienze

Dettagli

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7 Il trattamento dei dati database: il linguaggio SQL seconda parte Prof. Valle D.ssa Folgieri Lez9 15.11.06 Trattamento dati. Database: il

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

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL Basi di dati Il linguaggio SQL teoria e pratica con Microsoft Access Riepilogando Nelle basi di dati esiste 1. una parte invariante nel tempo, lo schema, costituita dalle caratteristiche dei dati (nomi

Dettagli

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL Riepilogando Basi di dati Il linguaggio SQL Nelle basi di dati esiste 1. una parte invariante nel tempo, lo schema, costituita dalle caratteristiche dei dati (nomi degli attributi, domini, 2. una parte

Dettagli

DUE GRUPPI DI COMANDI

DUE GRUPPI DI COMANDI LEZIONE16 SQL DDL PAG. 1 / 9 PROF. ANDREA ZOCCHEDDU LEZIONE16 SQL DDL LINGUAGGIO SQL DATA DESCRIPTION LANGUAGE DUE GRUPPI DI COMANDI I comandi del linguaggio SQL sono divisi in due grandi gruppi che formano

Dettagli

Università degli Studi di Cagliari Corso di Laurea in Ingegneria delle Telecomunicazioni. http://www.diee.unica.it/~giacinto/bd

Università degli Studi di Cagliari Corso di Laurea in Ingegneria delle Telecomunicazioni. http://www.diee.unica.it/~giacinto/bd Università degli Studi di Cagliari Corso di Laurea in Ingegneria delle Telecomunicazioni BASI DI DATI http://www.diee.unica.it/~giacinto/bd Esercitazione su PHP & PostgreSQL Docente: Giorgio Giacinto A.A.

Dettagli

MANUALE ESSENZIALE MYSQL

MANUALE ESSENZIALE MYSQL Autore: Classe: Luciano Viviani TERZA INFORMATICA SERALE (3IS) Anno scolastico: 2003/2004 Scuola: Itis Euganeo MANUALE ESSENZIALE MYSQL Manuale La dispensa vuole fornire agli studenti delle classi quinte

Dettagli

IL DAT A B A S E DI ALGE B R A N D O

IL DAT A B A S E DI ALGE B R A N D O IL DAT A B A S E DI ALGE B R A N D O Un progetto di: Davide Valeriani Matricola 190883 davide.valeriani@studenti.unipr.it Corso di laurea in Ingegneria Informatica Esame di Basi di Dati A Prof. Stefano

Dettagli

Eprogram ITIS V anno Unità 6 - PHP e MySQL

Eprogram ITIS V anno Unità 6 - PHP e MySQL Eprogram ITIS V anno Unità 6 - PHP e MySQL Compito in classe proposto Un grande magazzino utilizza un database per gestire le vendite dei prodotti. La tabella PRODOTTI contiene le informazioni relative

Dettagli

Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica

Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica Istituto di Istruzione Superiore Alessandrini - Marino 1 Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica Descrizione Un azienda commerciale che vende prodotti IT (computers,

Dettagli

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER L architettura CLIENT SERVER è l architettura standard dei sistemi di rete, dove i computer detti SERVER forniscono servizi, e computer detti CLIENT, richiedono

Dettagli

Esame di stato 2002 Banca del tempo

Esame di stato 2002 Banca del tempo Esame di stato 2002 Banca del tempo Traccia Un associazione Banca del Tempo vuole realizzare una base di dati per registrare e gestire le attività dell associazione. La Banca del Tempo (BdT) indica uno

Dettagli

Introduzione a MySQL

Introduzione a MySQL Introduzione a MySQL Cinzia Cappiello Alessandro Raffio Politecnico di Milano Prima di iniziare qualche dettaglio su MySQL MySQL è un sistema di gestione di basi di dati relazionali (RDBMS) composto da

Dettagli

SQL -DDL. FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza)

SQL -DDL. FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza) 26/03/2013 SQL SQL -DDL Esercizio 4.3 Dare le definizioni SQL delle tre tabelle FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza) rappresentando

Dettagli

Pagine Asp. Pagine Asp

Pagine Asp. Pagine Asp Pagine Asp Architettura web Esistono alcune limitazioni alle applicazioni che si possono realizzare in HTML, ad esempio non è possibile costruire un sito web che consenta all utente di accedere ai dati

Dettagli

Metodi per la Gestione dei Dati (lezioni di laboratorio)

Metodi per la Gestione dei Dati (lezioni di laboratorio) Università degli Studi di Modena e Reggio Emilia Facoltà di Scienze della Comunicazione e dell Economia Corso di Laurea in Comunicazione e Marketing Titolare del corso: ing. Stefano SETTI Lezioni di laboratorio

Dettagli

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

Sessione ordinaria 2005 Seconda prova scritta M070 - ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE Istituto di Istruzione Superiore Alessandrini - Marino 1 Sessione ordinaria 2005 Seconda prova scritta M070 - ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE Una etichetta discografica indipendente chiede

Dettagli