Scambio dei dati tra HTML e PHP.

Il sistema più comune per passare dati immessi dall'utente ad una pagina PHP é l'inserimento di questi in un form HTML e il conseguente passaggio allo script PHP specificato nell'attributo ACTION attravero il metodo POST o il metodo GET.

Il metodo GET consente di trasferire i valori accodandoli all'URL corrispondente allo script PHP. Il nome della pagina richiesta viene seguito da un punto interrogativo e successivamente da coppie <Nome del parametro>=<Valore del parametro> concatenate con il simbolo &.

Esempio: www.sito.it/pagina.php?a=12&b=13
La stringa che segue il punto interrogativo é detta query string. La pagina PHP richiamata in questo modo può fare riferimento ai valori ricevuti utilizzando la sintassi:
$_GET['Nome del parametro'];
Per recuperare i due valori di a e b visti nell'esempio precedente, lo script pagina.php dovrá quindi contenere le istruzioni:
$a=$_GET['a'];
$b=$_GET['b'];

$_GET é una variabile di tipo array superglobale, visibile sempre nel programma. L'esempio completo relativo ad uno script php che effettua la somma di due valori immessi dall'utente in una pagina HTML potrebbe essere quindi:

Pagina HTML
<html>
<head>
	<title>Somma di due valori</title>
</head>

<body>
	<h1 align=center>Somma di due numeri</h1>
	<form action="somma.php" method="GET">
	<table align=center border="1">
		<tr>	<td align="right" width="50%">a=</td>
			<td align="left" width="50%"> <input type="text" name="a"></td></tr>
		<tr>	<td align="right">b=</td>
			<td align="left"> <input type="text" name="b"></td></tr>
		<tr>	<td colspan="2" align="center"> 	
				<input type="submit" name="btnSomma" value="Somma"> </td> </tr>
	</table>
	</form>
</body>
</html>
Script PHP
<?php
	$a = $_GET['a'];
	$b = $_GET["b"];
	$somma = $a+$b;
	echo("Il risultato della somma é ".$somma."<br>");
?>

Utilizzando il metodo POST i dati inviati dal modulo alla pagina PHP non sono visibili nella barra degli indirizzi. In questo caso l'array in cui sono recuperabili i dati é $_POST che, come $_GET, é un array superglobale. Il funzionamento é pressochè identico e quindi possiamo proporre subito un esempio che confronta l'età di due individui.

Pagina HTML
<html>
<head>
	<title>Trova il maggiore</title>
</head>

<body>
	<h1 align=center>Confronto tra età</h1>
	<form action="Confronto.php" method="POST">
	<table align=center border="1">
		<tr>	<td>Primo nome=</td>
				<td> <input type="text" name="txtNome1"></td>
				<td>Età=</td>
				<td> <input type="text" name="txtEta1"></td></tr>
		<tr>	<td>Secondo nome=</td>
				<td> <input type="text" name="txtNome2"></td>
				<td>Età=</td>
				<td> <input type="text" name="txtEta2"></td></tr>
		<tr>	<td colspan="4" align="center"> 	
				<input type="submit" name="btnConfronta" value="Confronta"> </td> </tr>
	</table>
	</form>
</body>
</html>
Script PHP
<?php
	$Nome1 = $_POST['txtNome1'];
	$Nome2 = $_POST['txtNome2'];
	$Eta1 = $_POST['txtEta1'];
	$Eta2 = $_POST['txtEta2'];
	if ($Eta1 > $Eta2)
		echo($Nome1." é' il più grande dei due <br>");
	elseif ($Eta1 < $Eta2)
		echo($Nome2." é' il più grande dei due <br>");
	else 
		echo ($Nome1." e ".$Nome2." sono coetanei. <br>");
?>

É compunque possibile utilizzare l'array associativo superglobale $_REQUEST che restituisce i valori di entrambe gli array $_GET e $_POST. Specificando il nome del parametro come indice dell'array $_REQUEST é possibile ottenerne il valore sia se passato con il metodo GET sia se passato con il metodo POST. Lo script PHP dell'esempio precedente diventerebbe quindi:

<?php
	$Nome1 = $_REQUEST['txtNome1'];
	$Nome2 = $_REQUEST['txtNome2'];
	$Eta1 = $_REQUEST['txtEta1'];
	$Eta2 = $_REQUEST['txtEta2'];
	if ($Eta1 > $Eta2)
		echo($Nome1." é' il più grande dei due <br>");
	elseif ($Eta1 < $Eta2)
		echo($Nome2." é' il più grande dei due <br>");
	else 
		echo ($Nome1." e ".$Nome2." sono coetanei. <br>");
?>
Scrivi email per il tutor dei corsi
Scrivi email per l'amministratore del sito
Torna all'indice del modulo

Ultima modifica: