Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > f1098342ec4a2b28475e34123ce17201 > files > 892

howto-html-it-9.1-0.5mdk.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE>Database-SQL-RDBMS HOW-TO document for Linux (PostgreSQL Object Relational Database System): PHP Hypertext Preprocessor - Linguaggio di scripting dal lato server, incorporabile nel codice html, per PostgreSQL </TITLE>
 <LINK HREF="PostgreSQL-HOWTO-23.html" REL=next>
 <LINK HREF="PostgreSQL-HOWTO-21.html" REL=previous>
 <LINK HREF="PostgreSQL-HOWTO.html#toc22" REL=contents>
</HEAD>
<BODY>
<A HREF="PostgreSQL-HOWTO-23.html">Avanti</A>
<A HREF="PostgreSQL-HOWTO-21.html">Indietro</A>
<A HREF="PostgreSQL-HOWTO.html#toc22">Indice</A>
<HR>
<H2><A NAME="PHP"></A> <A NAME="s22">22. PHP Hypertext Preprocessor - Linguaggio di scripting dal lato server, incorporabile nel codice html, per PostgreSQL </A></H2>

<P>Strumenti di Interfaccia al WWW sono reperibili presso:
<UL>
<LI> 
<A HREF="http://www.php.net">http://www.php.net</A></LI>
<LI> 
<A HREF="http://www.vex.net/php">http://www.vex.net/php</A></LI>
</UL>

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&agrave; pronto per
l'utilizzo, userete il compilatore Zend per
compilare il codice PHP, cos&igrave; da creare eseguibili che gireranno molto rapidamente.
<P>Il vecchio nome di PHP &egrave; Professional Home Pages, mentre il nuovo nome &egrave; PHP Hypertext Pre-Processor
<UL>
<LI> Siti Mirror si trovano in molti paesi come www.CODICEPAESE.php.net</LI>
<LI> 
<A HREF="http://www.fe.de.php.net">http://www.fe.de.php.net</A></LI>
<LI> 
<A HREF="http://www.sk.php.net">http://www.sk.php.net</A></LI>
<LI> 
<A HREF="http://php.iquest.net/">http://php.iquest.net/</A></LI>
<LI> L'e-mail per eventuali domande &egrave;:
<A HREF="mailto:rasmus@lerdorf.on.ca">rasmus@lerdorf.on.ca</A></LI>
</UL>
<P>PHP &egrave; un linguaggio di scripting dal lato server, incorporato nel codice html. PHP permette,
come Javascript, di scrivere semplici script nei file .HTML
ma, al contrario di JavaScript, PHP non &egrave; dipendente dal
browser. JavaScript &egrave; un linguaggio lato client, incorporabile nel codice html,
mentre PHP &egrave; un linguaggio dal lato server.
PHP &egrave; concettualmente simile al prodotto LiveWire Pro di Netscape.
Se vi piace il software gratuito in rapida evoluzione e fornito
del codice sorgente, probabilmente PHP vi piacer&agrave;.
<P>
<UL>
<LI> Il codice del supporto di PostgreSQL &egrave; stato scritto da Adam Sussman
<A HREF="mailto: asussman@vidya.com">asussman@vidya.com</A></LI>
</UL>
<H2><A NAME="ss22.1">22.1 Le funzionalit&agrave; pi&ugrave; rilevanti</A>
</H2>

<P>
<UL>
<LI>Supporto per Standard CGI, FastCGI e modulo di Apache -
Come programma CGI standard, PHP pu&ograve; essere installato su qualsiasi
macchina Unix su cui giri qualsiasi web server per Unix. Con il supporto per
il nuovo standard FastCGI, PHP pu&ograve; trarre vantaggio dall'incremento
di velocit&agrave; ottenuto attraverso questo meccanismo. Come
modulo di Apache, PHP diventa un'alternativa alla programmazione CGI
estremamente potente, e dotata di <B>velocit&agrave; fulminante</B>.
</LI>
<LI> Registrazione degli Accessi -
Con la propriet&agrave; della registrazione degli accessi di PHP, gli utenti possono
conservare i propri conteggi degli accessi e delle registrazioni. Per questo risultato non sono utilizzati
in alcun modo i file di registrazione d'accesso del sistema centrale, e
viene fornito un controllo degli accessi in tempo reale. Lo script di visualizzazione del Log
fornisce un veloce riassunto degli accessi ad un insieme di pagine,
appartenenti ad un singolo utente. In aggiunta a ci&ograve;, il pacchetto
pu&ograve; essere configurato per generare un titolo di coda per ogni pagina che
mostri informazioni sugli accessi. (...) 
</LI>
<LI> Controllo degli Accessi:
Un meccanismo di filtraggio, basato sul web, gestisce la
configurazione del controllo d'accesso. &Egrave; possibile creare regole per tutte
le pagine web che appartengano ad una certa persona, la quale voglia porre
diverse restrizioni su chi possa vedere queste pagine, e su come esse
saranno viste. Le pagine possono essere o protette da password, o completamente
inaccessibili, oppure con registrazione disabilitata, o potranno avere altre forme di controllo ancora; dipende dal dominio del
client, dal browser, dall'indirizzo e-mail, o anche dal documento
di provenienza.
</LI>
<LI> Supporto a PostgreSQL -
Postgres &egrave; un evoluto RDBMS, libero e gratuito. PHP supporta le "query SQL"
di PostgreSQL, incorporandole direttamente nei file .html .</LI>
<LI> RFC-1867 Supporto per il File Upload -
Il File Upload &egrave; una nuova funzionalit&agrave; di Netscape 2.0. Essa permette agli utenti
di effettuare il trasferimento di file verso un server web. PHP fornisce la decodifica Mime
per compiere quest'operazione, e fornisce anche una procedura di base
per realizzare qualcosa di utile con i file, una volta
che siano stati ricevuti.
</LI>
<LI> Controllo dell'autenticazione basata su HTTP -
PHP pu&ograve; essere usato per creare meccanismi di autenticazione personalizzati,
basati su HTTP, per il server web Apache.
</LI>
<LI> Variabili, Array, Array Associativi -
PHP supporta diversi tipi di variabili, gli array, ed anche gli array associativi,
simili a quelli del Perl. I valori assunti da tutti questi tipi di dati possono essere passati da una pagina web
ad un'altra, usando form con i metodi GET o POST.
</LI>
<LI> Condizionali, Cicli con While -
PHP supporta un linguaggio di scripting simile al C, e pieno di funzionalit&agrave;.
Ci&ograve; che della pagina web dovrebbe essere visualizzato, viene deciso con l'uso
delle strutture condizionali if/then/elseif/else/endif,
dei cicli con while, e dell'istruzione switch/case.
</LI>
<LI> Espressioni Regolari Estese -
Le espressioni regolari vengono intensamente utilizzate per pattern matching (comparazione con modelli di stringa, n.d.t.),
per sostituzione di modelli (di stringa, n.d.t.), e per manipolazione di stringhe in generale. PHP
supporta tutte le comuni operazioni realizzate con le espressioni regolari.
</LI>
<LI> Controllo degli Header Raw HTTP -
La capacit&agrave; delle pagine web di poter inviare header raw HTTP,
in base a qualche condizione, &egrave; essenziale per la progettazione
ad alto livello dei siti web. &Egrave; di uso frequente l'invio di una Location: l'header URL
redirige il client chiamante verso qualche altro URL.
Pu&ograve; essere anche impiegato per disabilitare il caching, oppure per manipolare l'ultimo
aggiornamento dell'intestazione delle pagine.
</LI>
<LI> Creazione di immagini GIF in tempo reale -
PHP supporta la libreria di immagini GD di Thomas Boutell,
che rende possibile generare "al volo" immagini GIF.
</LI>
<LI> Supporto al "Safe Mode" ISP -
PHP supporta una singolare modalit&agrave; di protezione, "Safe Mode", che rende sicura
l'esecuzione degli script PHP da parte di molti utenti presenti sullo stesso server.
</LI>
<LI> Molte altre funzionalit&agrave; vengono aggiunte in ogni nuova versione di PHP.
Visitate il sito web principale presso 
<A HREF="http://www.php.net">http://www.php.net</A>
</LI>
<LI> &Egrave; libero e gratuito! -
Questa &egrave; una qualit&agrave; fondamentale e decisiva. Il pacchetto &egrave; completamente libero.
&Egrave; posto sotto la licenza GNU/GPL, che consente di usare
il software per qualsiasi proposito, che sia commerciale o no.</LI>
</UL>
<H2><A NAME="ss22.2">22.2 PHP - Breve Storia</A>
</H2>

