| 經驗交流 |
|
|---|---|
|
使用者權限控管(一) | |
問題說明 | |
| 若網站中有部份功能僅供特定使用者操作時,我們必須對使用者的身份進行確認,以決定何人可使用何項功能。 | |
我的做法 | |
| 首先,我們必須建立一個使用者的登入介面,並在成功登入之後,記錄其相關資訊,以便他去操作符合其權限的各項功能。這個部份的做法,請自行參考「使用者登入」中的說明。 | |
| 其次,在僅供特定使用者操作的功能中,必須針對使用者進行檢查,拒絕讓未經合法登入者使用。在這些程式中,我們可以加入一段如下方所示的程式碼,將「不速之客」逐出: | |
|
<? // 啟用 Session session_start(); // 將未登入者,導向至首頁 if ( empty($_SESSION["ssnUSERNAME"]) ) { Header("location:/index.html"); exit; } ?> | |
|
若您的應用程式中,還針對已登入的使用者做不同身份等級的區隔,例如:在「公告管理系統」中,由職員所發布的公告內容,需再經由主管確認之後,方能顯示在網站中;而由主管親自發布的公告內容,得免經再確認的程序。那麼,您可以用類似這樣的方法: | |
|
<? ...... // 主管身份,免經「再確認」程序 if ( $_SESSION["ssnUSERLEVEL"] < 3 ) { $sql = "INSERT INTO bulletin ( no, ......, approve ) VALUES ( 28, ......, 1 ); "; mysql_db_query($cfgDatabaseName, $sql, $link); } // 職員身份,需經「再確認」程序 else { $sql = "INSERT INTO bulletin ( no, ......, approve ) VALUES ( 28, ......, 0 ); "; mysql_db_query($cfgDatabaseName, $sql, $link); } ...... ?> | |
|
如果有些功能只能給高階使用者操作的話,類似上述的檢查方式,您可以在這些程式中,加入一段如下方所示的程式碼,以拒絕其他使用者進入: | |
|
<? // 啟用 Session session_start(); // 將未登入或身份等級不足者,導向至首頁 if ( empty($_SESSION["ssnUSERNAME"]) || $_SESSION["ssnUSERLEVEL"] >= 3 ) { Header("location:/index.html"); exit; } ?> | |
| 經驗交流 |
|


問題說明