|
Come primo esempio di programma in PHP, scriviamo una semplice calcolatrice, ovvero una form contenente due
campi di testo e un selezione a discesa per scegliere una operazione eseguibile tra i due valori. Inviando la form si
ottiene il risultato. Il testo HTML della form che vogliamo realizzare, che arricchiremo passo passo con il codice, è il
seguente:
<html><head><title>Calc</title></head>
<body bgcolor=#ffffff>
Risultato: 2+2=4
<hr>
<form>
<table boder=0>
<tr>
<td>Primo Operando
<td><input type=text size=10>
<tr>
<td>Operatore:
<td>
<select>
<option>+
<option>-
<option>*
<option>/
</select>
<tr>
<td>Secondo Operando
<td><input type=text size=10>
<tr>
<td colspan=2 align=center>
<input type=submit value=Calcola>
<input type=reset value=Azzera>
</table>
</form>
</body></html>
Il primo passo per trasformare questa form in un programma, è quello di dare un nome ai campi e specificare chi deve
processare il risultato. In questo caso scegliamo di fare in modo che la form venga gestita dallo stesso file che la
contiene. quindi la form cicla su se stessa: stampa i risultati della form che la ha richiamata e visualizza la form per il
passo successivo. Salviamo la form in un file chiamato calc.php, ed apportiamo le seguenti modifiche per dare un
nome ai campi e scegliere il gestore della form:
...
<form action="calc.php" method=get>
...
<input type=text size=10 name=first>
...
<select name=op>
<option value=add>+
<option value=sub>-
<option value=mul>*
<option value=div>/
</select>
...
<input type=text size=10 name=second>
Adesso, quando premiamo sul bottone Calcola, viene richiata la pagina stessa con una QUERY STRING che
contiene i valori inseriti nei campi. Per esempio, selezionando + e digitando, in ordine, 1 e 2, otterremo
calc.php?first=1&op=add&second=2. Per fortuna in PHP non occorre decifrare la query string, ci pensa il
sistema. Troveremo pertanto con i valori nelle variabili $first, $op e $second, per cui protremo aggiungere il
seguente codice per visualizzare il risultato (sostituendo Risultato: 2+2=4):
<?
if(strlen($first)>0 and strlen($second)>0) {
$msg = "Risultato: $first ";
switch($op) {
case "add":
$res = $first + $second;
$msg .= "+ $second = $res";
break;
case "sub":
$res = $first - $second;
$msg .= "- $second = $res";
break;
case "mul":
$res = $first * $second;
$msg .= "* $second = $res";
break;
case "div":
if($second != 0) {
$res = $first / $second;
$msg .= "/ $second = $res";
} else {
$res = "";
$msg = "Errore: divisione per zero";
}
break;
}
echo "<hr><h2>$msg\n</h2><hr>";
}
?>
Completiamo il programma con un piccolo accorgimento: riproponiamo come primo operando il risultato in modo che,
come le calcolatrici, è possibile operare una serie di calcoli a cascata. Per fare questo, basta modificare il campo di
input del secondo operando sostituendolo con:
<? echo "<input type=text size=10 name=first value='$res'>" ?>
|