Я использую класс для взаимодействия с $ _POST, аналогично следующему:
// create the object
$post = new PostData();
// register your requirements... write whatever methods you need
// for each call,read $_POST, check criteria, and mark the field
// as good or bad...
$post->required ('LastName');
$post->required ('FirstName');
$post->numeric ('Age');
$post->optional ('MiddleInitial');
$post->regExp ('/\d{3}/','AreaCode');
$post->email ('Email');
// check the status
if (!$post->isValid ())
{
$_SESSION['FailedPostData'] = $post;
header ('Location: page.php');
}
// normal form processing
Затем на странице page.php вы можете увидеть, присутствует ли FailedPostData в сеансе, прочитать его, чтобы найти информацию, введенную в прошлый раз, а также какие поля не удалось выполнить. Я использую шаблонизатор с макросами, который позволяет мне легко заново заполнять поля ввода и отмечать ошибки. В противном случае вы можете получить много кода для простой формы ...
Вам также понадобится механизм, чтобы быть уверенным, что устаревшие FailedPostData не зависают в сеансе и не запутывают вещи.