Привет У меня есть странный вопрос, где у меня есть страница входа в index.php: в которой необходимо войти в страницу Я настраиваю:
$_SESSION['user'] = $row['username'];
для пользователей, которые успешно вошли в систему. Тогда на целевой странице у меня есть чек, чтобы увидеть, если пользователь вошел в систему, если не будет перенаправлен на страницу регистрации:
if(!$session->is_loggedin()) {
// session no set redirects to login page
$session->redirect('index.php');
}
Внутри файла класса:
public function is_loggedin() {
if(isset($_SESSION['user'])) {
return true;
}
}
Так проблема, с которой я столкнулась, представлена только на интернет-сервере на локальном хосте xampp, все работает нормально. Проблема в том, что я вхожу на сайт. то Если выйдите из системы и введите URL-адрес входа в систему, я получаю перенаправление на home.php, где я делаю print_r ($ _ SESSION), и он показывает, что в массиве есть сеанс, как и сеанс. но когда я нажимаю на какие-либо ссылки в меню, я отправляю обратно на страницу входа без сеанса.
и должны войти в систему.
код на странице index.php, чтобы проверить, если сессия существует:
if($login->is_loggedin()!="") {
$login->redirect('home.php');
}
Так что в этом случае каждый раз, когда пользователь приходит на страницу он показывает, как он вошел в систему, но это не так, и тогда он может видеть home.php, который должен быть защищен. Как только пользователь нажимает на любую ссылку в меню, он получает перенаправление на страницу входа.
Я предполагаю, что это может быть некоторая конфигурация php, поскольку на локальном хосте XAMPP работает. Любая идея, где я должен смотреть?
EDIT: Я поместил следующую проверку на индексной странице:
if(isset($_SESSION['user']) && !empty($_SESSION['user'])) {
echo 'Set and not empty, and no undefined index error!';
}
, чтобы проверить, есть ли сессия, так что каждый раз, когда я открываю URL он показывает TRUE. когда я открываю /home.php, он открывает домашнюю страницу, нажимая на любые ссылки, перенаправленные на домашнюю страницу, где она ничего не повторяет. Кажется, что сервер кэширует первую страницу с сессией каждый раз, когда я ее открываю. или браузер автоматически отправляет эту информацию на сервер.
Или другой случай сценарий, который возникает иногда бывает. Я открываю сайт и регистрирую его. нажатие любой кнопки. Я перенаправляюсь на страницу входа после второй попытки входа в систему, все работает отлично.
Другое дело, что встречается, в том, что при установлении поддельной сессии все Bootstrap Glyphicon показываются квадратики вместо реальных иконок
я вижу, что в PHP Ставки session.use_only_cookies установлен в положение ON, возможно, это вопрос ,
Обязательный вопрос: вы используете 'session_start()' на всех страницах с сессиями, не так ли? – Machavity
Несколько раз я ответил на этот вопрос, и ответ был следующим: вы пытались использовать массив сеансов, который, как вы считали, уже был установлен, но не был, поэтому при перезагрузке страницы был найден массив сеансов. Это и/или вы только начали сеанс на основе условного. –
Итак, всегда устанавливайте/начинайте сеанс сначала, независимо. И проверьте, установлен ли он. –