忽略if语句

时间:2010-08-25 07:03:31

标签: php session redirect if-statement

我有一个Facebook登录系统,似乎工作正常,但如果用户登录,我想重定向到主页。这是我的页面顶部

<?php
session_start();

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

但是这会被忽略,它会运行登录脚本,好像$ _SESSION是空的,即使我在主页上打印Session数组,它总是显示它有值,加上脚本的其余部分无论如何都会分配会话值。即使我将其更改为if (empty($_SESSION))或在其后添加else { die()},它也会完全忽略它。

现在,如果我使用print_r($ _ SESSION)添加任何内容来打印会话或者回显一个特定的值,即使我把它放在if语句的外面,它似乎意识到$ _SESSION有一个值并重定向。我可以把它永久地放在那里,因为它永远不会出现......但我宁愿弄明白为什么它现在不起作用。

2 个答案:

答案 0 :(得分:4)

如果你不打断脚本,它会一直运行到最后:

<?php
session_start();

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

答案 1 :(得分:0)

您应该在die()块中添加exit()if,否则脚本的其余部分将继续执行。