2015-06-01 2 views
1

Я хочу проверить свою форму с помощью PHP на шаблоне Smarty. Я искал в Интернете и здесь для некоторых решений, но ничего не работает в моем случае. Я хочу остаться на одной странице, если какое-либо поле пусто или заполнено неверными данными. Файл «result.php» - это страница, на которую направляются правильные отправленные данные. Я сделал это, используя javascript, но я хочу знать, как это сделать с PHP в случае отказа javascript в браузере пользователя и для более сложного прогона проверки (пробелы, пустые поля, неправильные символы ...). Опубликованный PHP-скрипт не выполняет никакой проверки, и я получаю неопределенный индекс: ошибка. Я отправляю часть своего кода. Пожалуйста помоги. Заранее спасибо!Смарт-форма проверки с использованием PHP

код PHP (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 код (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

Вы получаете эту ошибку только тогда, когда вы открываете форму без размещения? –

ответ

0

PHP код (index.php):

Вместо перенаправления просто выполните валидацию здесь:

if (!empty($scrubbed['name']) || !empty($scrubbed['age'])) { 
    // do something with post data, validate it 
} 

код Smarty (index.tpl):

Чтобы избежать сообщений undefined index: error просто сделать:

{if isset($error)} 

    {* do something here if You have error... *} 

{/if}