PHP3 Tutorial

by Alberto Mucignat

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.