Ciao a tutti,

sto cercando di metter su uno script che in base all'inserimento di altezza, peso ed età, dica se si è in forma oppure no.

Attualmente il tutto è composto da tre file php: uno per stabilire un array, uno per il form e uno per verificare i dati inseriti e confrontare le variabili per poi esprimere un risultato.

Precisamente:

parametri.php

codice:
<?php
	$parametri = array (
						"altezza" => "Altezza",
						"peso"	  => "Peso",
						"eta"	  => "Età"
						);
?>
form.php

codice:
<?php

echo "<form action=\"risultati.php\" method=\"post\">";
	echo "<table>";
		foreach ($parametri as $campo => $valore)
		{
			if(isset($_POST[$campo]))
			{
				$valore = $_POST[$campo];
			}
			else
			{
				$valore = "";
			}
			echo "<tr><td align='right'>{$parametri[$campo]}
</td>
				  <td><input type='text' name='$campo' size='10' maxlenght='10' value='$valore'></td></tr>";
		}
		
		echo "<td>Sesso:</td> <td><select name=\"sesso\" />";
								echo "<option>M</option>";
								echo "<option>F</option>";
		echo "</td>";
		echo "<tr>";	
			echo "<td><input type='submit' name='submit'/></td>";
		echo "</tr>";
	echo "</table>";
echo "</form>";

?>

risultati.php

codice:
<?php
include("parametri.php");

if (!isset($_POST['submit']))
	{
	include("form.php");
	}
else {
		foreach ($_POST as $campo => $valore) 
		{
			if (empty($_POST[$campo]))
			{
				$blank[$campo] = "vuoto";
			}
			else
			{
				if (!preg_match("/^[0-9.]{5}$/",$valore))
				{
					$formats[$campo] = "errato";
				}
			}	
		}
	}
/*Verifichiamo*/
if (@sizeof($blank) > 0 or @sizeof($formats) >0)
{
	if (@sizeof($blank) > 0)
	{
		echo "I seguenti campi obbligatori non sono stati riempiti: 
";
		foreach ($blank as $campo => $valore)
		{
			echo "&bull; {$parametri[$campo]} 
";
		}
	}
	if (@sizeof($formats) > 0)
	{
		echo "I seguenti campi non hanno un formato corretto: 
";
		foreach ($formats as $campo => $valore)
		{
			echo "&bull; {$parametri[$campo]} 
";
		}
	}
	echo "<hr>";
	include("form.php");
}
/*else
{
Qui parte lo script per confrontare i vari parametri
}*/
?>


Allora: il form me lo visualizza correttamente, ma una volta inseriti i valori (o anche se non li inserisco), mi dà quest'errore:


codice:
I seguenti campi obbligatori non sono stati riempiti: 
• Altezza 
• Peso 
• Età 
I seguenti campi non hanno un formato corretto: 

Notice: Undefined index: sesso in C:\Programmi\EasyPHP5.3.0\www\script peso forma\risultati.php on line 40
• 

Notice: Undefined index: submit in C:\Programmi\EasyPHP5.3.0\www\script peso forma\risultati.php on line 40
•
Al posto di preg_match ho usato ereg, ma mi dice che è ormai obsoleto e quindi non saprei come gestire il tutto. E poi non so perché mi dà come errore la variabile sesso e submit.

Qualcuno potrebbe aiutarmi?

Grazie in anticipo