<P>Il PHP ha preso vita come un piccolo, semplice wrapper (incapsulatore) cgi scritto in Perl.
Il nome di questo primo pacchetto era Personal Home Page Tools, che
pi&ugrave; tardi si trasform&ograve; in Personal Home Page Construction Kit.
<P>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 &egrave; stato denominato FI (Form Interpreter).
<P>La versione 2.0 di PHP/FI &egrave; una riscrittura completa di questi due pacchetti combinati
in un singolo programma.
PHP &egrave; evoluto verso un semplice linguaggio di programmazione, inglobato dei file HTML.
PHP elimina la necessit&agrave; dei tanti piccoli programmi cgi Perl,
permettendovi di posizionare semplici script direttamente nei vostri file HTML. Ci&ograve;
accelerer&agrave; le prestazioni complessive delle vostre pagine web, poich&eacute; viene eliminato
l'overhead dovuto alle numerose biforcazioni (forking) di Perl.
PHP rende anche pi&ugrave; 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&ugrave; facile da gestire, rispetto alla creazione
di file HTML e CGI separati.
<P>Oggi PHP/FI &egrave; stato rinominato PHP.
<H2><A NAME="ss22.3">22.3 Ebbene, cosa posso fare con PHP ?</A>
</H2>

<P>La prima cosa su cui porre attenzione, se volete eseguire una pagina con PHP, &egrave; che
viene aggiunto un titolo, a piede di pagina, con informazioni riguardanti il numero di volte in cui la vostra pagina &egrave; stata
visitata (purch&eacute; nel binario sia stata compilata la gestione della registrazione degli accessi). Questa &egrave;
solo una piccolissima parte di ci&ograve; che PHP pu&ograve; 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.
<H2><A NAME="ss22.4">22.4 Un semplice esempio</A>
</H2>

<P>Supponete di avere un form:
<BLOCKQUOTE><CODE>
<PRE>
&lt;FORM ACTION="/cgi-bin/php.cgi/~userid/display.html" METHOD=POST>
&lt;INPUT TYPE="text" name="name">
&lt;INPUT TYPE="text" name="age">
&lt;INPUT TYPE="submit">
&lt;FORM>
</PRE>
</CODE></BLOCKQUOTE>

Il vostro file display.html potrebbe allora contenere qualcosa come:
<BLOCKQUOTE><CODE>
<PRE>
&lt;?echo "Ciao $name, hai $age anni!&lt;p>" &gt;
</PRE>
</CODE></BLOCKQUOTE>

&Egrave; questa la semplicit&agrave;! PHP crea automaticamente una variabile per ogni campo
di input del form. Potete cos&igrave; usare queste variabili nel file dell'URL, che
compare come argomento di ACTION.
<P>Il passo successivo, una volta che avete compreso come usare le variabili, &egrave; iniziare a
inserire qualche tag 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&agrave; che l'utente inserisce. Cambiamo il nostro display.html come segue:
<BLOCKQUOTE><CODE>
<PRE>
&lt;?
    if($age>50);
        echo "Ciao $name, sei anziano!&lt;p>";
    elseif($age>30);
        echo "Ciao $name, sei molto vecchio!&lt;p>";
    else;
        echo "Ciao $name.";
    endif;
>
</PRE>
</CODE></BLOCKQUOTE>

PHP fornisce un linguaggio di scripting molto potente, che realizzer&agrave; molto pi&ugrave;
di quanto il precedente esempio dimostri. Vedere la sezione relativa al
Linguaggio Script PHP per altre informazioni.
<P>Potete usare PHP anche per configurare i permessi d'accesso alle vostre pagine.
Ci&ograve; pu&ograve; 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.
<P>PHP &egrave; 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 su server, e su cosa possa essere fatto con il file
una volta che sia stato ricevuto. Leggere la sezione File Upload per altri dettagli.
<P>PHP ha il supporto per il pacchetto del database PostgreSQL. PHP supporta
query SQL inserite nei vostri file .HTML .
<P>PHP fornisce anche supporto per il pacchetto di database mysql. PHP supporta le
query SQL inserite nei vostri file .HTML .
<H2><A NAME="ss22.5">22.5 Ridirezione CGI</A>
</H2>

