[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico] [volume] [parte]


Capitolo 214.   Avere le idee chiare

Prima di addentrarsi nella programmazione, è bene capire quali sono gli strumenti a disposizione e cosa permettono di fare. C'è molto interesse verso le tecnologie utilizzate in Internet, di conseguenza si crea spesso confusione. Una delle conseguenze più frequenti è ostinarsi a utilizzare un linguaggio nato con uno scopo per realizzare tutt'altro.

214.1   Cos'è il PHP?

PHP sta per Hypertext Preprocessor. Dalla documentazione ufficiale il PHP viene definito come un «linguaggio script dal lato del servente immerso nel codice HTML». Di seguito la definizione nel dettaglio:

«linguaggio script»: il PHP è un vero e proprio linguaggio di programmazione, è importante rendersi conto che l'HTML, ad esempio, non è un linguaggio di programmazione ma un linguaggio di descrizione e formattazione del testo. Inoltre, per i più esperti, il PHP è un linguaggio interpretato.

«Dal lato del servente»: queste le parole fondamentali. Il codice PHP inserito tra i marcatori HTML viene interpretato dall'elaboratore servente e non dal navigatore del cliente. Il modo migliore per rendere l'idea è passare ad un esempio.

Figura 214.1. Il servente elabora tramite l'interprete PHP gli script i quali generano le pagine HTML che vengono fornite al cliente tramite il protocollo HTTP.

figure/brdp_server_side

Si supponga di voler scrivere la data odierna in una pagina HTML. L'HTML non permette di farlo, in quanto, è un linguaggio di formattazione statico. Una soluzione potrebbe essere l'utilizzo di uno script Java di Netscape (JavaScript) ma è un linguaggio lato cliente. Il codice JavaScript viene eseguito dal navigatore del visitatore e non dal servente. Tutto ciò potrebbe portare alla visualizzazione di una data errata sulle pagine del sito solo perchè l'orario di sistema del visitatore non è impostato correttamente. Inoltre la guerra per il monopolio nel mercato dei navigatori ipertestuali tra Microsoft e Netscape ha fatto sì che non ci sia uno standard, di conseguenza Netscape non gestiste molte istruzioni JScript di Microsoft e Explorer non riconosce molte istruzioni JavaScript di Netscape (1).

A questo punto l'ideale è fornire al navigatore una stringa HTML generata e formattata da una funzione PHP. Ecco come:

1  <html>
2     <head>
3       <title>La mia prima pagina php</title>
4     </head>
5     <body>
6      
7        <br><br>
8                       
9        <?php echo date("d-m-Y") ?>
10                      
11       <br><br>
12              
13       <a href="../cap_2/benvenuto.php">vai a benvenuto.php &gt;&gt;</a>
14
15    </body>
16 </html>

Una volta completato salvare il codice nel file primo.php.

Se si prova ad aprire primo.php dal menù {file} del navigatore il risultato è una pagina bianca. Il motivo sta nel fatto che il PHP è un «linguaggio dal lato del servente» dunque il navigatore (cliente) non è in grado di interpretarne il codice compreso tra i marcatori: <?php ?>

Per visualizzare la data in modo corretto è necessario dare il codice in pasto all'interprete PHP tramite il servente HTTP, quindi bisogna copiare il file primo.php nella directory dei documenti del servizio HTTP e dal navigatore richiamare il file scrivendo l'indirizzo dell'elaboratore su cui è ospitato. Tutti gli script di esempio sono disponibili in rete all'indirizzo <http://www.urcanet.it/brdp/php_manual/esempi/> e sono raccolti per capitolo.

Se si scaricano gli script di esempio per essere eseguiti in locale e la configurazione del servente è corretta, il risultato sarà:

Figura 214.2. Ecco come appare la pagina HTML <http://www.urcanet.it/brdp/php_manual/esempi/cap_1/primo.php> sul navigatore del visitatore.

figure/brdp_primo

Ben più interessante è osservare il sorgente della pagina <http://www.urcanet.it/brdp/php_manual/esempi/cap_1/primo.php> dal menu {visualizza} del navigatore, ecco quello che viene inviato dal servente:

Figura 214.3. L'interprete PHP ha fatto il suo dovere. Questo è il codice generato e fornito al navigatore tramite il servente HTTP.

figure/brdp_primo_source

