2013-03-06 76 views
0

這是我的第一篇文章,所以請新手如此評論。我對PHP很好,但我似乎在這裏錯過了一些東西(顯然)。我希望在用戶登錄後重定向用戶,具體取決於他們分配的用戶組。因此,會員將前往會員區,管理員到管理區,最後superadmin到superadmin區。該代碼最近正在工作,但似乎在我爲網頁頂部的鏈接添加了JavaScript下拉菜單後就停止了。我已經縮小的問題降到這個片段:重定向用戶登錄後根據他們的訪問級別(用戶組)

if($count==1){ 

     // Register $myusername, $mypassword and redirect to file "login_success.php" 
     $_SESSION['myusername'] = $myusername; 
     $_SESSION['mypassword'] = $mypassword; 
     $_SESSION['myusergroup'] = $myusergroup; 
      if($usergroup == "SuperAdmin"){ 
      header("location:superadmin_login_success.php"); 
      exit(); 
      } 
      elseif($usergroup == "Admin"){ 
      header("location:admin_login_success.php"); 
      exit(); 
      } 
      elseif($usergroup == "Member"){ 
      header("location:login_success.php"); 
      exit(); 
      } 
    } 

計數表示從SQL查詢返回的結果。該查詢選擇表中所有字段,其中用戶名和密碼字段等於我之前在登錄時提交的表單。我的所有登錄PHP代碼都位於同一個網頁上,並且在PHP開頭處的if語句阻止代碼在未提交表單時執行。任何人都可以發現這個片段或我的邏輯有什麼問題,我一直在類似的情況下一直盯着看這個問題,我仍然無法到任何地方。

正如你所看到的,我正在使用頭部函數來重定向,並且在調用頭部之前打印輸出到頁面上時,函數會出現問題。我對這個問題的具體問題並不完全確定,但如果有人能夠澄清並舉例,那麼我將不勝感激。分別編寫這些腳本並在需要時包含它們是否合適和正確?我也一直在想這個。

非常感謝

里斯

回答

0

$ myusergroup和$ usergroup有什麼區別?你的if語句檢查$ usergroup。是否設置或應該是他們檢查的$ myusergroup?

+0

謝謝,我最近更改了 – 2013-03-06 22:49:53

0

確保您在發送之前header()沒有輸出。即使很小的空白也會毀掉你的重定向。

+0

謝謝。我現在明白標題必須放在任何印刷的HTML或PHP之上了! – 2013-03-07 02:03:36

0

我注意到,您在分配$ myusergroup到您的會話變量,但在你的if語句,你只調用$用戶組。是$ usergroup在其他地方使用?

+0

謝謝,我最近更改了變量,以與用戶名和密碼一起使用的相似命名約定。我現在也理解頭部必須放置在任何印刷的HTML或PHP之上的方式。再次感謝你。 – 2013-03-07 02:12:33