Next: Apache, il server Web
Up: Progetto e realizzazione di
Previous: Postgres SQL ed il
La scelta di PHP risiede nella caratteristica propria di questo pacchetto di
consentire la realizzazione di semplici script all'interno di pagine HTML,
cosi` come accade per JavaScript. Cio` che lo contraddistingue da quest'ultimo,
pero`, e` che non si ha browser-dipendenza; la differenza tra i due risiede in
pratica nel fatto che Java Script e` un linguaggio client-side (il server non
deve far nulla in quanto e` il browser che interpreta i comandi JavaScript)
mentre PHP e` un linguaggio server-side (il browser riceve dal server web la
pagina nel suo aspetto definitivo).
PHP e` nato come un agglomerato di funzioni cgi scritte in Perl che,
successivamente, a causa della continua richiesta di modifiche ed aggiunte e`
arrivato ad essere un vero e proprio pacchetto denominato Personal Home Page
Construction Kit. Contestualmente si e` pensato di realizzare uno strumento che
consentisse l'inserimento di queries SQL in pagine web e l'interfacciamento con
i relativi data base, si trattava di un pacchetto cgi che consentiva di creare
forms e tabelle basate sulle queries ad esse relative; a questo pacchetto e`
stato dato il nome FI (Form Interpreter). PHP, nella sua versione 2.0, ha
racchiuso in sè le caratteristiche dei due pacchetti appena descritti ed e`
ancora in fase di evoluzione arricchendosi di ulteriori funzioni e proprieta`
(e` giunto alla versione 3.0).
Tra le principali caratteristiche di PHP vanno annoverate:
- il controllore degli accessi, con il quale e` possibile creare regole per
tutte o alcune delle pagine web possedute da una certa persona ed imporre
restrizioni su chi puo` visitare tali pagine e su come cio` debba avvenire.
Le pagine stesse possono poi essere protette tramite password.
- il supporto di variabili di tipo array e array associativi simili a quelli
del PERL. Questi possono essere passati da una pagina web ad un'altra
utilizzando i metodi GET e POST dei form.
- il supporto di un vero e proprio linguaggio nel quale sono disponibili i
costrutti if/then/elseif/else/endif o i cicli while o ancora i costrutti
switch/case, oltre che per la realizzazione di operazioni, per guidare il
flusso logico nella visualizzazione di una pagina html.
- la caratteristica di un unico "Safe Mode" che rende sicura l'esecuzione di
script da parte di piu` utenti che accedono allo stesso server.
Va notato che cio` che rende diversi i tag HTML da quelli PHP e` l'utilizzo di
una particolare sintassi che per la nuova versione di PHP e` costituita da tre
possibili forme:
<? echo "Questo e` un esempio di codice PHP 3.0 !\n"; ?>
Variante della precedente è espressa nella riga:
<?php echo "Anche questo e` codice PHP 3.0 !\n"; ?>
Terza ed ultima forma di espressione in grado di fornire il medesimo effetto è:
<script language="php">
echo "Questo e` il codice PHP 3.0 !\n";
</script>
Osservazione a parte meritano i form e la loro gestione in quanto, una volta
predisposto il server web, se la pagina destinataria dei valori immessi e` una
pagina php non occorre metterla nell'area cgi-bin.
Si consideri il form seguente:
<FORM ACTION="display.html" METHOD=POST>
<INPUT TYPE="text" nome="nome">
<INPUT TYPE="text" nome="eta">
<INPUT TYPE="submit">
</FORM>
Il file html che riceve i suoi dati e li elabora (display.html) potrebbe essere
il seguente:
<?
if($eta>50);
echo "Ciao $nome, sei molto vecchio!<p>";
elseif($eta>30);
echo "Ciao $nome, sei vecchio!<p>";
else;
echo "Ciao $nome.";
endif;
?>
Prima di concludere questa breve carrellata su PHP (per approfondimenti si veda
[5]) riporto l'elenco di alcune delle funzioni che consentono di accedere
direttamente ai data base postgres e che sono state utilizzate dagli studenti:
- int pg_connect(string host, string port, string options,
string tty, string dbname);
- Apre una connessione con la base dati indicata nel campo string dbname.
- string pg_dbname(int connessione);
- Restituisce il nome della base dati coinvolta nella connessione.
- int pg_exec(int connessione, string query);
- Esegue la query formulata nel campo string query.
- string pg_fieldname(int query, int numero_campo);
- Restituisce il nome del campo individuato dall'indirizzo specificato dal
parametro numero_campo.
- int pg_fieldtype(int query, int numero_campo);
- Restituisce il tipo di quanto immagazzinato nel campo individuato
dall'indirizzo specificato dal parametro numero_campo.
- int pg_numrows(int query);
- Restituisce il numero di righe coinvolte nel risultato della query eseguita
ed individuata dal campo int query.
- mixed result(int query, int numero_righe, mixed nome_campo);
- Restituisce i valori dell'identificatore risultato della query eseguita ed
individuata dal campo int query.
- void pg_close(int connessione);
- Chiude la connessione.
La pagina web realizzata per effettuare l'interrogazione della base dati scuola
ed il tipo di output che se ne ottiene possono essere reperite presso il sito
web dell'I.T.I.S. [6] nel quale la tesina degli studenti e` stata presentata.
Next: Apache, il server Web
Up: Progetto e realizzazione di
Previous: Postgres SQL ed il
Conversione in html: PROSA srl
info@prosa.it