Я не могу отобразить ошибки при проверке формы с помощью PHP

#php

#php

Вопрос:

Я пытаюсь проверить одно текстовое поле на той же странице с помощью PHP, но не могу отобразить ошибки. Когда я нажимаю отправить, а в текстовом поле ничего нет, это работает, не позволяя перейти на следующую страницу, но ошибок не показывает. Вот мой код.

 <?php
if($_SERVER['REQUEST_METHOD'] == 'POST')    {
    if ($_POST['IGN'] == ""){
        $errors="Please enter a IGN";   
    }
    if (isset($errors)){
        echo $errors;   
    }
}
?>

<form method="post" action="Queston1.php">
<label for="IGN" class="questionText">IGN (In Game Name)</label><br />
<input type="text" name="IGN" /><br />
<input type="submit" name="start" value="start" />
</form>
  

Я пробовал это с if (isset($errors)) и без него, чтобы посмотреть, было ли это проблемой, но оба раза я получаю один и тот же результат.

Кто-нибудь может видеть или знать, как это исправить?

Комментарии:

1. Как Queston1.php выглядит? Это тот же ресурс или другой скрипт, который обрабатывает форму?

2. Попробуйте изменить эту строку $_POST['IGN'] == "" на empty($_POST['IGN'])

3. Пожалуйста, попробуйте выполнить некоторую отладку. Добавьте var_dump(...) инструкции в стратегических местах, чтобы выяснить, что происходит в вашем коде и какие условия введены, а какие нет. Сам код выглядит нормально, вам нужно отладить, почему он не работает в вашем конкретном случае, мы не можем выполнить удаленную отладку за вас.

4. @Athafoud Если вы используете, empty вам не нужно также использовать isset .

5. @Athafoud Спасибо за вашу помощь, empty($_POST['IGN']) которая мне помогла.

Ответ №1:

Вы должны использовать jQuery или Javascript для проверки перед отправкой формы.

Но вместо

 if($_SERVER['REQUEST_METHOD'] == 'POST'){
  

Попробуйте

 $errors = '';
if(isset($_POST['IGN'])){
    if($_POST['IGN'] == ''){
        $errors .= 'Please Enter a IGN';
    }
}
if($errors!=''){
    echo $errors;
}
  

Ответ №2:

Попробуйте что-то вроде этого:

 <?php
if($_SERVER['REQUEST_METHOD'] == 'POST')    {
if ($_POST['IGN'] == ""){
  echo "Please enter a IGN";   
}

else {
    header('Location: question.php');
}


}
?>

<form method="post" action="">
<label for="IGN" class="questionText">IGN (In Game Name)</label><br />
<input type="text" name="IGN" /><br />
<input type="submit" name="start" value="start" />
</form>