У меня небольшой базовый веб-сайт, некоторые страницы которого пользователи могут просматривать только после входа в систему. Существует только 1 имя пользователя и пароль, поскольку сайт предназначен только для нескольких человек и безопасность не является серьезной проблемой.В любом случае, когда пользователь вводит правильное имя пользователя и пароль и отправляет сообщение, в коде устанавливается файл cookie, и страница перезагружается.Но он по-прежнему показывает содержимое, как если бы пользователь не вошел в систему. Когда я снова нажимаю кнопку sumbit или просто нажимаю на другую страницу, содержимое отображается правильно (больше элементов на панели навигации).Я не могу понять, почему он не показывает элементы в первый раз.
Вверху страницы входа в систему:
if (isset($_POST['reg'])){
if ($form_errors = validate_form()) {
show_form($form_errors);
} else {
logon();
}
} else {
show_form();
}
Содержание страницы(функция show_form)
<?php
if( isset($_COOKIE['logedon'])){
echo '<p>You are now logged on</p>';
}
else{
//shows form containing: <input type="hidden" name="reg" value="1"/>
}
?>
и, наконец, функция logon ()
function logon(){
$expire= 60 * 60 * 24 * 10000 + time();
setcookie('logedon', true, $expire);
show_form();
}
Итак, файл cookie установлен, функция show_form вызывается, нопо-прежнему показывает форму вместо эхо «вы сейчас вошли».Когда я переключаю страницу или снова нажимаю кнопку отправки, отображается эхо.Почему это не происходит в первый раз?
Пожалуйста, помогите!