<P>
<H3>Note su Apache 1.0.x</H3>

<P>Impiegare un modulo di ridirezione cgi, con il server Apache,
&egrave; 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 &egrave; stato
sviluppato da Dave Andersen
<UL>
<LI>       
<A HREF="mailto:angio@aros.net">angio@aros.net</A></LI>
</UL>

ed &egrave; reperibile presso
<UL>
<LI>     
<A HREF="ftp://ftp.aros.net/pub/util/apache/mod_cgi_redirect.c">ftp://ftp.aros.net/pub/util/apache/mod_cgi_redirect.c</A></LI>
</UL>

L'altro
&egrave; distribuito con Apache, ed &egrave; chiamato mod_actions.c. I due moduli sono
molto simili. Differiscono leggermente nel loro uso. Sono stati testati entrambi,
ed entrambi funzionano con PHP.
<P>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 &egrave;:
<P>Module action_module mod_actions.o
<P>Se state usando il modulo mod_cgi_redirect.c , aggiungete questa riga:
<P>Module cgi_redirect_module mod_cgi_redirect.o
<P>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:
<BLOCKQUOTE><CODE>
<PRE>
     application/x-httpd-php phtml
</PRE>
</CODE></BLOCKQUOTE>

Se state usando il modulo mod_actions.c, dovrete aggiungere la
seguente riga al vostro file srm.conf :
<BLOCKQUOTE><CODE>
<PRE>
     Action application/x-httpd-php /cgi-bin/php.cgi
</PRE>
</CODE></BLOCKQUOTE>

Se state usando mod_cgi_redirect.c, dovreste aggiungere questa riga a
srm.conf:
<BLOCKQUOTE><CODE>
<PRE>
     CgiRedirect application/x-httpd-php /cgi-bin/php.cgi
</PRE>
</CODE></BLOCKQUOTE>

Non provate ad usare, nello stesso tempo, mod_actions.c e mod_cgi_redirect.c.
<P>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&ugrave;, 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&agrave; automaticamente processata da php.
<H3>HTTPD di Netscape</H3>

<P>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&ograve; essere trovato negli Archivi di File
dell'Home Page di PHP. Il file README nel pacchetto, spiega esplicitamente
come configurarlo per usarlo con PHP.
<H3>HTTPD di NCSA</H3>

<P>Attualmente NCSA non supporta i moduli; cos&igrave;, 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
<H2><A NAME="ss22.6">22.6 Eseguire PHP dalla riga di comando</A>
</H2>

<P>Se avete compilato la versione CGI di PHP, potete usarla dalla riga di comando
semplicemente digitando: php.cgi nome_file, dove nome_file &egrave; il file che volete
processare. Potete anche creare script PHP autonomi inserendo, sulla prima
riga del vostro script, quanto segue:
<BLOCKQUOTE><CODE>
<PRE>
    #!/usr/local/bin/php.cgi -q
</PRE>
</CODE></BLOCKQUOTE>

La "-q" sopprime la stampa degli header HTTP. Potete anche non
mettere quest'opzione, se volete.
<H2><A NAME="ss22.7">22.7 Pacchetto PHPGem</A>
</H2>

<P>PHPGem &egrave; 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&agrave; o no di ricerca
nel campo, ecc.), e PHPGem fornisce in output un altro script PHP, che
lavorer&agrave; con le tabelle (per visualizzazione / inserimento / modifica / cancellazione / duplicazione e
per ricerche). PHPGem funziona con tabelle annidate in livelli multipli. Inoltre &egrave; consentito
indicare un livello d'accesso per ogni tabella, per ogni campo, e per
ogni utente. PHPGem supporta anche le immagini.
<P>PHPGem si trova presso 
<A HREF="http://sptl.org/phpgem">http://sptl.org/phpgem</A><HR>
<A HREF="PostgreSQL-HOWTO-23.html">Avanti</A>
<A HREF="PostgreSQL-HOWTO-21.html">Indietro</A>
<A HREF="PostgreSQL-HOWTO.html#toc22">Indice</A>
</BODY>
</HTML>