Next Previous Contents

22. PHP Hypertext Preprocessor - Linguaggio di scripting lato server, incorporabile nel codice html, per PostgreSQL

Strumenti di interfaccia al WWW sono reperibili presso:

Per PHP esiste anche un compilatore chiamato Zend, che ne migliora immensamente le prestazioni. Prima di tutto scriverete la vostra applicazione nel linguaggio di scripting PHP, passando attraverso le fasi di sviluppo, collaudo e correzione degli errori. Quando il progetto sarà pronto per l'utilizzo, userete il compilatore Zend per compilare il codice PHP, così da creare eseguibili che gireranno molto rapidamente.

Il vecchio nome di PHP è Professional Home Pages, mentre il nuovo nome è PHP Hypertext Pre-Processor

PHP è un linguaggio di scripting lato server, incorporato nel codice html. PHP permette, come Javascript, di scrivere semplici script nei file .HTML ma, al contrario di JavaScript, PHP non è dipendente dal browser. JavaScript è un linguaggio lato client, incorporabile nel codice html, mentre PHP è un linguaggio lato server. PHP è concettualmente simile al prodotto LiveWire Pro di Netscape. Se vi piace il software gratuito in rapida evoluzione e fornito del codice sorgente, probabilmente vi piacerà anche PHP.

22.1 Le funzionalità più rilevanti

22.2 PHP - Breve storia

Il PHP ha preso vita come un piccolo e semplice wrapper (incapsulatore) CGI scritto in Perl. Il nome di questo primo pacchetto era Personal Home Page Tools, che più tardi si trasformò in Personal Home Page Construction Kit.

Per includere facilmente le query SQL nelle pagine web, fu scritto un tool apposito. Quest'ultimo era, fondamentalmente, un altro wrapper CGI che analizzava sintatticamente le query SQL, e che ha reso facile la creazione di form e tabelle basate su queste query. Questo strumento è stato denominato FI (Form Interpreter).

La versione 2.0 di PHP/FI è una riscrittura completa di questi due pacchetti combinati in un singolo programma. PHP è evoluto verso un semplice linguaggio di programmazione, inglobato nei file HTML. PHP elimina la necessità dei tanti piccoli programmi CGI Perl, permettendovi di posizionare semplici script direttamente nei vostri file HTML. Ciò accelererà le prestazioni complessive delle vostre pagine web, poiché viene eliminato il sovraccarico di lavoro dovuto alle numerose biforcazioni (forking) del Perl. PHP rende anche più facile gestire siti web estesi, posizionando tutti i componenti di una pagina web in un singolo file html. Includendo il supporto per vari database, viene anche reso banale lo sviluppo di pagine web con accesso ai database. Molte persone trovano che l'incorporazione di codice sia molto più facile da gestire, rispetto alla creazione di file HTML e CGI separati.

Oggi PHP/FI è stato rinominato PHP.

22.3 Ebbene, cosa posso fare con PHP ?

La prima cosa su cui porre attenzione, se volete eseguire una pagina con PHP, è che viene aggiunto un titolo, a pié di pagina, con informazioni riguardanti il numero di volte in cui la vostra pagina è stata visitata (purché nel binario sia stata compilata la gestione della registrazione degli accessi). Questa è solo una piccolissima parte di ciò che PHP può fare per voi. Infatti gioca un altro importantissimo ruolo come interprete di form CGI, che rende conto della parte FI del vecchio nome. Per esempio, se create un form su una delle vostre pagine web, avrete bisogno di qualcosa per elaborare l'informazione raccolta da quel form. Anche se volete soltanto passare l'informazione ad un'altra pagina web, dovrete avere un programma CGI che lo faccia per voi. PHP rende estremamente facile ricevere i dati del form, e lavorare con essi.

22.4 Un semplice esempio

Supponete di avere un form:

<FORM ACTION="/cgi-bin/php.cgi/~userid/display.html" METHOD=POST>
<INPUT TYPE="text" name="name">
<INPUT TYPE="text" name="age">
<INPUT TYPE="submit">
<FORM>
Il vostro file display.html potrebbe allora contenere qualcosa come:
<?echo "Ciao $name, hai $age anni!<p>" >
È questa la semplicità! PHP crea automaticamente una variabile per ogni campo di input del form. Potete così usare queste variabili nel file dell'URL, che compare come argomento di ACTION.

Il passo successivo, una volta che avete compreso come usare le variabili, è iniziare a inserire qualche marcatore per la gestione del flusso logico, nelle vostre pagine. Per esempio, se volete visualizzare diversi messaggi al variare dell'input dell'utente, dovreste usare le istruzioni logiche if/else. Sulla scorta dell'esempio sopra riportato, possiamo visualizzare diverse cose, a seconda dell'età che l'utente inserisce. Cambiamo il nostro display.html come segue:

<?
    if($age>50);
        echo "Ciao $name, sei anziano!<p>";
    elseif($age>30);
        echo "Ciao $name, sei molto vecchio!<p>";
    else;
        echo "Ciao $name.";
    endif;
>
PHP fornisce un linguaggio di scripting molto potente, che realizzerà molto più di quanto il precedente esempio dimostri. Vedere la sezione relativa al Linguaggio Script PHP per altre informazioni.

