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

黄舟
發布: 2023-03-06 21:50:01
原創
1618 人瀏覽過

管理員登入後台模組

  實作管理員登入後台模組,主要包括:
1. 資料表的設計
2. 登入流程設計
3. 登入程式碼
4. 登入檢查代碼

1. 管理員資料表-007_admin

##密碼name管理員姓名tel最後登入IPtime最後登入時間登入總次數狀態,1啟用,0停用date帳號建立日期
欄位名稱 解釋
#id 記錄id,自動產生的
username 使用者名稱
#password
# lastloginip
lastlogin
loginhits
status帳號
ad

2.登入流程圖

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

3.登入實作

##登入頁面login.php

<!--login.php-->
<!DOCTYPE html>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>PHP操作MySQL資料庫詳解(三)</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">PHP操作MySQL資料庫詳解(三)</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>
登入後複製
#運行效果

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

  輸入帳號密碼後點選登錄,會跳到登入檢查頁面(login_check.php)

#4. 登入檢查頁面login_check.php

#

<!--login_check.php-->
<?php
//********************PHP操作MySQL資料庫詳解(三)检查**********************
//连接MySQL数据库include "conn.php";
//判断表单是否提交if(isset($_POST[&#39;ac&#39;]) && $_POST[&#39;ac&#39;]==&#39;login&#39;){    

    //获取表单提交的数据
    $username = $_POST[&#39;username&#39;];    
    $password = md5($_POST[&#39;password&#39;]);   
     //md5() 对密码进行加密

    //构建要查询的SQL语句
    $sql = "SELECT * FROM 007_admin WHERE username=&#39;$username&#39; AND password=&#39;$password&#39;";    //执行SQL语句
    $result = mysql_query($sql);    //获取结果集中的记录数
    $records = mysql_num_rows($result);    //判断是否匹配
    if($records){  //匹配
        //获取相关变量信息
        $lastloginip = $_SERVER[&#39;REMOTE_ADDR&#39;];        
        $lastlogintime = time();        //构建更新记录的SQL语句
        $sql = "UPDATE 007_admin SET lastloginip=&#39;$lastloginip&#39;, lastlogintime=$lastlogintime, loginhits=loginhits+1 WHERER username=&#39;$username&#39;";       
         //执行SQL语句
        mysql_query($sql);        //跳转到成功页面
        $url = "manage.php";        $message = "PHP操作MySQL資料庫詳解(三)成功!";
        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>
登入後複製

##執行效果

PHP操作MySQL資料庫詳解(三)  5秒後,跳到新聞管理頁面(manage.php),新聞管理頁面在
PHP操作MySQL資料庫(4)中。

登入失敗頁面 error.php

#  登入失敗的程式碼和登入成功的程式碼差不多。

運行效果

PHP操作MySQL資料庫詳解(三)#  5秒後,跳到登入頁面(login.php),等待管理者重新輸入帳號密碼。

#

以上是PHP操作MySQL資料庫詳解(三)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板