2010-06-04 68 views
1

我有一个名为loggedon的会话变量。我在用户登录时将其设置为1,当他们注销时将其设置为0。PHP开关案例问题

我做了一个swtich语句,如下所示。但它并不像它应该那样工作。

$state = $_SESSION['loggedon']; 
    switch ($state) 
     { 
     case 0: 
      include("../includes/login.php"); 
      break; 
     case 1: 
      echo "logged in"; 
      echo "<br /><a href='../logoff.php'>Log off</a>"; 
     break; 
     default: 
      include("../includes/login.php"); 
} 

任何人都明白为什么?

干杯,

Jonesy

+3

你是什么意思,它不工作,因为它应该?你使用会话变量之前是否初始化会话? – RaYell 2010-06-04 11:51:28

+0

什么不起作用?你会得到一个错误或什么都没有? – Thariama 2010-06-04 11:51:58

+0

@RaYell谢谢我完全忘了我不得不session_start();干杯! – iamjonesy 2010-06-04 11:56:27

回答

0
switch ($_SESSION['loggedon']) 
    { 
    case 1: 
     echo "logged in"; 
     echo "<br /><a href='../logoff.php'>Log off</a>"; 
    break; 
    default: 
     include("../includes/login.php"); 

}

看起来更简洁和应该做同样:-) 对不起,不被格式化为一个代码,该代码...

1

如果$ _SESSION ['loggedon'] var的内容只是0/1,则可以使用if语句(PHP读取1作为true,其余数字为false),其中会更快一点。 只需做到以下几点:

if($_SESSION['loggedon']){ 
     echo "logged in"; 
     echo "<br /><a href='../logoff.php'>Log off</a>"; 
}else{ 
     include("../includes/login.php"); 
} 

记住,你必须在session_start();