Una volta ricevuta la richiesta della pagina da parte del navigatore, il servente inizia a leggere il file primo.php e a inviarlo al cliente, appena trovati i marcatori <?php·?> capisce che deve farsi «tradurre» il codice in essi contenuto. Lo passa quindi all'interprete PHP che lo esegue e restituisce il risultato. In questo semplice esempio il risulato dell'operazione è la stringa 23-03-2002.

La funzione utilizzata nell'esempio date("d-m-Y") formatta la data nello schema giorno-mese-anno (numerico), mentre echo visualizza a schermo il risultato della funzione date().

Una modifica interessante al file precedente è:

   
1  <html>
2    <head>
3       <title>La mia prima pagina php</title>
4    </head>
5    <body>
6      
7      <br><br>
8                       
9      <?php phpinfo() ?>
10              
11     <br><br>
12                      
13     <a href="../cap_2/benvenuto.php">vai a benvenuto.php &gt;&gt;</a>
14
15   </body>
16 </html>

Questa volta il risultato è una pagina che visualizza la configurazione dell'elaboratore servente , dell'interprete e dei componenti per l'interrogazione delle basi di dati, oltre a una serie di variabili predefinite. È bene dare un'occhiata al sorgente HTML della pagina, tutta opera dell'interprete PHP.

«immerso nel codice HTML»: con ciò si intende che quanto contenuto tra i marcatori <?php·?> viene prima interpretato, e poi inviato al navigatore come semplice codice HTML insieme al resto della pagina.

214.2   Cosa può fare il PHP?

Dunque il PHP permette di rendere dinamiche le pagine HTML dal lato del servente. Questo insieme alla sua semplicità di utilizzo, alla somiglianza con la sintassi C e alle innumerevoli funzioni che permettono di interagire con basi di dati e servizi di ogni genere ne hanno decretato il successo in Internet.

La diffusione è dovuta alla semplicità di configurazione e alla completa compatibilità con numerosi serventi HTTP. Per il test degli script di questa guida è stato utilizzato come servente Apache. (2)

Il PHP permette, in modo semplice e diretto, di far interagire il cliente con le basi di dati ospitate sul servente tramite il semplice utilizzo di un comune navigatore.

Tutti i maggiori DBMS sono gestiti da PHP, senza dover installare software aggiuntivo o commerciale. Un breve elenco è riportato nella tabella 214.1.

Tabella 214.1. Queste le basi di dati gestite dal PHP.

BASI DI DATI
Adabas D InterBase PostgreSQL
dBase FrontBase Solid
Empress mSQL Sybase
FilePro (read-only) Direct MS-SQL Velocis
IBM DB2 MySQL Unix dbm
Informix ODBC Ingres
Oracle (OCI7 and OCI8)

Inoltre il PHP permette di interagire con numerosi servizi tramite i protocolli: IMAP, SNMP, NNTP, POP3, HTTP e molti altri.

214.3   PHP su piattaforma Microsoft

Il PHP è compatibile con molte piattaforme di sviluppo, tra cui quella Microsoft. Ovviamente le migliori prestazioni si ottengono in ambiente GNU/Linux (o più in generale su sistemi Unix).

Per informazioni più dettagliate si rimanda al sito ufficiale <http://www.php.net>.

214.4   Quanto costa il PHP?

Il PHP viene distribuito nei termini della: The PHP License, version 2.02.

I requisiti minimi richiesti all'eleboratore servente sono del tutto abbordabili. Per i test degli script contenuti in questa guida è stato utilizzato un vecchio P-120MHz con soli 16·Mibyte di RAM e un piccolo disco fisso da 1,2·Gibyte.

Su di esso è stata installata una versione Debian GNU/Linux 2.2 con servente Apache, MySql, interprete PHP4. Sulla stessa macchina erano in esecuzione il servente FTP, PostgreSQL, Postfix e altri servizi minori.

Programmare in PHP --- Copyright © 2001-2002 Gianluca Giusti --  brdp @ urcanet.it

1) Netscape ha sviluppato un linguaggio di programmazione ad oggetti interno al navigatore chiamato JavaScript tramite il quale è possibile gestire le finestre del navigatore, i form di invio dati, la navigazione stessa delle pagine e tanto ancora. La Microsoft per il proprio navigatore Explorer ha realizzato un linguaggio molto simile chiamato JScript. Purtroppo i due linguaggi non sono compatibili al 100% anche se le istruzioni di base sono ben gestite da entrambi.

2) è possibile prelevare Apache dal sito ufficiale <http://www.apache.org>.


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome avere_le_idee_chiare.html

[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico]