Вопрос

Переменные сеанса, по-видимому, у меня не работают.Я не знаю, что я делаю не так.Это код, который я использую для проверки правильности пароля:

if ($input_password_hash == $password_hash)
 {
  session_start();
  $_SESSION['is_user'] = 1;
  header("Location: ../new_look"); //or Location: index.php
 }
else echo "Wrong password.";

в файле index.php (куда он перенаправляет) у меня есть этот код:

if ($_SESSION['is_user'] == 1)
{
  //show index page with navigation bar for registered user
}

else
{
 //do something else
}

но это вообще не работает.

Сеанс, по-видимому, действительно начинается, и это можно проверить, проверив файл cookie.

Что я делаю не так?

Это было полезно?

Решение

Ты знаешь, что ты должен написать session_start() прежде чем вы воспользуетесь $_SESSION переменная в любом запросе, верно?Похоже, ты нигде этого не вставлял index.php .

Другие советы

Session_start() Начало сеанса();должен быть помещен перед любым заголовком, который будет отправлен, напримерперед любым HTML-тегом в php-файле.

Я только что вернулся с починки этого ... добавил session_start() прямо в верхней части файла - даже до того, как <html> пометка.Делая session_start() в середине выдает ошибки ... не знаю почему.Я новичок в этом.Однако спасибо за ваш быстрый ответ.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top