Проверка формы Smarty с использованием PHP

1

Я хочу проверить свою форму с помощью 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>
...  
  • 0
    Вы получаете эту ошибку только при открытии формы без публикации?
Теги:
validation
smarty3

1 ответ

0
Лучший ответ

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}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню