English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

//第一次判斷
$_SESSION['session_level'] = $session_level;
switch($session_level > 1)
{
case"":
header("Location:http:error.php");
break;
}

//第二次判斷
$_SESSION['session_level'] = $session_level;
switch($session_level)
{
case "1":
header("Location:http:login/sick_man/index.php");
break;
case "2":
header("Location:http:login/doctor/index.php");
break;
case "3":
header("Location:http:login/curator/index.php");
break;
}

//第三次判斷
$_SESSION['session_level'] = $session_level;
switch($session_level < 3)
{
case "":
header("Location:http:error.php");
break;
}
?>

判斷那邊是我自己寫的
當我測試OK時 再檢查最後一變
發現程式碼怪怪的 但執行卻OK
改回自認為正確的 卻又出現錯誤

問題出在第一次判斷的
switch($session_level > 1)
和第三次判斷
switch($session_level < 3)

我想寫出 小於1以下 以及 大於3以上 的權限
登入時 進入 error.php 的頁面

本來是執行正常的程式碼是
switch($session_level > 1)
switch($session_level < 3)

改成自認為正確的程式碼是
switch($session_level < 1)
switch($session_level > 3)

卻出現 有1 2 3 的權限帳號
都會讀入error.php的狀況

可以跟我說明一下嗎?

2007-03-13 20:33:52 · 2 個解答 · 發問者 遇見過去 2 in 電腦與網際網路 程式設計

2 個解答

在switch裡面根本不需要用比較式
把你的判斷1跟3改成if(){}
你要的結果就會正確了

2007-03-14 06:40:17 · answer #1 · answered by Change 2 · 0 0

很懷疑你的 $session_level 的型別為何。建議你在進入比較前先 echo 一下 $session_level - 1的值。如果不是 0 / 1 / 2,那大概你的 $session_level 被隱式轉換成字串了,就會產生你所說的結果。

2007-03-13 21:39:59 · answer #2 · answered by mh 7 · 0 0

fedest.com, questions and answers