PHP/Form/Hidden Field
Saving State with a Hidden Field
<source lang="html4strict">
<?php
$num_to_guess = 42; $message = ""; if (! isset ( $_POST ["guess"] )) { $message = "Welcome!"; } else if ($_POST ["guess"] > $num_to_guess) { $message = $_POST ["guess"] . " is too big!"; } else if ($_POST ["guess"] < $num_to_guess) { $message = $_POST ["guess"] . " is too small!"; } else { $message = "Well done!"; } $guess = ( int ) $_POST ["guess"]; $num_tries = ( int ) $_POST ["num_tries"]; $num_tries ++; ?>
<html> <head> <title>A PHP Number Guessing Script</title> </head> <body>
<?php print $message?> Guess number: <?php print $num_tries?>
<form method="post" action="<?php print $_SERVER ["PHP_SELF"]?>"> <input type="hidden" name="num_tries"
value="<?php print $num_tries?>" /> Type your guess here: <input type="text" name="guess" value="<?php print $guess?>" />
</form> </body> </html>
</source>
<source lang="html4strict">
<? if ($_POST["_submit_check"]) {
process_form();
} else {
show_form();
} function process_form() {
print "Hello, ". $_POST["my_name"];
} function show_form() {
print<<<_HTML_
<form method="POST" action="$_SERVER[PHP_SELF]">
Your name: <input type="text" name="my_name">
<input type="submit" value="Say Hello">
<input type="hidden" name="_submit_check" value="1">
</form>
_HTML_;
}
?>
</source>