Potete usare PHP anche per configurare i permessi d'accesso alle vostre pagine. Ciò può essere fatto usando un meccanismo incorporato di filtraggio (nella struttura del PHP n.d.t). Con esso potreste, per esempio, specificare che solo persone di certi domini abbiano accesso alla visualizzazione delle vostre pagine; oppure potreste creare una regola che protegga con password certe pagine. Vedere la sezione relativa al Controllo d'accesso per altri dettagli.

PHP è anche in grado di ricevere file da qualsiasi browser web, aderente alle specifiche RFC-1867. Questa caratteristica permette che si possa fare il caricamento sia di testi, sia di binari. Col controllo d'accesso del PHP e le sue funzioni logiche, avete pieno controllo su chi abbia il permesso di caricare un file sul server, e su cosa possa essere fatto con il file una volta che sia stato ricevuto. Leggere la sezione File Upload per altri dettagli.

PHP ha il supporto per il pacchetto del database PostgreSQL. PHP supporta query SQL inserite nei vostri file .HTML .

PHP fornisce anche supporto per il pacchetto di database mysql. PHP supporta le query SQL inserite nei vostri file .HTML .

22.5 Ridirezione CGI

Note su Apache 1.0.x

Impiegare un modulo di ridirezione cgi, con il server Apache, è un buon modo di eseguire PHP. Notate che non dovete preoccuparvi dei moduli di ridirezione, se state usando PHP nella forma di modulo di Apache. Sono disponibili due di questi moduli di ridirezione. Uno di questi è stato sviluppato da Dave Andersen

ed è reperibile presso L'altro è distribuito con Apache, ed è chiamato mod_actions.c. I due moduli sono molto simili. Differiscono leggermente nell'uso. Sono stati testati entrambi, ed entrambi funzionano con PHP.

Cercate, nella documentazione di Apache, le informazioni su come aggiungere un modulo. Generalmente si aggiunge il nome del modulo in un file chiamato Configuration. Se volete usare il modulo mod_actions, la riga da aggiungere è:

Module action_module mod_actions.o

Se state usando il modulo mod_cgi_redirect.c , aggiungete questa riga:

Module cgi_redirect_module mod_cgi_redirect.o

Poi compilate il vostro httpd, ed installatelo. Per configurare la ridirezione CGI dovrete o creare un nuovo tipo MIME nel vostro file mime.types, oppure potete usare il comando AddType nel vostro file srm.conf, per aggiungere il tipo MIME. Il tipo MIME da aggiungere dovrebbe essere qualcosa come questo:

     application/x-httpd-php phtml
Se state usando il modulo mod_actions.c, dovrete aggiungere la seguente riga al vostro file srm.conf :
     Action application/x-httpd-php /cgi-bin/php.cgi
Se state usando mod_cgi_redirect.c, dovreste aggiungere questa riga a srm.conf:
     CgiRedirect application/x-httpd-php /cgi-bin/php.cgi
Non provate ad usare, nello stesso tempo, mod_actions.c e mod_cgi_redirect.c.

Una volta che uno di questi moduli di ridirezione cgi siano stati installati e configurati correttamente, sarete in grado di far eseguire l'analisi sintattica del PHP sui file di estensione .phtml. Per di più, se aggiungete index.phtml alla riga di configurazione chiamata DirectoryIndex del vostro file srm.conf, e se il vostro file index si chiama index.phtml, allora la pagina di massimo livello in una directory sarà automaticamente processata da php.

HTTPD di Netscape

Potete automaticamente ridirigere le richieste di file con una data estensione, e farle gestire da PHP, usando il modulo Redirection CGI del Server Netscape. Questo modulo può essere trovato negli archivi di file dell'home page di PHP. Il file README nel pacchetto, spiega esplicitamente come configurarlo per usarlo con PHP.

HTTPD di NCSA

Attualmente NCSA non supporta i moduli; così, volendo effettuare ridirezioni cgi con questo server, dovrete modificare il codice sorgente del server. Negli archivi di file di PHP esiste una patch, adatta allo scopo, per NCSA 1.5

22.6 Eseguire PHP dalla riga di comando

Se avete compilato la versione CGI di PHP, potete usarla dalla riga di comando semplicemente digitando: php.cgi nome_file, dove nome_file è il file che volete processare. Potete anche creare script PHP autonomi inserendo, sulla prima riga del vostro script, quanto segue:

    #!/usr/local/bin/php.cgi -q
La "-q" sopprime la stampa degli header HTTP. Potete anche non mettere quest'opzione, se volete.

22.7 Pacchetto PHPGem

PHPGem è uno script PHP che accelera la creazione di script PHP specifici per lavorare con le tabelle. Funziona con diversi server SQL come PostgreSQL, MySQL, mSQL, ODBC, e Adabas. Voi inserite una descrizione e i parametri per i campi delle vostre tabelle (nome del campo, possibilità o no di ricerca nel campo, ecc.), e PHPGem fornisce in output un altro script PHP, che lavorerà con le tabelle (per visualizzazione / inserimento / modifica / cancellazione / duplicazione e per ricerche). PHPGem funziona con tabelle annidate in livelli multipli. Inoltre è consentito indicare un livello d'accesso per ogni tabella, per ogni campo, e per ogni utente. PHPGem supporta anche le immagini.

PHPGem si trova presso http://sptl.org/phpgem


Next Previous Contents