管理員登入後台模組
實現管理員登入後台模組,主要包括:
1. 資料表的設計
2. 登入流程設計
3. 登入代碼
4. 登入檢查代碼
1. 管理員資料表——007_admin
| 欄位名 |
解釋 |
| id |
記錄id,自動產生的 |
| username |
使用者名稱 |
| password |
密碼 |
| name |
管理員姓名 |
| tel |
電話 |
| lastloginip |
最後登入IP |
| lastlogintime |
最後登入時間 |
| loginhits |
登入總次數 |
| status |
帳號狀態,1啟用,0停用 |
| addate |
帳號建立日期 |
2.登入流程圖
3.登入實現
登入頁面 login.php
<!--login.php--><!DOCTYPE html><html ><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>使用者登入</title></head><body><form name="form1" method="post" action="login_check.php"><table width="500" border="1" bordercolor="#ccc" rules="all" align="center" cellpadding="5"> <tr> <th colspan="2" bgcolor="#ccc">使用者登入</th> </tr> <tr> <td width="80" align="right">使用者名稱:</td> <td><input type="text" name="username" /></td> </tr> <tr> <td align="right">密碼:</td> <td><input type="password" name="password"/></td> </tr> <tr> <td> </td> <td> <input type="submit" value="登入"/> <input type="hidden" name="ac" value="login"/> <!--隱藏欄位,向伺服器隱式傳值,用於表單驗證--> </td> </tr></table></form></body></html>
運行效果
輸入帳號密碼後點擊登入,會跳轉到登入檢查頁面(login_check.php)
4. 登入檢查頁面 login_check.php
<!--login_check.php--><?php//********************使用者登入檢查**********************//串連MySQL資料庫include "conn.php";//判斷表單是否提交if(isset($_POST['ac']) && $_POST['ac']=='login'){ //擷取表單提交的資料 $username = $_POST['username']; $password = md5($_POST['password']); //md5() 對密碼進行加密 //構建要查詢的SQL語句 $sql = "SELECT * FROM 007_admin WHERE username='$username' AND password='$password'"; //執行SQL語句 $result = mysql_query($sql); //擷取結果集中的記錄數 $records = mysql_num_rows($result); //判斷是否匹配 if($records){ //匹配 //擷取相關變數資訊 $lastloginip = $_SERVER['REMOTE_ADDR']; $lastlogintime = time(); //構建更新記錄的SQL語句 $sql = "UPDATE 007_admin SET lastloginip='$lastloginip', lastlogintime=$lastlogintime, loginhits=loginhits+1 WHERER username='$username'"; //執行SQL語句 mysql_query($sql); //跳轉到成功頁面 $url = "manage.php"; $message = "使用者登入成功!"; header("location:success.php?url=$url&message=$message"); }else{ //未匹配 $message = urlencode("使用者名稱或密碼不正確!"); header("location:error.php?message=$message"); }}else{ //如果非法操作 $message = urlencode("非法操作!"); header("location:error.php?message=$message");}?>
代碼PS:
md5() 函數
$_SERVER[]
跳轉到登入檢查頁面後,會把管理員輸入的帳號密碼與資料庫中的記錄進行匹配,當輸入的帳號密碼正確時(即匹配成功),則跳轉到登入成功頁面(success.php);否則,匹配不成功,跳轉到登入失敗頁面(error.php)。
登入成功頁面 success.php
<!--success.php--><?php$message=urldecode($_GET["message"]);$url=trim($_GET["url"]);?><!DOCTYPE><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>操作成功</title><style type="text/css">*{margin:0px;padding:0px;}.box{ width:450px; border:1px solid #f0f0f0; background:#FFFFCC; margin:100px auto; padding:20px; font-size:14px; line-height:180%; color:#444;}h2{margin-bottom:10px;} #time{color:#FF0000; }. .color2{color:#0099FF;} a.a1:link,a.a1:visited{color:#0099FF;text-decoration:none;} a.a1:hover{color:#FF0000;text-decoration:underline;} </style></head><body><p class="box"> <h2 align="center">操作成功</h2> <p><b>提示:<?php echo $message;?></b></p> <p>系統將在 <span id="time">5</span> 秒鐘後自動跳轉,如果不想等待,請點擊 <a class="a1" href="<?php echo $url?>">這裡</a> 跳轉。</p> </p></body></html><script language="javascript">function playSec(num){ //擷取id=time的元素對象 var time = document.getElementById("time"); time.innerHTML = num; if(--num >0) { window.setTimeout("playSec("+num+")",1000); }else { location.href="<?php echo $url?>"; }}playSec(5);</script>
運行效果
5秒後,跳轉到新聞管理頁面(manage.php),新聞管理頁面在PHP操作MySQL資料庫(4)中。
登入失敗頁面 error.php
登入失敗的代碼和登入成功的代碼差不多。
運行效果
5秒後,跳轉到登入頁面(login.php),等待管理員重新輸入帳號密碼。