po bardzo krótkim teście wyszło na to że Twoja konstrukcja jest jak najbardziej prawidłowa
Kod
<?
$liczba = rand(10000, 99999);
print "<form method=\"post\" action=\"t.php\">".
"<img src=\"img.php?val=".$liczba."\"> dla mnie zebym nie musiał generować obrazka: $liczba<br><br>\n".
"<font>Przepisz powyższ± liczbę.</font><br>\n".
"<input type=\"text\" size=\"5\" name=\"wynik\"><br>\n".
"<input type=\"hidden\" name=\"liczba\" value=\"".$liczba."\"><br>
<input type=\"submit\" name=\"sprawdz\" value=\"Sprawdź\" /></form>\n";
if( $_POST['wynik'] == $_POST['liczba'] and $_POST['wynik'] <> null and $_POST['liczba'] <> null and $_POST['sprawdz'] <> null ) {
echo"ok";
} else {
echo"bad";
}
?>
tylko pamietaj, jak widzisz weryfikuje dopiero jesli formularz jest wypelniony w 100% nigdy mniej.
i ciekawostka w tym przykladzie. jesli puscisz formularz w IE przez enter a nie submit to formularz nie dojdzie, w firefoxie jest jak najbardziej prawidłowo...