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 "• {$parametri[$campo]}
";
}
}
if (@sizeof($formats) > 0)
{
echo "I seguenti campi non hanno un formato corretto:
";
foreach ($formats as $campo => $valore)
{
echo "• {$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