2010-08-25 3 views
0

У меня есть система входа в facebook, что, кажется, работает хорошо, но я хочу, чтобы перенаправить на главную страницу, если пользователь вошел в систему. Так что это вершина моей страницыИгнорирование если заявление

<?php 
session_start(); 

if(!empty($_SESSION)){ 
header("Location: home.php"); 
} 

Но который игнорируется и запускает сценарий входа, как будто $ _SESSION пуст, даже если я печатаю массив Session на домашней странице, и он всегда показывает, что он имеет значения, а остальная часть скрипта все равно присваивает значения сеанса. Даже если я изменю его на if (empty($_SESSION)) или добавлю else { die()} после него, он просто полностью игнорирует его.

Теперь, если я добавлю что-либо для печати сеанса либо с помощью print_r ($ _ SESSION), либо с эхо-значением определенного значения, даже если я поместил эту сторону из инструкции if, кажется, что в $ _SESSION есть значение и делает перенаправление. Я мог бы просто положить это навсегда, поскольку он никогда не появится ... но я бы предпочел выяснить, почему он сейчас не работает.

+0

Вы отсутствуете скобку. Это проблема? –

+0

@Merlyn Morgan-Graham, он правильно указан в объяснении, и он должен был вызвать ошибку синтаксического анализа, если он пропустил скобку в своем коде. Я предполагаю, что это была опечатка и исправила ее. – 2010-08-25 07:14:06

ответ

3

Если вы не прерываете сценарий он будет, ну, работать до конца:

<?php 
session_start(); 

if(!empty($_SESSION)){ 
    header("Location: home.php"); 
    exit; 
} 
+0

Конечно! * вздох * Brain hiccup Спасибо большое всем. –

+0

@ Майкл: не забудьте принять этот ответ. – janmoesen

0

Вы должны добавить die() или exit() в блок if, либо остальная часть скрипта будет продолжена.

-1
if(!empty($_SESSION['loggedIn']){ 
header("Location: home.php"); 
die(); 
} 
+1

Кажется, ОК для меня. Попробуйте: var_dump (empty ($ _ SESSION)); ' – cbednarski

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