#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 уже был там, но я действительно ценю ваш ответ.