Вы можете указать форму для отправки самому PHP, а затем проверить $_POST
переменные для обработки формы. Этот метод очень хорош для проверки ошибок, так как вы можете установить ошибку и затем перезагрузить форму с любой информацией, ранее предоставленной пользователем, по-прежнему в такте (т.е. они не теряют свою отправку).
Когда нажимается кнопка «отправить», она размещает информацию на той же странице, выполняя код PHP вверху. Если происходит ошибка (на основе ваших проверок), форма перезагрузится для пользователя с отображенными ошибками и любой информацией, предоставленной пользователем, все еще в полях. Если ошибка не возникает, вы увидите страницу подтверждения вместо формы.
<?php
//Form submitted
if(isset($_POST['submit'])) {
//Error checking
if(!$_POST['yourname']) {
$error['yourname'] = "<p>Please supply your name.</p>\n";
}
if(!$_POST['address']) {
$error['address'] = "<p>Please supply your address.</p>\n";
}
//No errors, process
if(!is_array($error)) {
//Process your form
//Display confirmation page
echo "<p>Thank you for your submission.</p>\n";
//Require or include any page footer you might have
//here as well so the style of your page isn't broken.
//Then exit the script.
exit;
}
}
?>
<form method="post" action="<?=$_SERVER['PHP_SELF']?>">
<?=$error['yourname']?>
<p><label for="yourname">Your Name:</label><input type="text" id="yourname" name="yourname" value="<?=($_POST['yourname'] ? htmlentities($_POST['yourname']) : '')?>" /></p>
<?=$error['address']?>
<p><label for="address">Your Address:</label><input type="text" id="address" name="address" value="<?=($_POST['address'] ? htmlentities($_POST['address']) : '')?>" /></p>
<p><input type="submit" name="submit" value="Submit" /></p>
</form>