Introduzione Benvenuti nella guida completa a PHP5 e MySQL! Gli autori di questo libro, sebbene ammettano di essere di parte, ritengono che il linguaggio di scripting Web PHP possa essere considerato il vincitore senza troppi sforzi fra tutti i prodotti della sua nicchia, di gran lunga il più semplice e il più flessibile fra gli strumenti lato server per creare e far girare velocemente ottimi siti Web. Anche se milioni di programmatori Web sparsi in tutto il mondo potrebbero sbagliarsi, in questo caso particolare, non è così. MySQL è la piattaforma per i database open source più conosciuta e rappresenta la prima scelta per molti per creare siti Web database-backed/php-driven. Cos è PHP? PHP è un linguaggio di scripting Web open source, lato server e incorporato in HTML compatibile con tutti i maggiori server Web (in particolare con Apache). PHP permette di includere parti di codice nelle normali pagine HTML codice che viene interpretato quando le pagine Web vengono passate all utente dal server. PHP inoltre svolge anche la funzione di linguaggio collante, rendendo più semplice la connessione delle pagine Web ai database server-side. Perché PHP? Quasi tutto il Capitolo 1 sarà dedicato a questa domanda. La risposta più breve è che PHP è libero, open source, completo, adatto a tutte le piattaforme, stabile, veloce, progettato in modo chiaro, facile da imparare e lavora bene insieme agli altri sistemi. Cosa c è di nuovo in questa edizione? L intento iniziale degli autori per la stesura di questo libro era di riorganizzare semplicemente l edizione precedente e aggiornarla alla versione 5 di PHP. 00 introduzione PHP.indd XV 06/09/2004 13.00.41
XVI INTRODUZIONE Tuttavia, si sono resi conto che sebbene le edizioni precedenti si fossero occupate anche dell interazione tra PHP e MySQL, i lettori erano stati lasciati completamente all oscuro sul modo in cui si potevano creare e amministrare i database MySQL, e questo li aveva portati a fare molte domande. Di conseguenza, gli autori hanno deciso di rafforzare la parte dedicata a MySQL e di cambiare il titolo del libro. Nuovi aspetti di PHP5 Sebbene la maggior parte delle funzionalità di PHP4 rimangano immutate in PHP5, ci sono stati alcuni profondi cambiamenti. Fra le novità trattate in questo libro, si possono citare: Zend Engine 2 e il nuovo modello a oggetti, con il supporto per gli elementi privati/protetti, le classi astratte e le interfacce; il supporto XML di PHP completamente rimaneggiato, costruito attorno a libmxl2; le eccezioni e la loro gestione. La trattazione di MySQL In questo volume sarà trattata l installazione di MySQL 4.0, la progettazione del database e la sua amministrazione, compresi backup, copia e ripristino. Come nelle edizioni precedenti, gran parte del libro sarà dedicata alle tecniche di scrittura di applicazioni PHP supportate da MySQL. Altro materiale nuovo Oltre alle caratteristiche specifiche di MySQL e PHP5, sono state aggiunte: copertura migliorata dei database oltre a MySQL (livello di interazione tra i database Oracle, PostgreSQL e PEAR); il deposito del codice PEAR; un capitolo sull integrazione fra PHP e Java; capitoli separati sulla gestione degli errori e le tecniche di debugging. Infine, l intero volume è stato riorganizzato, spostando gli argomenti più avanzati alla fine del libro, per fornire ai principianti una rampa di lancio più semplice. Chi ha scritto il libro? Le prime due versioni del libro sono state scritte da Converse e Park, con un capitolo ospite scritto da Dustin Mitchell e technical editing di Richard Lynch. Per questa versione, Clark Morgan si è assunto la maggior parte del lavoro di revisione, con l aiuto di Converse e Park così come di David Wall e Chris Cornell, che ha contribuito anche ai capitoli e si è occupato del technical editing. 00 introduzione PHP.indd XVI 06/09/2004 13.00.44
INTRODUZIONE XVII A chi è rivolto questo libro Questo libro è rivolto a tutti coloro che vogliono realizzare un sito Web che abbia modalità di funzionamento più complesse rispetto a quelle possibili con una pagina HTML statica. All interno di questo pubblico, sono stati presi in considerazione i tre seguenti tipi di persone: progettisti di siti Web che conoscono HTML e che vogliono passare alla creazione di siti Web dinamici; programmatori esperti (C, Java, Perl e così via), senza esperienza Web, che vogliono addentrarsi velocemente nella programmazione Web lato server; programmatori che hanno utilizzato altre tecnologie lato server (per esempio Active Server Pages, Java Server Page, Cold Fusion) e che vogliono migliorarsi o semplicemente aggiungere un altro strumento al loro bagaglio. Si dà per scontato che il lettore abbia familiarità con HTML e abbia le conoscenze fondamentali per lavorare in un ambiente Web, ma oltre a questo non si presuppone alcuna esperienza di programmazione. Per aiutare i programmatori più esperti a risparmiare tempo, sono state incluse diverse note e parti a sé stanti che confrontano PHP con gli altri linguaggi indicando quali capitoli o sezioni possono essere trascurati con tranquillità. Infine si consiglia di consultare le appendici, che offrono consigli specifici per programmatori C, ASP e per i progettisti di HTML puro. Questo volume non è un manuale Il gruppo per la documentazione di PHP ha realizzato un grande manuale in linea all indirizzo www.php.net, fatto (ovviamente) con PHP. Questo volume non è quel manuale o un suo sostituto. Lo si può vedere come complemento del manuale e probabilmente si passerà da uno all altro per ulteriori approfondimenti. In generale si troverà che il manuale in linea è ben comprensibile, copre tutti gli aspetti e le funzioni del linguaggio ma, inevitabilmente, non ha un grande approfondimento dei singoli argomenti. Per contro, in questo libro, sono stati sviluppati gli aspetti più utilizzati o di difficile comprensione, e si sono forniti una base, spiegazioni ed esempi esaurienti. Come è organizzato il libro Questo volume è suddiviso in sei parti, come mostrato dalla sezione seguente. Parte I: PHP: i fondamenti Questa parte è stata pensata con l intento di introdurre velocemente il lettore agli aspetti essenziali di PHP, rimandando alle Parti finali gli aspetti più complessi. 00 introduzione PHP.indd XVII 06/09/2004 13.00.45
XVIII INTRODUZIONE I Capitoli da 1 a 4 fanno da introduzione a PHP e illustrano quanto è necessario sapere per cominciare; i Capitoli da 5 a 10 sono una guida ai più importanti aspetti di PHP (a eccezione dell interazione con i database): la sintassi, i tipi di dati e le funzioni incorporate basilari; il Capitolo 11 è una guida alle insidie più comuni nella programmazione PHP. Parte II: PHP e MySQL La seconda parte del libro è dedicata sia a MySQL sia all interazione fra PHP e MySQL. I Capitoli 12 e 13 danno un orientamento generale sulla programmazione Web con un database SQL, oltre a consigli su come scegliere il sistema di database adatto; il Capitolo 14 copre l installazione e l amministrazione dei database My- SQL, e il Capitolo 15 è dedicato alle funzioni di PHP per MySQL; i Capitoli 16 e 17 contengono studi di casi di interazione fra PHP e MySQL dettagliati e ricchi di codice; i Capitoli 18 e 19 offrono consigli e problematiche specifiche del lavoro con PHP e MySQL. Parte III: Funzioni e tecniche avanzate In questa parte sono trattati gli aspetti più avanzati e difficili di PHP, in generale ciascun capitolo è indipendente, e contiene argomenti quali la programmazione orientata agli oggetti, la gestione delle sessioni, la gestione delle eccezioni, l utilizzo dei cookie e le espressioni regolari. Il Capitolo 32 passa in rassegna le tecniche di debugging e il Capitolo 33 esamina lo stile di programmazione. Parte IV: Connessioni In questa parte sono trattate le tecniche avanzate e gli elementi che entrano in gioco quando PHP comunica con altri servizi, tecnologie, o grandi quantità di codice. I Capitoli da 34 a 36 si occupano dell interazione fra PHP e altre tecnologie utilizzate per i database (postgresql, Oracle e il livello di astrazione del database di PERL); i Capitoli da 37 a 42 si occupano invece di argomenti a sé stanti: PHP e i programmi di posta elettronica, combinare PHP e JavaScript, interazione fra PHP e Java, PHP e XML, servizi Web basati su PHP e creazione di elementi grafici utilizzando la libreria di immagini gd. Parte V: Studi di casi In questa sezione vengono presentati degli studi di casi estesi che riuniscono varie tecniche già mostrate nei capitoli precedenti. 00 introduzione PHP.indd XVIII 06/09/2004 13.00.45
INTRODUZIONE XIX Il Capitolo 43 è una guida alla progettazione e implementazione di un weblog; il Capitolo 44 presenta dettagliatamente un sistema di identificazione utente; il Capitolo 45 mostra come costruire un sistema di valutazione che permetta all utente di dare un voto al contenuto; il Capitolo 46 si occupa dell implementazione di un gioco a quiz, mostrandone il codice per intero; il Capitolo 47 è lo studio del processo di conversione di un sito HTML statico in un sito dinamico in PHP; il Capitolo 48 utilizza la libreria di immagini gd per visualizzare i dati ricavati da un database MySQL. Parte VI: Appendici Alla fine del volume, sono offerte tre appendici a partenza rapida, che possono essere utilizzate da coloro che non conoscono PHP, ma possiedono già familiarità con il C (Appendice A), PERL (Appendice B), o con l HTML puro (Appendice C). Se ci si ritrova in una di queste tre situazione, il consiglio è quello di iniziare con l appendice appropriata per ricavarne un orientamento alle più importanti differenze e una guida per la consultazione del libro. L ultima appendice (la D), rappresenta una guida a importanti risorse, siti Web e mailing list per la comunità PHP. Convenzioni utilizzate in questo volume È stata utilizzato un carattere monospaziato per indicare il codice PHP. Le parti di codice inserite nel testo appaiono in questo modo mentre le intere righe di codice risultano così: print( questo ); Quando è fondamentale la visualizzazione di una pagina Web creata con PHP, è stata inclusa una figura che mostra la schermata. Quando non è importante, è stato mostrato il risultato di una elaborazione testuale PHP in carattere monospaziato. Quando si vuole distinguere un output di PHP visualizzato nel browser dall output PHP (che il browser visualizza), il primo viene chiamato output nel browser. Quando inserito nel contesto di codice, il corsivo indica parti che dovrebbero essere inserite appropriatamente, anziché prese alla lettera. Nel testo normale un termine in corsivo significa una parola o una frase probabilmente poco conosciuta. Che cosa significano le icone In tutto il volume si trovano icone come quelle qui di seguito. Il loro significato è di dare risalto visivo ad alcuni tipi importanti di informazione. 00 introduzione PHP.indd XIX 06/09/2004 13.00.45
XX INTRODUZIONE SUGGERIMENTO Indica gli stratagemmi o le tecniche di PHP che potrebbero non risultare ovvie e che a volte permettono di realizzare qualcosa in modo più semplice o efficace. NOTA Aggiunge ulteriori informazioni o chiarimenti, ma può essere ignorata senza problemi se non si è interessati. Le note in questo libro sono spesso rivolte a un pubblico specifico, per esempio a chi già conosce un particolare linguaggio di programmazione o una tecnologia. ATTENZIONE Indica qualcosa che non funziona come pubblicizzato, che può essere facilmente travisato o utilizzato in modo sbagliato o che possa creare problemi al programmatore. RIFERIMENTO INCROCIATO Viene utilizzata ogni volta che c è un informazione che viene spiegata in altri capitoli o sezioni. Il sito Web e il codice di esempio Il codice presente nel volume è scaricabile dalla sezione Minisito del sito McGraw-Hill, all indirizzo: www.informatica.mcgraw-hill.it. 00 introduzione PHP.indd XX 06/09/2004 13.00.45