PHP3 Tutorial
Questo tutorial è volutamente dedicato a quelli che vogliono imparare
ad usare gli script con PHP.
Sono ben accette puntualizzazioni, consigli, correzioni ed eventuali
segnalazioni di castronate.
Indice:
1.Cos'è PHP ?
2.Come inserire il codice
3.Alcuni esempi iniziali
4.Le form
5.Restricted area & passwords
6.Variabili e rudimenti di programmazione
1. Cos'è PHP ?
Php è un sistema che permette di inserire delle parti di codice all'interno di
pagine html che vengono poi eseguite prima di essere inviate all'utente che ne
ha fatto richiesta.
Le parti in codice vengono scritte in un linguaggio particolare, le cui
specifiche sono all'interno del PHP
Manual (900K).
Quando un utente richiede una pagina Php, il server esegue il codice contenuto
all'interno di quella pagina. Durante l'esecuzione, il codice produrrà delle
informazioni in formato html. Infine il file (in completo formato html)
viene inviato all'utente.
Se provate a visualizzate il sorgente di una pagina in Php potrete notare che
non vi compare nessuna riga di codice Php.
Il vantaggio è proprio questo: nessun utente esterno, tranne il webmaster, può
accedere al codice e modificarlo. Per l'utente esterno, la pagina in Php è
esattamente uguale a una qualsiasi pagina in Html.
2. Come si inserisce il codice.
Il codice in linguaggio Php si inserisce all'interno di una pagina html
semplicemente editando la pagina con un editor di testo.
Il codice Php viene individuato dal server mediante dei tags che sono dei
delimitatori di linguaggio. All'interno dei tags Php non possono essere messi
dei tag Html, viceversa, all'esterno non possono essere eseguiti comandi Php.
I tag Php sono:
"<?php" e "?>"
Essi indicano rispettivamente l'inizio e la fine di una parte di codice Php.
Ad esempio, si potrà avere:
<html>
<body>
<!--- Parte di comandi Html --->
<?php
# parte di codice Php
?>
<!--- Altri comandi Html --->
</body>
</html>
Altre informazioni importanti
- I tag che rilevano la presenza di un codice php sono "<?php" e
"?>", ma possono essere usati anche i tag "<?" (senza
"php") e "?>". All'interno del presente tutorial verranno
usati indistintamente i due tipi di tag.
- I commenti all'interno del codice Php devono essere compresi tra i tags
"/*" e "*/".
- Un'altro tipo di commento si ottiene mettendo il tag "#" all'inizio
di una riga. La riga intera non verrà eseguita.
- I comandi Php per restituire del codice Html sono:
PRINT " <!--- html code ---> ";
ECHO ("<!--- html code --->");
- Il comando per la concatenazione di stringhe è il punto (.).
Ad esempio, il comando
echo ("Ciao"." "."Alberto")
produce la stringa
"Ciao Alberto"
- Ogni comando puro in Php deve essere concluso con il puntoevirgola (;)
- Ogni file che contiene codice Php per essere eseguito deve avere estensione
".php3" al posto di ".html" o ".htm".
3. Alcuni esempi iniziali
Last modified
Un primo esempio può essere un "banale" codice per visualizzare la
data dell'ultima modifica effettuata sulla pagina.
Per fare ciò basta mettere il seguente pezzo di codice all'interno del vostro
file html (ricordando di cambiare l'estensione in ".php3").
Ultima modifica:<br>
<?php
echo(date("D m/d/Y h:i:s a",getlastmod()));
?>
Provate a caricare la pagina e vedrete subito il risultato.
Come inviare una mail in Php
In una riunione della redazione di Studenti.it qualcuno si chiedeva come si
poteva fare per inviare una mail con una pagina html.
In Php è piuttosto semplice.
Inizialmente si deve predisporre una pagina da compilare, che invierà i dati ad
una pagina Php, la quale li tratterà e spedirà la mail.
La pagina da compilare si serve di una FORM che invia i
dati alla pagina Php, associando dei nomi ai campi che vengono compilati.
Esempio di pagina per la compilazione della mail.
<HTML>
<BODY>
Se vuoi mandare una mail a webmaster@studenti.it, compila i campi sottostanti e
clicca su INVIA.<br>
<FORM ACTION="email.php3" METHOD="POST">
Il tuo nome: <INPUT TYPE="text" NAME="name" SIZE="20"
MAXLENGTH="30">
<br>
Il tuo indirizzo email: <INPUT TYPE="text" NAME="email"
SIZE="20" MAXLENGTH="30">
<br>
<textarea name="text" wrap="virtual" rows="10"
cols="60" maxlenght="200">
Inserisci qui il testo
</textarea>
<br>
<INPUT TYPE="submit" VALUE="INVIA">
</FORM>
</BODY>
</HTML>
Successivamente, all'atto del click sul pulsante INVIA, i dati verranno inviati
a un file chiamato "email.php3" (nel nostro caso).
I parametri passati al nuovo file sono:
name: stringa contenente il nome del mittente
email: stringa contenente l'email del mittente
text: stringa contenente il testo del messaggio
Il file email.php3 riceve questi dati e spedisce il messaggio a webmaster@studenti.it.
Esempio di file email.php3
<html>
<?php
PRINT "Grazie $name.";
PRINT "<BR>";
PRINT "Ti risponderemo all'indirizzo $email.";
# il seguente comando è una chiamata a una funzione di php che invia mail.
# la sintassi esatta è:
# mail("email_a_cui_inviare","subject","testo_dell'email","header")
# l'header finale è un parametro opzionale per incollare la comune
# signature. se non lo mettete non cambia nulla, se invece volete
# includerlo allora mettete il path della vostra signature...
# in questo caso è stato omesso.
mail("webmaster@studenti.it",
"Mail di un visitatore del sito.",
"Nome: $name
Indirizzo email: $email
Testo: $text");
?>
</html>
Ovviamente non resta che provare.
Come accodare un file a tutte le vostre pagine
Basta creare il file "coda.txt" con il contenuto che si vuole
accodare.
Ad esempio, il file coda.txt potrebbe contenere:
<HR SIZE="1">
(c) copyright 1999 Mutua Studentesca<BR>
Webmaster <A HREF="mailto:stain@dei.unipd.it">Alberto
Mucignat</A><BR>
Nel file Php si deve mettere l'istruzione:
<?php
include("coda.txt");
?>
Lo stesso tutorial che state leggendo usa questa tecnica :)
Ovviamente, questa tecnica può essere usata per includere un file in qualsiasi
punto della vostra pagina.
Attenzione: l'istruzione include() può essere inserita in
qualsiasi punto del vostro codice, anche all'interno di un ciclo. Durante
l'esecuzione di un ciclo il file da includere verrà incluso ad ogni iterazione.
Per includere un file un'unica volta all'inizio dell'esecuzione dello script Php,
è consigliabile usare la funzione require(), la quale funziona più o
meno come l'istruzione #include in C.
4. Le form
Le form sono un potente strumento Html che permette lo scambio di informazioni
tra file html.
Funzionano con questo principio:
All'interno di file1.html c'è una form che predispone l'invio di alcuni dati a
file2.php3, il quale ha un sistema per riconoscere i dati inviatigli per poi
manipolarli come vuole.
Le form si possono inserire in un file html mediante i tag:
<FORM ACTION="file2.php3" METHOD="post/get">
<!--- Istruzioni html interne alla form --->
</FORM>
Il parametro ACTION definisce il file destinatario della form, mentre il
parametro METHOD se impostato a "get" rende visibili i dati trasmessi,
se impostato a "post" li invia in modo trasparente all'utente.
Questa differenza si nota alla voce "Location:" del browser su cui
state visualizzando le pagine.
Per passare dei parametri da una form a un file, si usa il tag INPUT del
linguaggio Html.
<INPUT NAME="???" TYPE="???"
VALUE="???" SIZE="???">
NAME è il nome della variabile che viene passata a file2.php3
TYPE è il tipo di dato rappresentato dalla variabile. Si possono avere i
seguenti tipi:
- TEXT (normale stringa di testo)
- PASSWORD (per l'input di password)
- CHECKBOX/RADIO (pulsanti di scelta)
- HIDDEN (nasconde l'input all'utente)
- SUBMIT (per inviare i dati a file2.php3)
- RESET (per azzerare la form)
- IMAGE (per visualizzare un'immagine come bottone di scelta)
VALUE è il valore di default che si può dare al campo
SIZE è la grandezza del campo di input (nel caso di inserimento testo o
passwords)
Ricordatevi che il tag INPUT deve essere interno alla form e che per inviare i
dati da una form al file destinatario si deve per forza usare un pulsante di
sottomissione (SUBMIT).
Un esempio pratico è già stato visto negli esempi del
punto 3.
5. Restricted areas & passwords
Adesso che abbiamo visto come funzionano le form e il conseguente interscambio
di dati tra files, si può configurare un semplice script per gestire l'accesso
ad un'area ristretta del nostro sito, mediante un sistema di richiesta e
validazione password.
Il primo passo consiste nell'inserire una form nella nostra pagina html dalla
quale si vuole far accedere ad un'area ristretta.
Il codice Html da inserire è il seguente:
<FORM
ACTION="restricted_area.php3" METHOD="POST">
Password: <INPUT TYPE="password" NAME="passwd" SIZE="20"
MAXLENGTH="30">
<INPUT TYPE="submit" VALUE="Continua">
</FORM>
Il file "restricted_area.php3" conterrà il codice per validare la
password.
Un tipico protocollo di validazione password può essere il seguente:
<?php
# settare nella riga seguente la password che regola l'accesso all'area
if ($passwd=="pswd_da_cambiare"): ?>
<!------------------- Restricted area html source -------------------->
<? else: ?>
Password errata.<BR>
<? endif; ?>
Una variante più elegante si ottiene leggendo la password da un file.
Basta creare un file di nome "passwd.txt" e metterci dentro la
password per il vostro sito. Il codice da mettere in
"restricted_area.php3" è il seguente.
<?php
# legge il contenuto del file "passwd.txt"
$file=fopen("passwd.txt","r");
$pass=fread($file,filesize($file));
fclose($file);
# confronta la password estratta dal file con quella proveniente dalla form
if ($pass==$passwd"): ?>
<!------------------- Restricted area html source -------------------->
<? else: ?>
Password errata.<BR>
<? endif; ?>
E' consigliabile andare a guardarsi le specifiche del costrutto "if..else..endif"
nel Php
Manual.
All'interno vi troverete anche i comandi Php per leggere e scrivere il contenuto
di un file.
Attenzione: il comando fread($file,filesize($file))
potrebbe dare dei problemi dovuti al fatto che la funzione filesize non
funziona sempre.
E' consigliabile allora usare il comando: fread($file,$Num)
oppure fgets($file,$Num), dove alla
variabile "$Num" si possono assegnare il numero di caratteri della
vostra password (le due funzioni danno lo stesso risultato).
Ovviamente la cosa più utile di questa procedura è il fatto di poter
configuarare un database con login e password dei membri di un sito, ma questa
opportunità la vedremo in seguito.
6. Variabili e rudimenti di programmazione
Questa sezione è dedicata ad alcune specifiche di programmazione pura.
Scoprirete come funzionano le variabili e quali sono le operazioni che si
possono fare.
Le variabili in Php si inizializzano (l'inizializzazione di una variabile è
l'operazione con cui la si crea e le si assegna un valore) mediante una
qualsiasi operazione di assegnazione.
L'operazione di assegnazione assegna ad una variabile un certo valore.
Ad esempio, scrivendo $variabile=5; si
crea la variabile $variabile e le si assegna il valore 5.
Ogni variabile in Php deve essere indicata facendola precedere dal simbolo
"$".
Quasi tutti i tipi di dato in Php vengono inizializzati in questo modo.
Due tipi esulano da questa procedura: gli array e gli object.
Per gli array, l'inizializzazione può avvenire nel seguente modo:
$names[] = "Alberto"; # $names[0] =
"Alberto"
$names[] = "Luca"; # $names[1] = "Luca"
Per gli object avviene nel seguente modo:
class mio_oggetto {
function do_mio_oggetto() {
echo "Sto creando Mio_Oggetto.";
}
}
$mia_var = new mio_oggetto;
$mia_var->do_mio_oggetto();
In Php alle variabili non viene assegnato nessun tipo predefinito. Il tipo di
dato associato ad una variabile può variare a seconda del contesto in cui viene
usata una variabile.
Ad esempio, se scrivo:
$num1=5;
$num2=10+num1;
echo("Numero 1 = ".$num1."<BR>");
echo("Numero 2 = ".$num2."<BR>");
$stringa1="$num1"."$num2";
Nelle prime due istruzioni le variabili $num1 e $num2 vengono trattate come
numeri interi, nella terza e quarta vengono utilizzate come stringhe
rispettivamente di uno e due caratteri. Nella quinta istruzione $stringa1 sarà
di tipo stringa.
Questo metodo è chiamato "conversione automatica".
Può essere interessante vedere come la successiva istruzione:
$num3=1+$stringa1;
produca l'assegnazione del valore 516 alla variabile $num3 (esercizio per casa).
Per approfondimenti si rimanda al Php
Manual.
Php 3.0 Tutorial by Alberto Mucignat
(c) Copyright 1999 Mutua Studentesca
Ultima modifica: 06/09/99
Thanks to W.J. Gilmore, G. Merrall, J. Greenspan, J. Winstead.