2014-01-05 5 views
0

Я хотел бы знать, может ли кто-нибудь помочь мне с этой переменной переменной $ _SESSION. Я хочу добавить скрипт на страницу регистрации, которая позволит кому-то, кто уже зарегистрировался, получить доступ к странице из бэкэнд, а кто-то, кто не входит в систему, перенаправляется на страницу индекса. В настоящее время происходит то, что страница, при обращении извне, перенаправляется на индекс, который является идеальным, но изнутри бэкэнд при нажатии на добавление пользователя он остается на той же странице. Пожалуйста, извините все ошибки = еще очень новые для PHP.Проверка сессии, чтобы перейти к соответствующей странице

require 'function.php'; 
session_start(); 

if (isset($_SESSION['authenticated']) && !empty($_SESSION['authenticated'])) { 
header('Location: ../../scripts/backend_login/signup.php'); 
} else { 
header('Location: ../../scripts/backend_login/index.php'); 
} 
+0

добавить 'session_start()' перед условием if. –

+0

@ Midhun MP: Спасибо за быстрый ответ! Я добавил код, предложенный вами (отредактированный код выше), и он все еще делает то же самое. – user3143499

+0

ok, Являются ли места правильными? Потому что в вашем состоянии, если аутентифицированный пользователь перейдет на страницу регистрации, а пользователь, который не зарегистрирован, перейдет на страницу индекса, это правильно? –

ответ

0

Начните с того, что у вас есть session_start() на каждой странице, где требуется переменная сеанса.

Затем измените свой код на этот:

if (isset($_SESSION['authenticated']) { 
    if ($_SESSION['authenticated'] == true) { 
    header('Location: ../../backend_login/index.php'); 
} else {   
    header('Location: ../../backend_login/signup.php'); 
} 
} 

Попробуйте и посмотреть, что

Истинный будет работать только тогда, когда это значение авторизованной сессии

---- ИЗМЕНИТЬ ----

($ _SESSION ['authenticated'] == true) не является жизненно важным, это просто еще один отказоустойчивый, чтобы быть уверенным, что правильное состояние сеанса активно, может быть завершено wi thout этой

+0

Howzit Lemuel! Спасибо за ваш вклад. Самое странное, что происходит, когда я вставляю свой код, он дает мне ошибку Parse: синтаксическая ошибка, неожиданный конец файла. В Aptana 3 я не вижу синтаксических ошибок в вашем коде только синтаксическую ошибку в конце файла. Но когда я выхожу из вашего кода, у него не было ошибок. Любая идея почему? Заранее спасибо. – user3143499

+0

ОК, конец файла отсортирован. Теперь, когда я нахожусь в админке - он переходит на страницу регистрации, но когда он не вошел в систему и в браузере вручную вводит URL-адрес - он переходит на страницу регистрации, а не индекс. ive попытался использовать оба заголовка, но он делает то же самое независимо. – user3143499

+0

Сделано редактирование, которое исправляет ошибку eof, чтобы проверить ваш код, поместить эхо в оператор if, чтобы проверить, какое условие выполняется. Потому что переключение заголовков должно работать –

0

Вы должны начать сеанс на каждой странице, где вы используете $ _SESSION

session_start() перед остальной частью кода

+0

@ Gert B: Привет, Герт B, Спасибо за ваш ответ. Когда я это делаю, возникает одна и та же проблема. – user3143499

0

Я установил свою собственную проблему. Вот решение.

require_once('function.php'); 
session_start(); 

if (!is_user()) { 
redirect('index.php'); 
} 

благодарит всех вас за помощь!

Смежные вопросы