Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax

Slides:



Advertisements
Presentazioni simili
Presentazione della tesi di laurea di Flavio Casadei Della Chiesa Newsletter: un framework per una redazione web.
Advertisements

ARI sezione di Parma Sito ariparma ARI sezione di Parma.
Elaborazione di Franco Grivet Chin
INTRODUZIONE Il framework.NET. Un po di storia Sin dalla prima versione del sistema operativo Windows (1990 circa), nacque la necessità di far comunicare.
JavaScript 1. Per cominciare.
Database MySql.
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
PHP.
Utilizzare PHP 5 Corso Interazione Uomo – Macchina AA 2005/2006.
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
IL LINGUAGGIO HTML Il linguaggio html. Il linguaggio html. Utilizzo dei tag. Utilizzo dei tag. Script Browser I link I link Caricamento dei dati sul server.
Laboratorio di Progettazione Web Introduzione AA 2009/2010 Chiara Renso ISTI - CNR -
Connessione con MySQL.
Esercitazione 2 Array, funzioni, form
Università degli Studi di Modena e Reggio Emilia
Università La Sapienza Web programming e programmazione multimediale 1 Web Programming e comunicazione multimediale Lezione 10: PHP.
NESSUS.
JavaScript Laboratorio di Applicazioni Informatiche II mod. A.
JAVASCRIPT DIFFERENZA TRA JAVASCRIPT E JAVA TAG LO SCRIPT OGGETTI LE CLASSI FUNZIONE GESTORE DI EVENTI ELEMENTI DEL LINGUAGGI è un vero e proprio linguaggio.
Corso di Informatica A.A
PHP – Un’introduzione Linguaggi e Traduttori 2003 Facoltà di Economia
Gruppo ISP1 Commessa tuttipunti.org. Sommario Descrizione commessa Organizzazione del lavoro Lavoro svolto Problematiche di sicurezza Impostazioni di.
PHP PHP Hypertext Preprocessor
Introduzione a AJAX - Asynchronous Javascript And Xml
RISORSE WEB Internet Per un uso consapevole delle risorse della Rete
APPLICAZIONI WEB In questo corso impareremo a scrivere un'applicazione web (WA) Marco Barbato - Corso di Applicazioni Web – A.A
Architettura Java/J2EE
Realizzazione siti web Pagine web dinamiche - javascript.
Corso di PHP.
Guida IIS 6 A cura di Nicola Del Re.
Analisi (Analista) Progettazione (Progettista) Sviluppo o Traduzione (Sviluppatore) Documentazione.
Interazione di JavaScript e HTML
Il PHP e il vostro sito cos'è e come funziona. HTML... Linguaggio formattazione Non interattivo Non dinamico.
Sistemi Informativi sul Web
Creare pagine web Xhtlm. Struttura di una pagina.
Introduzione alla programmazione web
Basi di Dati e Sistemi Informativi
Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR -
Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open Source ad un piccolo progetto di Data Base relazionale,
Corso JAVA Lezione n° 11 Istituto Statale di Istruzione Superiore “F. Enriques”
Applicazione Web Informatica Abacus Informatica Classe VIA 2008/2009 N.Ceccon INF (01) Revisione 4.0 settembre 2008.
ASP – Active Server Pages Introduzione Pagine Web Statiche & Dinamiche(ASP)
INTRODUZIONE A JAVASCRIPT
PHP - PHP: Hypertext Preprocessor. Introduzione PHP (acronimo ricorsivo per "PHP: Hypertext Preprocessor") è un linguaggio di scripting general-purpose.
Corso di WebMaster Mercoledì 14 Novembre. Parte I – Introduzione al Corso Lezione 1: Presentazione Descrizione Breve del Corso Semplice Valutazione.
TROVA FILM Progetto di Tecnologie Web anno accademico 2013/2014 DEL VECCHIO GIANLUCA IOVINO PASQUALE
Lezione 8.
JavaScript Generalità Cos'è JavaScript?
Fabrizio Felici LAMP workshop GROsseto Linux Users Group.
Impostare i caratteri. Le prime versioni del linguaggio HTML così come le prime versioni dei browser consentivano unicamente la scelta tra due tipi di.
Introduzione a Javascript
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
Ajax.ptt 1 Asynchronous JavaScript and XML cross-browser XMLHttpRequest()standard w3c firefox,opera,gchrome ActiveXObject("Microsoft.XMLHTTP") ActiveXObject("Msxml2.XMLHTTP")
Programmazione Web PHP e MySQL 1. 2Programmazione Web - PHP e MySQL Esempio: un blog.
Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;
MySQL Database Management System
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
PHP MySQL Accesso a database via web. Connessione Script PHP per la connessione a un server MySQL mysql_connect(nomeServer,nomeUtente,password);
Google Visualization API
Servizi Internet Claudia Raibulet
Joomlahost.it1 Presentato da Fustini Alessandro Myslq DBA e Developer certified Joomlahost.it.
Eprogram SIA V anno.
Eprogram informatica V anno.
Eprogram informatica V anno. Introduzione a PHP Introduzione La diffusione di PHP ha avuto un notevole incremento dalla fine degli anni Novanta a oggi,
PHP.  HTML (Hyper Text Markup Language)  CSS (Cascading Style Sheets)  Javascript (linguaggio di programmazione client)  PHP ( Hypertext Preprocessor.
Corso Web Developer Lezione 2 – HTML e ASP. I limiti delle pagine HTML Nella lezione precedente abbiamo visto che con HTML e JavaScript è possibile scrivere.
Eprogram informatica V anno. Programmare in rete.
PHP HyperText Prepocessor.  Linguaggio di scripting lato server sviluppato per generare pagine web.  Permette ad un sito web di diventare dinamico 
ASP – Active Server Pages - 1 -Giuseppe Tandoi ASP – Active Server Pages Tecnologia per lo sviluppo di pagine dinamiche.
Corso di Ingegneria del Web e Applicazioni A A
Transcript della presentazione:

Progettazione e sviluppo di applicazioni web 2.0 con PHP e Ajax

Sommario Definizione del web 2.0 Caratteristiche dei siti web 2.0 Infrastrutture tecnologiche La piramide del web 2.0 Esempi di siti web 2.0

Sommario PHP - Storia PHP – Significato dell'acronimo PHP - Caratteristiche PHP – Esempio PHP – Stringhe PHP – Array PHP – Funzioni interne

Sommario PHP – MySQL PHP – MySQL - Connessione PHP – MySQL – Query PHP – MySQL – Risultato di query PHP – MySQL – Altre funzioni PHP – Framework PHP – Sicurezza

Sommario Ajax Ajax – JSON WebLogiX STOOPHP STOOPHP - Prospettive

Definizione del web 2.0 ”Web 2.0” indica una nuova generazione di siti web che cercando di coinvolgere maggiormente l'utente Non si tratta spesso di nuove tecnologie ma di un modo diverso di utilizzare tecnologie già esistenti

Caratteristiche dei siti web 2.0 Dinamicità dei contenuti aggiornabili senza la necessità di dover conoscere HTML, FTP Interfaccie ricche che cercano di portare l'esperienza desktop sul web Grafica accattivante: il web 2.0 significa comunicazione e business

Caratteristiche dei siti web 2.0 Pubblicità inerenti al contesto (Adsense)‏ Organizzazione dei contenuti in base alla loro popolarità anziché tassonomia Syndication Social bookmarking Ottimizzazione per motori di ricerca

Infrastrutture tecnologiche Linux Apache (o Lighttpd)‏ Mysql PHP (o Ruby, Python)‏ in una parola sola LAMP

Infrastrutture tecnologiche XHTML CSS Javascript per comunicazioni asincrone (Ajax)‏ ... a questo punto occorre solo convincere i navigatori ad utilizzare un browser che rispetti gli standard e aggiornato.

La piramide del web 2.0

Esempi di siti web 2.0 Youtube Flickr Digg Wikipedia ... qualsiasi blog

Web 2.0 I siti web 2.0, compresi quelli citati, sono dinamici sotto tutti i punti di vista, anche laddove non dovrebbero esserlo, cioè nel codice: sono siti che rimangono sempre in beta

Web 3.0 Il Web 2.0 è quindi un fenomeno di comunicazione e marketing supportato dalla programmazione web a cui molti non sono ancora abituati, ma occorre farlo in fretta perché le sfide del Web 3.0 incombono

Web 3.0 GGG Giant Global Graph – più interattività tra i siti Connettività a banda ”larghissima” da qualsiasi apparecchio Navigazione in 3 dimensioni stile ”Second Life”

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 usato anche per shell script e applicazioni stand-alone

PHP – Significato dell'acronimo Si tratta di un acronimo ricorsivo e ”oggi” sta per PHP: Hypertext Preprocessor Lerdorf non ne ha comunicato il significato originario, che secondo la tradizione sembra essere Personal Home Page

PHP - Caratteristiche Sintassi basata sul C Tipizzazione debole Orientato agli oggetti (in particolare dalla versione 5)‏ Alto livello di astrazione

PHP – Caratteristiche Le variabili hanno il prefisso $ e ciò le permette di essere utilizzate all'interno di stringhe. Alcune sono predefinite $_GET: array che contiene le variabili passate alla pagina $_POST: array che contiene variabili provenienti da from

PHP – Esempio <?php if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) { ?> <h3>strpos() must have returned non-false</h3> <p>You are using Internet Explorer</p> } else { <h3>strpos() must have returned false</h3> <p>You are not using Internet Explorer</p> }

