Il libro
Programmare in PHP e MySQL, edito da Tecniche Nuove, è la traduzione dell'originale
Learning PHP and MySQL (Second Edition) di
Michele E. Davis e
Jon A. Philips. Lo scopo del libro è avviare, in 18 capitoli e un'appendice, i neofiti all'esteso e potente mondo della programmazione web costituita dal linguaggio PHP e dal database MySQL.
La traduzione, fatta da
Giacomo Fiumara, è resa in un italiano tecnico di buon livello e competenza, raggiungendo lo scopo di introdurre queste tecnologie a
newbie. Dopo una breve introduzione su come è strutturato il libro, il
primo capitolo,
"Contenuto dinamico e Web", spiega le componenti principali di una applicazione PHP, il ruolo di MySQL e Apache e come essi lavorano quando un utente accede a una pagina con contenuto dinamico sul Web.
Il
capitolo secondo,
"Installazione", dettaglia le procedure di installazione per creare un ambiente AMP (per essere esatti WAMP, visto che le procedure scritte sono quelle che si applicano su Windows). A fine capitolo viene fatto accenno all'installazione su Mac e viene descritta anche l'installazione tramite
XAMPP (nulla invece su ambiente
*nix).
Dal
terzo capitolo,
"Alla scoperta di PHP", inizia l'esplorazione del linguaggio PHP, dal semplice
echo “Hello World”;, alla definizione di variabili e alle stringhe e alle sue più semplici operazioni. Il
capitolo quarto,
"Prendere decisioni in PHP", continua a descrivere i mattoni che costituiscono il linguaggio in questione: espressioni, operatori, condizioni, cicli.
Il
quinto capitolo,
"Funzioni", si propone di far capire al lettore come creare una funzione, come trattare i parametri e i valori di ritorno. All'interno di tale capitolo c'è una parte dedicata alla programmazione a oggetti che PHP ha adottato a pieno con la versione 5, ma in parte già accennata nella versione 4. Purtroppo solo poche pagine sono dedicate a questi concetti e il tutto si riduce alla descrizione delle basi: costruttori, ereditarietà e variabili statiche.
Il
capitolo successivo, il
sesto, tratta un argomento, che probabilmente andava spiegato prima di funzioni e classi e dà anche il titolo a questa sezione,
"Array": bidimensionali e multidimensionali, associativi e non, le operazioni per maneggiarli e le principali funzioni presenti già in PHP. Con questi argomenti si conclude la carrellata su PHP e si inizia a parlare di MySQL. Si inizia con i comandi base da riga di comando e la gestione tramite PhpMyAdmin. Non possono poi mancare una descrizione della struttura dei database con il prodotto acquisito da Sun Microsystems e i comandi SQL base per le operazioni semplici e complesse.
Il
capitolo ottavo,
"Le migliori metodologie per i database", approfondisce la progettazione dei database parlando delle relazioni, forme di normalizzazione, indicizzazione, backup e
restore — tramite i comandi
mysqldump e mysql — SQL avanzato e le funzioni messe a disposizione da MySQL per la manipolazione di dati, tipi e tabelle. Dopo questi due capitoli ecco che si inizia a fare lavorare insieme i due
ingredienti.
Il
capitolo nono,
"PHP a colloquio con MySQL", consiglia di slegare dagli script le coordinate per collegarsi a una specifica tabella MySQL, dopodiché gli autori spiegano come usare semplici query di una tabella con due metodologie differenti: tramite le funzioni
built-in di PHP per MySQL e tramite la libreria
DB di
PEAR. Imparato ciò possiamo, con il capitolo successivo, iniziare a lavorare con le form, poiché gli autori spiegano non solo come trattare con tutti i componenti HTML con PHP, ma anche come meglio separare programmazione e visualizzazione web con l'utilizzo dei template di
Smarty.
Nel
capitolo undicesimo,
"PHP pratico", vengono ancora visualizzati metodi di uso comune: operazioni su stringa, manipolazione date, gestione file e uso delle chiamate di sistema. Il filo conduttore che ha portato alla descrizione di come le due tecnologie lavorino insieme viene interrotto dal
dodicesimo capitolo,
"XHTML", nel quale si descrivono le direttive di questo linguaggio di marcatura, facendo luce anche sulle differenze inerenti le varie versioni. A fine capitolo viene anche illustrato come esso può essere generato tramite codice.
Il
capitolo tredicesimo,
"Modificare oggetti MySQL e dati PHP", usa form, funzioni
PEAR DB per fare compiere operazioni su tabelle o righe, come inserimenti, cancellazioni e aggiornamenti. Detto questo, nella gestione di una applicazione web non possono mancare cookie, sessioni e controllo degli accessi che è proprio l'argomento del
quattordicesimo capitolo. In questa sezione vengono usate le funzioni messe a disposizione dal linguaggio PHP per la gestioni dei cookie e delle sessioni, con tutti i pro e i contro che queste tecniche hanno. Diversamente, per il controllo degli accessi gli autori consigliano l'utilizzo della libreria
PEAR Auth_HTTP.
Non poteva mancare in questa trattazione un capitolo dedicato alla sicurezza per affrontare i vari errori da evitare nella programmazione di applicazioni web e i possibili attacchi, che possono essere perpetrati contro tali programmi. Vengono così spiegate le problematiche di sicurezza dei file
.php e le variabili globali, accanto alla trattazione dell'hosting condiviso, del
cross-site scripting, della
SQL Injection e dei metodi per evitarli.
Stranamente solo nel
capitolo sedicesimo viene affrontata la validazione e gestione degli errori; la prima viene fatta sia tramite JavaScript che PHP, la seconda invece viene utilizzata in concomitanza con una form e realizzata in PHP senza l'utilizzo di framework o template alcuni. La sintesi conclusivo di tutto ciò arriva al penultimo
capitolo, il
diciassettesimo, dove gli autori sfruttano quello che hanno spiegato nel corso dei precedenti capitoli creando da zero un blog, con le tecnologie AMP, JavaScript e i template
Smarty (in questo caso vengono spiegati in maniere più approfondita e con un maggior numero di strutture).
L'
ultimo capitolo è più che altro un'appendice nella quale vengono spiegati dettagli sfuggiti alla trattazione precedente: commenti, formattazione, AJAX, Wiki, Zend Framework, mentre l'appendice vera e propria è invece la raccolta delle risposte corrette alle domande che il lettore trova alla fine di ogni capitolo, relative ai topic imparati man mano che la lettura procede.