Esercizio PHP: Calcolatrice utilizzando l'array superglobale $_GET
Spiegazione del Codice: Calcolatrice Web
Questo codice crea una semplice calcolatrice web composta da due file che lavorano insieme: una pagina HTML per l'interfaccia utente e uno script PHP per elaborare i calcoli.
File index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form method="GET" action="calcoli.php">
<label for="n1">Numero 1</label>
<input type="number" name="n1">
<label for="n2">Numero 2</label>
<input type="number" name="n2">
<label for="operatore">Operatore</label>
<input type="text" name="operatore">
<input type="submit" value="Calcola">
</form>
</body>
</html>
Cosa fa questo file:
- Struttura HTML base: Definisce una pagina web standard con DOCTYPE, head e body
- Form di input: Crea un modulo con tre campi:
- Due campi numerici per inserire i numeri da calcolare
- Un campo di testo per inserire l'operatore matematico
- Un pulsante "Calcola" per inviare i dati
Caratteristiche importanti:
method="GET": I dati vengono inviati tramite URL (visibili nella barra degli indirizzi)action="calcoli.php": Quando si clicca "Calcola", i dati vengono inviati al file calcoli.phptype="number": Garantisce che nei primi due campi si possano inserire solo numeri
File calcoli.php
<?php
$n1 = (int) $_GET["n1"];
$n2 = (int) $_GET["n2"];
$operatore = isset($_GET["operatore"]) ? strtoupper($_GET["operatore"]) : null;
$totale = 0;
switch($operatore){
case "S":
$totale = $n1 + $n2;
break;
case "SO":
$totale = $n1 - $n2;
break;
case "M":
$totale = $n1 * $n2;
break;
default:
echo "Errore! operazione non consentita";
}
echo "Operazione richiesta: ".$operatore."<br>";
echo "Numero 1: ".$n1."<br>";
echo "Numero 2: ".$n2."<br>";
echo "Totale: ".$totale;
?>
Cosa fa questo script:
1. Raccolta dei dati
- Recupera i valori inviati dal form HTML tramite
$_GET - Converte i numeri in interi con
(int) - Controlla se l'operatore esiste e lo converte in maiuscolo
2. Elaborazione con switch
Il costrutto switch verifica quale operazione eseguire:
- "S": Somma (n1 + n2)
- "SO": Sottrazione (n1 - n2)
- "M": Moltiplicazione (n1 × n2)
- default: Mostra errore per operatori non riconosciuti
3. Output dei risultati
Stampa a video:
- L'operazione richiesta
- I due numeri inseriti
- Il risultato del calcolo
Come funziona il sistema completo:
- L'utente apre
index.htmlnel browser - Compila il form inserendo due numeri e un operatore (S, SO, o M)
- Clicca "Calcola"
- Il browser invia i dati a
calcoli.php - Lo script PHP elabora i dati e mostra il risultato
Esempio di utilizzo:
- Numero 1: 10
- Numero 2: 5
- Operatore: S
Risultato visualizzato:
Operazione richiesta: S
Numero 1: 10
Numero 2: 5
Totale: 15
Questo è un esempio pratico di come HTML e PHP possano collaborare per creare applicazioni web interattive!
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form method="GET" action="calcoli.php">
<label for="n1">Numero 1</label>
<input type="number" name="n1">
<label for="n2">Numero 2</label>
<input type="number" name="n2">
<label for="operatore">Operatore</label>
<input type="text" name="operatore">
<input type="submit" value="Calcola">
</form>
</body>
</html>
calcoli.php
<?php
$n1 = (int) $_GET["n1"];
$n2 = (int) $_GET["n2"];
$operatore = isset($_GET["operatore"]) ? strtoupper($_GET["operatore"]) : null;
$totale = 0;
switch($operatore){
case "S":
$totale = $n1 + $n2;
break;
case "SO":
$totale = $n1 - $n2;
break;
case "M":
$totale = $n1 * $n2;
break;
default:
echo "Errore! operazione non consentita";
}
echo "Operazione richiesta: ".$operatore."<br>";
echo "Numero 1: ".$n1."<br>";
echo "Numero 2: ".$n2."<br>";
echo "Totale: ".$totale;
?>