PHP проверяет пустое значение из отдельного файла - PullRequest
0 голосов
/ 03 декабря 2011

У меня есть страница регистрации, и я собираюсь проверить значения каждого поля в javascript и PHP.Проблема в том, что у меня есть регистрационный код в отдельном файле.Я поместил его в отдельный файл, потому что я запрашиваю базу данных и многое другое, поэтому я исключил возможность публикации на себя.Затем я подумал, что перенаправление на отдельную страницу с ошибкой было бы излишним.

Итак, я бы хотел перенаправить на страницу регистрации с сообщением об ошибке вверху или что-то в этом роде, как если бы я отправлял форму себе.Как я могу сделать это?

Ответы [ 3 ]

1 голос
/ 03 декабря 2011

Можно иметь регистрационный код в отдельном файле.
Однако этот файл должен быть самой страницей регистрации.
Хотя форма хранится в другом файле и просто включается.

Вот эскиз регистрационного кода

<?  
include 'config.php';
if ($_SERVER['REQUEST_METHOD']=='POST') {  

  $err = array();
  //performing all validations and raising corresponding errors
  if (empty($_POST['name']) $err[] = "Username field is required";  
  if (empty($_POST['text']) $err[] = "Comments field is required";  

  if (!$err) {  
    // if no errors - saving data 
    // and then redirect:
    header("Location: ".$_SERVER['PHP_SELF']);
    exit;
  }  else {
    // all field values should be escaped according to HTML standard
    foreach ($_POST as $key => $val) {
      $form[$key] = htmlspecialchars($val);
    }
} else {
  $form['name'] = $form['comments'] = '';  
}
include 'form.tpl.php';
?>  

и шаблона , содержащего форму и сообщения об ошибках

<? if ($err): ?>
  <? foreach($err as $e): ?>
<div class="err"><?=$e?></div>
  <? endforeach ?>
<? endif ?>
<form>
  <input type="text" name="name" value="<?=$form['name']?>">
  <textarea name="comments"><?=$form['comments']?></textarea>
  <input type="submit">
</form>

Это наиболее распространенный способобработки формы под названием POST / Redirect / GET

0 голосов
/ 03 декабря 2011

Почему бы вам просто не опубликовать для себя?Все, что вам нужно сделать, это структурировать php таким образом, чтобы после проверки он вставлял данные и т. Д.(на мой взгляд, это не приятный пользовательский опыт ... и пользователь должен снова заполнить все данные.)

0 голосов
/ 03 декабря 2011

Вы можете опубликовать на своей странице аутентификации, проверить, есть ли у них пустое поле или что-то еще, а затем перенаправить с помощью

header(Location:<your url here>?error=1);

вернитесь на исходную страницу и попросите эту страницу проверить переменную GET $_GET['error']. Если эта переменная равна 1, выведите некоторую ошибку.

Это то, что вы ищете?

...