在大多數的網站開發過程中,有更多實際的需要,需要分割管理員和一般使用者對操作網站的權限。下面透過一個具體的程式碼實例進行一下全面的講解。給朋友更直覺的感受,可以綜合前面學過的知識,讓自己的程式碼和想法有一定的提升。
首先透過使用者登入頁面提交的使用者資訊來驗證使用者操作網站的權限。
具體開發步驟如下所示:
(1) 設計一個登陸的頁面,新增一個form表單,使用POST方式進行參數傳遞,action 指向的資料處理頁面為default.php , 新增一個使用者名稱文字方塊並命名為user,新增一個密碼網域文字方塊並命名為pwd ,透過submit按鈕進行提交跳轉,其主要的程式碼如下所示。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script type="text/javascript"> function check(form){ if(form.uesr.value == ""){ alert("请输入用户名"); } if(form.pwd.value == ""){ alert("请输入密码"); } form.submit(); } </script> </head> <body> <form name="form1" method="post" action="default.php"> <table width="520" height="390" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top"> <table width="520" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="24" align="right">用户名:</td> <td height="24" align="left"> <input name="user" type="text" id="user" size="20"> </td> </tr> <tr> <td height="24" align="right">密 码:</td> <td height="24" align="left"> <input name="pwd" type="password" id="pwd" size="20"> </td> </tr> <tr align="center"> <td height="24" colspan="2"> <input name="submit" type="submit" value="提交" onclick="return check(form);"> <input type="reset" name="reset" value="重置"> </td> </tr> <tr> <td height="76"> <span>超级用户: admin 密 码:111 </span> <br><br> <span>普通用户: tom 密 码:000 </span> </td> </tr> </table> </td> </tr> </table> </form> </body> </html>
(2)在 「提交」 按鈕的點選事件下,呼叫自訂函數 check() 來驗證表單元素是否為空。這裡使用了javascript程式碼進行驗證,有關javascript的知識請自行補腦。自訂函數 check() 程式碼如下:
<script type="text/javascript"> function check(form){ if(form.uesr.value == ""){ alert("请输入用户名"); } if(form.pwd.value == ""){ alert("请输入密码"); } form.submit(); } </script>
(3) 提交表單元素到資料處理頁 default.php。首先使用session_start() 函數初始化session變量,在使用POST方法接收表單元素的值,將取得的使用者名稱和密碼分別賦值給session變量,其程式碼如下所示:
<?php session_start(); $_SESSION['user']=$_POST['user']; $_SESSION['pwd']=$_POST['pwd']; ?>
(4)為防止其他使用者非法登入本系統,使用if 條件語句對session變數的值進行判斷,這裡繼續使用了javascript的知識,其程式碼如下所示:
<?php if($_SESSION['user']==""){ echo '<script type="text/javascript">alert("请使用正确途径登录"); history.back();</script>'; } ?>
(5)在資料處理頁面default.php中新增如下的導覽列程式碼,判斷目前用戶的級別,看已登入的用戶是管理員還是普通用戶,然後區別的輸出顯示:
<table align="center" cellpadding="0" cellspacing="0"> <tr align="center" valign="middle"> <td style="width: 140px; color: red;">当前用户: <!-- 输出当前登录用户级别--> <?php if($_SESSION['user']=="admin"&&$_SESSION['pwd']=="111"){ echo "管理员"; }else{ echo "普通用户"; } ?> </td> <td width="70"><a href="default.php">首页</a><td> <td width="70">|<a href="default.php">文章</a><td> <td width="70">|<a href="default.php">相册</a><td> <td width="100">|<a href="default.php">修改密码</a><td> <?php if($_SESSION['user']=="admin"&& $_SESSION['pwd']=="111") { //如果当前用户是管理员 //如果当前用户是管理员 则输出 用户管理 echo '<td width="100">|<a href="default.php">用户管理</a><td>'; } ?> <td width="100">|<a href="safe.php">注销用户</a><td> </tr> </table>
(6)在上面的default.php 頁面中新增「登出使用者」的超連結頁面safe.php,並在safe.php 中寫入如下的程式碼,進行刪除使用者Session,返回登入頁面:
<?php session_start(); //初始化 session unset($_SESSION['user']); //删除用户名会话变量 unset($_SESSION['pwd']); //删除密码会话变量 session_destroy(); //删除当前所有会话变量 header("location:index.php"); //跳转到用户登录页 ?>
(7) 執行這個實例,在網站使用者登入頁面輸入使用者名稱和密碼,分別以超級使用者的身分登入網站或使用一般使用者身分登入網站來運作。
#php中文網學習專題:php session(包含圖文、影片、案例)
以上是如何透過Session對使用者操作權限進行判斷的實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!