Как отобразить сообщение об ошибке проверки в форме на php?

#php #html #session

#php #HTML #сессия

Вопрос:

Я пытаюсь создать скрипт проверки на php для регистрационной формы. Проблема, с которой я сталкиваюсь, заключается в том, что сообщение об ошибке не отображается, и я не могу понять проблему. Я пробовал разные источники, но что-то ускользает от моего взгляда

Это в register-page.php досье. Проблемный код — это код php в теге

 <form method="post" action="register-user.php" class="col-12" id="login-position">
<?php 
if(!empty($_SESSION['errors'])){
 echo $_SESSION['errors'];                     
 }
?>
</form>
 

И это в register-user.php:

 array_push($error, "User already exists");} ($error is the array where I put the error messages.


if (count($error) == 0)
        {

            //some code to insert into database, works fine
        }

    else {
          $_SESSION['errors'] = $error;
          header("Location: register-page.php");
          exit;
    }
 

На экране ничего не печатается. В качестве упоминания в начале файла у меня есть $session_start() . Когда я нажимаю на кнопку отправки, я ожидаю, что страница обновится и отобразит сообщение об ошибке. Не могли бы вы помочь?

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

1. $session_start() или session_start() ? Кроме того, не будет ли переменная сеанса массивом? Вы не можете echo массив

2. запустите сеанс session_start() , а затем попробуйте использовать «print_r ()» print_r($_SESSION['errors']);

3. Если $_SESSION['errors'] это массив, вы не должны просто echo его

4. session_start() извините за опечатку

5. Ссылка здесь: sandbox.onlinephpfunctions.com/code /…

Ответ №1:

Как указано в комментариях к вашему вопросу:

 echo $_SESSION['errors']; 
 

никогда не будет работать, поскольку вы пытаетесь отобразить массив (как вы указывали ранее).

Попробуйте выполнить

 print_r $_SESSION['errors']; 
 

чтобы увидеть, есть ли содержимое. Затем вы можете зациклить массив, чтобы напечатать каждый элемент внутри.

Сначала вам нужно поместить

 session_start(); 
 

поверх файла, к которому вы хотите получить доступ, значения $_SESSION

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

1. Функция print_r сработала. session_start уже был там, но я действительно ценю ваш ответ.