PHP操作MySQL数据库详解(三)
管理员登录后台模块
实现管理员登录后台模块,主要包括:
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() 函数
描述:计算字符串的 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),等待管理员重新输入账号密码。
以上是PHP操作MySQL数据库详解(三) 的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

MySQL适合初学者使用,因为它安装简单、功能强大且易于管理数据。1.安装和配置简单,适用于多种操作系统。2.支持基本操作如创建数据库和表、插入、查询、更新和删除数据。3.提供高级功能如JOIN操作和子查询。4.可以通过索引、查询优化和分表分区来提升性能。5.支持备份、恢复和安全措施,确保数据的安全和一致性。

Navicat本身不存储数据库密码,只能找回加密后的密码。解决办法:1. 检查密码管理器;2. 检查Navicat的“记住密码”功能;3. 重置数据库密码;4. 联系数据库管理员。

使用 Navicat Premium 创建数据库:连接到数据库服务器并输入连接参数。右键单击服务器并选择“创建数据库”。输入新数据库的名称和指定字符集和排序规则。连接到新数据库并在“对象浏览器”中创建表。右键单击表并选择“插入数据”来插入数据。

在 Navicat 中执行 SQL 的步骤:连接到数据库。创建 SQL 编辑器窗口。编写 SQL 查询或脚本。单击“运行”按钮执行查询或脚本。查看结果(如果执行查询的话)。

可在 Navicat 中通过以下步骤新建 MySQL 连接:打开应用程序并选择“新建连接”(Ctrl N)。选择“MySQL”作为连接类型。输入主机名/IP 地址、端口、用户名和密码。(可选)配置高级选项。保存连接并输入连接名称。

Navicat 无法连接数据库的常见原因及其解决方法:1. 检查服务器运行状态;2. 核对连接信息;3. 调整防火墙设置;4. 配置远程访问;5. 排除网络问题;6. 检查权限;7. 保障版本兼容性;8. 排除其他可能性。

Navicat 连接数据库时常见的错误及解决方案:用户名或密码错误(Error 1045)防火墙阻止连接(Error 2003)连接超时(Error 10060)无法使用套接字连接(Error 1042)SSL 连接错误(Error 10055)连接尝试过多导致主机被阻止(Error 1129)数据库不存在(Error 1049)没有权限连接到数据库(Error 1000)

使用 Navicat 连接本地 MySQL 数据库的步骤:创建连接,并设置连接名称、主机、端口、用户名、密码。测试连接,确保参数正确。保存连接。从连接列表中选择新连接。双击要连接的数据库。
