Schema 2 Basi di dati e web: nozioni generali Basi di Dati-IX HTML Basi del linguaggio PHP Corso di Laurea in Informatica PHP e API MySQL Anno Accademico 2013/2014 Interazione con l’utente: forms e gestori Mantenimento dello stato: sessioni e cookies Paolo Baldan Autenticazione [email protected] http://www.math.unipd.it/~baldan BD e WEB Corso di Basi di Dati Friday, May 30, 2014 BD e web Corso di Basi di Dati Friday, May 30, 2014 Basi di dati e web 4 Applicazione web fornisce un servizio all’utente per mezzo dell’infrastruttura WEB Basi di dati e web Introduzione l’utente interagisce con un sito web le pagine sono costruite dinamicamente, sulla base dell’interazione con l’utente (siti dinamici) le informazioni rilevanti per l’applicazione memorizzate in un database Es:. prenotazione on-line, commercio elettronico, home-banking, .... BD e web Friday, May 30, 2014 Friday, May 30, 2014 Corso di Basi di Dati Architettura Client-Server 5 Protocollo HTTP 6 Per una applicazione web occorre aggiungere potere di calcolo e memorizzazione dati a questo modello BD e web Corso di Basi di Dati Friday, May 30, 2014 BD e web Corso di Basi di Dati Friday, May 30, 2014 Architettura di una applicazione WEB 7 Client-side vs. Server side 8 CLIENT Richiesta utente Internet tecnologia server side: peso della computazione sul server template + Pagina HTML SERVER tecnologia client side: peso della computazione sul client dati Web server + tecnologia server-side tecnologia ibrida (soluzione tipica) BD e web Friday, May 30, 2014 Corso di Basi di Dati BD e web Friday, May 30, 2014 Corso di Basi di Dati Tecnologia Client-Side 9 Computazione sul client: Tecnologia Server-Side 10 Computazione sul server - maggior flessibilità e capacità computazionale Script interpretati dal browser, immersi nel codice HTML (es. Javascript) - accesso e memorizzazione dei dati - Tipicamente operazioni semplici e in stretta interazione con l’utente - controllo delle form - gestione eventi (es. rollover) - interattività non immediata (occorre che l’informazione arrivi al server !) Il server fa ben più che restituire pagine HTML/script già esistenti! - pagine dinamiche: create e composte dinamicamente dal server web Eseguibili scaricati (es. Applet) - limitazioni dovute a problemi di sicurezza - capacità di accedere a dati sul server (es. DB) - utente invia dati (es., tramite una form) al server - il server li elabora - restituisce il risultato come documento HTML: - necessità di componenti aggiuntive per l’elaborazione, capaci di costruire Criticità: pagine su richiesta, sulla base delle richieste e dei dati dipendenza dal browser BD e web Corso di Basi di Dati Friday, May 30, 2014 BD e web Corso di Basi di Dati Friday, May 30, 2014 Architettura Server-Side 11 Tecnologia Server-Side: CGI e script embedded 12 CGI (common gateway interface) Eventuali parametri protocollo per interfacciare un web server con un’applicazione esterna il WS invoca, su richiesta del client, un programma (che risiede in opportune Elaborazione cartelle) SELECT... - compilato - intepretato da un interprete che risiede sul server il programma ritorna una pagina HTML Parte statica Parte dinamica Perl, PHP, ma anche Java, C++, ... CGI BD e web Friday, May 30, 2014 Corso di Basi di Dati BD e web Friday, May 30, 2014 Corso di Basi di Dati Tecnologia server side: CGI e script embedded 13 Scripting 14 Script (embedded) il web server include come modulo un motore capace di interpretare il Browser web Richiede uno script linguaggio di scripting Server web es. PHP (PHP Hypertext Preprocessor), ASP (Active server pages), Java Server Pages (JSP), ... Individua lo script Browser web Fornisce la pagina HTML Genera la pagina HTML Parser del linguaggio BD e web Corso di Basi di Dati Friday, May 30, 2014 Analizza lo script BD e web Corso di Basi di Dati Friday, May 30, 2014 Esempio: form HTML 15 Esempio form - Codice Perl 16 Comunicazione tra la pagina contenente la form e componente lato server che In questo caso il “programma” indicato dalla action è un programma PERL gestisce il contenuto della form spedito dall’utente. (ad es. mioperl.pl) Questa componente e’ diversa a seconda della tecnologia usata Parametri <form name=”esempio” action=“programma” method=get|post> <input type=”text” name=”username”> <input type=”radio” name=”color” value=“Rosso”> ... <input type=”submit”> BD e web Friday, May 30, 2014 #!/usr/bin/perl use CGI; $q = new CGI; $color = $q->param('color'); $username = $q->param('username'); print $q->header(); print $q->start_html(-title => 'CGI'); print "Il nome è: $username<br>\n"; print "Il radio button selezionato è: $color<br>"; print $q->end_html; Corso di Basi di Dati BD e web Friday, May 30, 2014 Corso di Basi di Dati Esempio form - Codice PHP 17 Esempio form - Codice ASP 18 In questo caso il “programma” indicato dalla action è una pagina PHP (ed es. In questo caso il “programma” indicato dalla action è una pagina ASP (ed es. miapagina.php) miapagina.asp) <html> <head><title>PHP</title></head> <body> Il nome è: <?php $_GET["username"]; ?> Il radio button selez. è: <?php $_GET["color"]; ?> </body> </HTML> BD e web Corso di Basi di Dati Friday, May 30, 2014 <html> <head><title>ASP</title></head> <body> Il nome è: <% request.querystring(‘username’) %> Il radio button selezionato è:<% request.querystring(‘color’) %> </body> </html> BD e web Corso di Basi di Dati Friday, May 30, 2014 Application server 19 Non solo un HTTP server, integra moduli relativi a componenti server-side Noi ... 20 Noi considereremo Apache Ambiente per costruire applicazioni web MySQL Apache Web server IIS ... Componenti aggiuntive BD e web Friday, May 30, 2014 Motore dinamico lato server PHP (modulo di Apache) PHP ASP JSP ... DB ... L’installazione integrata delle tre componenti non è sempre agevole Così comune che in rete si trovano vari kit di installazione integrati (consigliati) MySQL LAMP (Linux, Apache, MySQL, PHP) Access WAMP, MAMP, XAMPP, ... SQL Server Corso di Basi di Dati BD e web Friday, May 30, 2014 Corso di Basi di Dati