PHP - Esempio strpos è una funzione una stringa in un'altra In questo caso è stata cercata la stringa MSIE all'interno di una variabile predefinita, cioé $_SERVER['HTTP_USER_AGENT'],che identifica il browser dell'utente A seconda del risultato, vengono mostrate due porzioni di HTML differenti

PHP – Stringhe Anche se permane la libertà di trattare le stringhe a basso livello come in C, possiamo avvalerci di numerose funzioni per la ricerca, la sostituzione, il padding, la formattazione, l'hashing, la trattazione di HTML...

PHP – Array La libertà sugli array è totale: possiamo usare qualsiasi tipo di variabile per gli indici, qualsiasi tipo di variabile per i valori, e mescolare i tipi

PHP – Array <?php $arr = array("foo" => "bar", 12 => true); echo $arr["foo"]; // bar echo $arr[12];    // true ?>

PHP - Array Per eseguire dei cicli sugli elementi di un array, non dobbiamo preoccuparci delle dimensioni, grazie al costrutto foreach, che per ogni elemento dell'array permette di eseguire degli statement Ad ogni ciclo abbiamo a disposizione l'indice e il valore, in variabili con scope limitato

PHP – Array foreach (array_expression as $value)‏ statement foreach (array_expression as $key => $value)‏

PHP – Array Anche per gli array sono presenti numerose funzioni per eseguire ricerche, sostituzioni, operazioni di tipo insiemistico, e per trattare gli stack

