Indice
Parte Prima
Introduzione
I pacchetti e l'installazione
Sintassi di base e tipi
Una questione di stile
|
Parte Seconda
Ancora sul linguaggio
I commenti
Operatori ed espressioni
Controllo del flusso
|
Parte Terza
Installazione in ambiente PWS (W9X, WNTwks, ME, XP, W2000pro)
Le costanti
Le funzioni
Mantenimento dello stato: Le sessioni
|
Parte Quarta
Mantenimento dello stato: I cookie
Comunicazione con l'utente: i form
Uso del metodo GET
Uso del metodo POST e i form
|
Parte Quinta
Installazione in ambiente Linux
Le funzioni Include() e Require()
La funzione mail()
Upload dei file
|
Parte Sesta
L'uso dei database
|
Parte Settima
La connessione al database e la visualizzazione dei dati
|
Parte Ottava
Autenticazione http
Compatibilità dell'autenticazione HTTP?
La lettura e scrittura dei dati utente.
Precisazioni sull'installazione di MySQL sotto Windows 2000 Server
|
Parte Nona
I Socket
|
Parte Decima
Il debugger
L'editor
Le risorse
|
Introduzione
Hypertext Preprocessor
(preprocessore di ipertesti) è un software open source, concorrente
diretto di ASP, Perl, JSP, CGI e qualunque altra soluzione scripting
lato server, è un linguaggio di script immerso nel HTML. Molta della
sua sintassi è presa in prestito dai linguaggi C, Java e Perl, a cui
sono state aggiunte alcune specifiche caratteristiche del PHP.
Effettivamente dopo la comprensibile ebbrezza che si prova nel vedere
il proprio testo HTML visualizzato su qualsiasi computer collegato ad
Internet, sorge successivamente l'esigenza di rendere il proprio sito
interattivo ed anche il cruccio sulla portabilità del proprio software,
combinata alla facilità d'uso, alla scalabilità e alla robustezza.
Di primo acchito, potremmo orientarci verso il C o C++, ma ambedue richiedono,
oltre alla consapevolezza di trovarsi di fronte a linguaggi di basso
livello, anche un'approfondita conoscenza del SO ospite, anzi, se guardiamo
alla portabilità, di più SO ospiti!
Chi non dovesse mai trovarsi in simili condizioni può dormire sonni
tranquilli, ma con l'evoluzione attuale del software, sempre più orientato
alla facilità end-user, ci si aspetta che un programmatore,
dinanzi a nuove scelte o soluzioni, sia abbastanza versatile da affrontarle
con agilità.
Il PHP in questi casi è un'ottima soluzione, anche perché, essendo open
source, consente di imparare molto dal codice sorgente e, se si conosce
il linguaggio C/C++, è veramente semplice da apprendere.
I pacchetti e l'installazione
E' veramente impressionante la quantità di ambienti di sviluppo (UNIX,
Unix/Linux, Unix/HP-UX, Unix/Solaris, Unix/OpenBSD, Unix/Mac OS X, Windows
9X/NT/2000/XP, Apache, CGI/Commandline, fhttpd, Caudium, IIS/PWS, Netscape
and iPlanet, OmniHTTPd Server, Oreilly Website, Pro, Xitami), di database
(Oracle, Informix, Interbase, MS SQL, mySQL, PostgreSQL ecc.) e di fonti
(ODBC, attraverso moduli software supportati da terzi o via ADO, ecc.)
supportati.
Nel nostro esempio, l'ambiente operativo è WinNT (nessuna differenza
con Win2000) con IIS 4.0. Dopo aver
scaricato i pacchetti e il manuale
in italiano (ma è preferibile quello in inglese), iniziamo l'installazione
di php410-installer.exe nella versione 4.1.0, che crea
una directory c:\php, che contiene due subdirectory
(sessiondata e uploaditem) e quattro file (install.txt,
license, php.exe, php4ts.dll).
Letta ed accettata la licenza d'uso, seguendo le istruzioni nel file
install.txt, passiamo all'installazione vera e propria del
nostro super CGI.
Copiamo php4ts.dll in c:\winnt\system32\,
avviamo Internet Service Manager, clicchiamo col tasto
destro su Default Web Server e scegliamo Properties;
passiamo alla cartella Home Directory e clicchiamo
sul tasto Configuration e in App Mapping
clicchiamo su Add: in Executable indichiamo
la directory dove si trova php.exe (generalmente c:\php\php.exe)
e in Extension l'estensione php; premiamo
OK fino a chiudere la tab sheet di Properties, stoppiamo e riavviamo
il servizio http.
A questo punto, dopo aver scritto e salvato (prova.php) il nostro
primo script nella WWWroot
script PHP (lato server) |
<HTML>
<HEAD>
<TITLE>prova</TITLE>
</HEAD>
<BODY>
<?php
echo "mod php bnbmbmbmbmnbnm";
echo "\n<br>";
$num = 20; # intero
$prezzo = 345.45; # in virgola mobile
$grand = 'large'; # stringa
$myarray[0] = "rosso"; # array scalare, primo elemento
(0)
$myarray["qwe"] = 6; # array associativo, elemento "qwe"
$var = "rosso $prezzo\n <BR>";
echo $var;
$var = 'verde $prezzo <BR>'; # qui non si puo usare \n
echo $var;
echo "$HTTP_USER_AGENT\n <BR>";
?>
</BODY>
</HTML> |
output codice HTML (lato client) |
<HTML>
<HEAD>
<TITLE>prova</TITLE>
</HEAD>
<BODY>
mod php bnbmbmbmbmnbnm
<BR>rosso 345.45
<BR>verde $prezzo <BR>Mozilla/4.0 (compatible; MSIE
6.0; Windows 98; Virgilio3pc; Q312461)
<BR></BODY>
</HTML>
|
output browser (lato client) |
mod php bnbmbmbmbmnbnm
rosso 345.45
verde $prezzo
Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Virgilio3pc; Q312461)
|
eseguiamolo dal client e vedremo comparire correttamente le informazioni
richieste.
Sintassi di base e tipi
Abbiamo salvato il file con l'estensione .php, ma avremmo potuto anche
salvarlo come .php4 o .html in relazione all'impostazione di php nel
file di configurazione del server Web (nel nostro caso IIS).
Il codice è racchiuso in uno dei seguenti tag:
<?php
echo "la mia casa";
?>
oppure
<? echo "la mia casa"; ?>
oppure
<script language = "php" > echo
"la mia casa"; </script>
Il comando
echo invia l'output sul browser
client e dopo ogni istruzione php c'è necessariamente
il
punto e virgola (;) come carattere di fine istruzione, mentre
è poco importante che le istruzioni si trovino tutte nella stessa
riga di codice, indentate o su diverse righe.
PHP può operare numeri interi, in virgola mobile, stringhe, array
e oggetti tutti preceduti dal segno di
dollaro
($) e sono tutti
case
sensitive. I valori delle stringhe possono essere racchiusi
sia dai
doppi apici ("), che dai
apici
singoli ('), e, come si può notare dall'esempio precedente,
nel primo caso la variabili sono valutate, mentre quelle racchiuse dagli
apici singoli non lo sono.
Le variabili presenti in ogni script PHP sono
locali, mentre quelle incorporate in uno script con l'istruzione
INCLUDE sono
globali.
Ma si possono usare anche gli
oggetti:
prima
dichiarati
class myobj {
function do_myobj ($par) {
echo "la classe myobj
con parametro $par. ";
}
}
poi definiti dall'istruzione new
$var = New myobj;
$var -> do_myobj(8);
che avrà il seguente output
la classe myobj con parametro 8.
I tipi booleani posso essere usati sapendo
che PHP considera una variabile che contiene qualcosa TRUE,
mentre considera FALSE una che è indefinita,
nulla o zero.
if $myVar {
... istruzioni ...;
} # FALSE
invece
$myVar = "la mia casa";
if $myVar {
... istruzioni ...;
} # TRUE
Per conoscere le variabili predefinite dal proprio sistema bisogna usare
la funzione
phpinfo();
nell'esempio precedente, $HTTP_USER_AGENT
è solo una tra le tante.
Una questione di stile
Ogni buon programmatore sa che è importante lo stile imposto
dal linguaggio, ma soprattutto quello che mira alla chiarezza, alla
semplicità e alla snellezza del proprio codice.
Indentare è sempre importante, ma
le variabili devono essere sempre chiare, soprattutto nel caso particolare
di questo linguaggio che decide al momento dell'assegnazione il tipo
di variabile utilizzata.
Si potrebbero usare prefissi importati da altri linguaggi come il C
o C++: int per gli interi, fl
per la virgola mobile, str per le stringhe,
ar per gli array, obj
per gli oggetti e bo per le booleane; le
variabili usate prima dovrebbero essere corrette in questo modo:
$num |
$prezzo |
$grand |
$myarray[0] |
$var |
$myVar |
$intnum |
$flprezzo |
$strgrand |
$armyarray[0] |
$objvar |
$bomyVar |
Attenzione: gli esempi qui mostrati funzionano con copia e incolla
a patto che vengano tolti tutti i caratteri superflui (colore, spaziatura
ecc.), utili per una migliore visualizzazione sui browser, ma fastidiosi
per il parser PHP!
Pagina successiva