Я хочу проверить свою форму с помощью PHP на шаблоне Smarty. Я искал в Интернете и здесь для некоторых решений, но ничего не работает в моем случае. Я хочу остаться на одной странице, если какое-либо поле пусто или заполнено неверными данными. Файл "result.php" - это страница, на которую направляются правильные отправленные данные. Я сделал это, используя javascript, но я хочу знать, как это сделать с PHP в случае отказа javascript в браузере пользователя и для более сложного контроля (пробелы, пустые поля, неправильные символы...). Опубликованный PHP-скрипт не выполняет никакой проверки, и я получаю неопределенный индекс: ошибка. Я отправляю часть своего кода. Пожалуйста помоги. Заранее спасибо!
php code (index.php):
if (!empty($_POST)) {
if (!empty($scrubbed['name']) || !empty($scrubbed['age'])) {
header("Location: result.php");
}
else {
$smarty->assign('error', 'Please fill out the form completely');
$smarty->display('index.tpl');
}
}
smarty code (index.tpl):
{$error}
<table width="600" align="center" cellpadding="5">
<form name="infoform" action="result.php" method="post">
<tr>
<td><div align="right">Name:</div></td>
<td><input type="text" name="name" size="20"/></td>
</tr>
<tr>
<td><div align="right">Age:</div></td>
<td><input type="number" name="age" size="2" min="1" max="65"/></td>
</tr>
...
php code (index.php):
Вместо этого перенаправление просто выполняет валидацию здесь:
if (!empty($scrubbed['name']) || !empty($scrubbed['age'])) {
// do something with post data, validate it
}
smarty code (index.tpl):
Чтобы избежать undefined index: error
просто:
{if isset($error)}
{* do something here if You have error... *}
{/if}