PHP – Funzioni interne In PHP sono già presenti diverse funzioni per accedere a decine di database, collegarsi a server FTP, elaborare immagini Il primo livello di espansione del linguaggio è dato da PECL, insieme di librerie scritte in C che spesso vengono incorporate nelle successive release di PHP

PHP - MySQL In PHP 4 le funzioni per accedere al database MySQL erano incorporate al linguaggio: era ovvio che le persone interessate a PHP erano interessate anche a questa caratteristica In PHP 5 occorre abilitare il supporto in fase di compilazione o caricare il relativo modulo a runtime, per incompatibilità di licenze

PHP – MySQL In PHP è stato scritto un ottimo client per MySQL, PHPMyAdmin, che fornisce un'interfaccia grafica per la gestione completa del database Ovviamente occorre avere un webserver sulla stessa macchina in cui è in esecuzione il servere MySQL

PHP – MySQL - Connessione $link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')‏ or die('Could not connect: ' . mysql_error()); echo 'Connected successfully'; mysql_select_db('my_database') or die('Could not select database'); ?>

PHP – MySQL – Query <?php $query = 'SELECT * FROM my_table'; $result = mysql_query($query) or die('Query failed: ' . mysql_error()); ?>

PHP – MySQL – Risultato di query echo "<table>\n"; while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { echo "\t<tr>\n"; foreach ($line as $col_value) { echo "\t\t<td>$col_value</td>\n"; } echo "\t</tr>\n"; echo "</table>\n";

PHP – MySQL – Altre funzioni mysql_affected_rows: restituisce il numero di righe che sono state prese in considerazione nell'ultima query eseguita mysql_insert_id: restituisce l'ultima chiave generata se abbiamo eseguito una query di inserimento su una tabella che ha l'opzione auto_increment

PHP – Framework Al giorno d'oggi negli ambienti di produzione è prassi interporre un livello di astrazione tra PHP e il programmatore, cioè un framework Il framework ufficiale è PEAR. Uno dei più utilizzati è Symphony

PHP – Sicurezza Occore prestare attenzione agli attacchi di SQL Injection, Form Injection, Variable Injection. Fondamentale controllare le variabili che arrivano dai form, esposti a tutti

Ajax Ajax è il nome nuovo introdotto dal web 2.0, ma non si tratta di un nuovo linguaggio di programmazione, piuttosto di una tecnica: Asynchronous Javascript and XML

Ajax Il Javascript è una vecchia conoscenza del web, introdotta da Netscape ed in seguito adottata da tutti i browser Spesso i webmaster del Web 1.0 ne abusavano e molti utenti infastiditi da popup e alert lo disattivavano

Ajax Tuttavia se Javascript viene usato bene può arricchire l'esperienza del navigatore e alleggerire il carico di lavoro del server Infatti mentre PHP viene interpretato dal server, Javascript viene interpretato dal browser

Ajax La rivoluzione iniziò quando i sviluppatori di browser iniziarono a includere in Javascript un oggetto capace di effettuare richieste in HTTP al server, in maniera trasparente all'utente Originariamente tale oggetto era stato pensato per ottenere documenti XML

Ajax function CreateXmlHttpReq(handler) { var xmlhttp = null; try { xmlhttp = new XMLHttpRequest(); } catch(e) { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = handler; return xmlhttp;

Ajax Una volta ottenuti dei dati XML tramite richiesta PHP, è possibile cambiare certe parti della pagina già caricata utilizzando le capacità di Javascript di modificare gli elementi del DOM Questo in sintesi è Ajax

Ajax function myHandler() { if (myRequest.readyState == 4 && myRequest.status == 200) { alert(myRequest.responseText); } function esempio3() { myRequest = CreateXmlHttpReq(myHandler); myRequest.open("GET","primo.php"); myRequest.send(null);

Ajax Tuttavia non siamo obbligati a richiedere un documento XML, possiamo richiedere frammenti di HTML, testo semplice Possiamo richiedere documenti statici ma anche documenti generati da PHP in base a nuove indicazioni fornite dall'utente

Ajax – JSON JSON è un formato di codifica che permette in un linguaggio di programmazione di trasformare ad esempio un array in una stringa da decodificare in un altro linguaggio In questo modo possiamo richiedere con Ajax una stringa JSON generata da PHP e convertirla in un array in Javascript

Ajax Questi esempi di Ajax provengono dal documento ”Spaghetti Ajax” di Salvatore Sanfilippo, uno dei primi italiani a trattare questa tecnologia

Ajax Ci sono diversi framework Javascript che permettono di astrarre Ajax, come Prototype, e altri che arricchiscono l'interfaccia, come Scriptaculous Vedere anche mootools e jquery

Problematiche Latenza della comunicazione Javascript è interpretato quindi non è veloce Diversa mentalità di programmazione (asincrona)‏

WebLogiX La WebLogiX è una ditta individuale che si occupa di sviluppo di applicazioni web Tutte le applicazioni si basano su un framework sviluppato in proprio, STOOPHP, che fa uso di programmazione ad oggetti e di Ajax

STOOPHP Con STOOPHP la progettazione dell'applicazione è limitata alla progettazione del database In base alle relazioni tra le tabelle vengono creati elenchi e form Unica condizione: il database deve essere progettato con DBDesigner

STOOPHP In questo modo il cliente che ha commissionato il sito può gestire le sue attività commerciali, turistiche, divulgative e i contenuti del sito stesso senza accedere in FTP o al database

STOOPHP La pagina di gestione è unica e tramite Ajax viene aggiornata in base alle richieste dell'utente I costi di sviluppo sono abbattuti e lo stesso codice utilizzato da più clienti segnala al programmatore i bug in maniera trasparente

STOOPHP - Prospettive Scrivere documentazione per sviluppo e uso Realizzare un sistema di update attraverso SVN Ottimizzare le prestazioni

STOOPHP - Prospettive Studiare in maniera approfondita la sicurezza Riorganizzare il codice in base all'evoluzione di PHP Migliorare la procedura di setup, creando uno strumento di progettazione database che segua lo standard creato