2010-06-04 155 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();