Allora, ho rifatto lo script da zero e adesso mi funziona (lo devo completare con i parametri da esaminare, ma il tutto funziona...)
parametri.php:
Codice PHP:
<?php
$parametri = array (
"altezza" => "Altezza",
"peso" => "Peso",
"eta" => "Età"
);
$sesso = array (
"m" => "M",
"f" => "F",
);
?>
form.php:
Codice PHP:
<?php
include("parametri.php");
echo "<form action=\"risultato.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>";
if (@sizeof($blank[$campo]) > 0)
{
echo "<td>Il seguente campo è obbligatorio. </td>";
}
if (@sizeof($formats[$campo]) > 0)
{
echo "<td>Il seguente campo non ha un formato corretto. </td>";
}
echo "</tr>";
}
echo "<td>Sesso:</td> <td><select name=\"sesso\" />";
if ($_POST[sesso] == '')
{
echo "<option>{$sesso['m']}</option>";
echo "<option>{$sesso['f']}</option>";
}
elseif ($_POST[sesso] == 'M')
{
echo "<option>{$sesso['m']}</option>";
echo "<option>{$sesso['f']}</option>";
}
elseif ($_POST[sesso] == 'F')
{
echo "<option>{$sesso['f']}</option>";
echo "<option>{$sesso['m']}</option>";
}
echo "</td>";
echo "<tr>";
echo "<td><input type='submit' name='submit'/></td>";
echo "</tr>";
echo "</table>";
echo "</form>";
?>
risultato.php:
Codice PHP:
<?php
include("parametri.php");
if (!isset($_POST['submit']))
{
include("form.php");
}
else
{
foreach ($parametri as $campo => $valore)
{
if (empty($_POST[$campo]))
{
$blank[$campo] = "vuoto";
}
elseif (!preg_match("/^[0-9.]{1,3}$/",$_POST[$campo]))
{
$formats[$campo] = "errato";
}
}
if (@sizeof($blank) > 0 or @sizeof($formats) > 0)
{
include("form.php");
}
else //Qui parte l'else per il confronto dei dati...
{
echo "Funziona";
}
}
?>
L'unica cosa che mi "infastidisce" è il fatto che se vedo il codice sorgente nella pagina del browser, mi trovo questo:
codice:
<form action="risultato.php" method="post"><table><tr><td align='right'>Altezza
</td>
<td><input type='text' name='altezza' size='10' maxlenght='10' value=''></td></tr><tr><td align='right'>Peso
</td>
<td><input type='text' name='peso' size='10' maxlenght='10' value=''></td></tr><tr><td align='right'>Età
</td>
<td><input type='text' name='eta' size='10' maxlenght='10' value=''></td></tr><td>Sesso:</td> <td><select name="sesso" />
Notice: Use of undefined constant sesso - assumed 'sesso' in /home/www/prove php/form.php on line 35
Notice: Undefined index: sesso in /home/www/prove php/form.php on line 35
<option>M</option><option>F</option></td><tr><td><input type='submit' name='submit'/></td></tr></table></form>
Precisamente questa parte qua:
Notice: Use of undefined constant sesso - assumed 'sesso' in /home/www/prove php/form.php on line 35
Notice: Undefined index: sesso in /home/www/prove php/form.php on line 35
Come posso fare per eliminarla? Ho provato a dare dei valori alla variabile sesso, ma poi mi si falsa lo script...
Suggerimenti?
Grazie in anticipo