PHP操作MySQL資料庫詳解(三)

來源:互聯網
上載者:User

管理員登入後台模組

  實現管理員登入後台模組,主要包括:
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>&nbsp;</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() 函數

  • 描述:計算字串的 MD5 散列值

  • 說明:以 32字元十六進位數字形式返回散列值

  • 注意:md5的密碼編譯演算法不再安全了

  • 舉例:md5(“123456”) =e10adc3949ba59abbe56e057f20f883e

$_SERVER[]

  • 描述:擷取伺服器執行環境資訊。

  • $_SERVER[“REMOTE_ADDR”] //用戶端的IP地址

  • $_SERVER[“SERVER_ADDR”] //伺服器端的IP地址

  跳轉到登入檢查頁面後,會把管理員輸入的帳號密碼與資料庫中的記錄進行匹配,當輸入的帳號密碼正確時(即匹配成功),則跳轉到登入成功頁面(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),等待管理員重新輸入帳號密碼。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.