PHP+MySQL实现登录、注册与修改密码的完整流程
本文基于PHP与MySQL数据库,详细演示如何实现网站的登录、注册及修改密码功能。涵盖前端表单验证、后端会话(Session)控制、SQL数据查询与更新操作,帮助开发者掌握基础的Web身份认证逻辑。
核心功能说明
本系统主要包含三个核心业务流程:
- 登录验证:接收前端提交的账号和密码,查询数据库匹配记录,通过则创建Session状态。
- 账号注册:校验用户唯一性后,将新用户的账号信息插入数据库表中。
- 密码修改:在验证旧密码正确性的前提下,执行Update语句更新新的密码数据。
整个流程涉及8个主要文件,分为前端展示层(HTML/JS)与后端逻辑层(PHP)。
第1步:构建登录主界面 (index.html)
目的:提供用户输入账号密码的表单入口,并进行基本的非空格式检查。
- 关键元素:包含用户名输入框、密码输入框以及“登录”和“注册”按钮。
- 脚本逻辑:
enter()函数负责拦截提交事件,使用正则表达式判断输入是否为空或仅包含空格;若合法则提交表单至enter.php。点击注册按钮时跳转至register.html。
<form action="enter.php" method="post" onsubmit="return enter()">
用户名<input type="text" name="username" id="username"><br>
密码<input type="password" name="password" id="password"><br>
<input type="submit" value="登录">
<input type="button" value="注册" onclick="register();">
</form>
第2步:处理登录请求 (enter.php)
目的:在后端验证用户凭证,建立用户登录状态。
- 环境初始化:调用
session_start()开启会话支持。 - 获取参数:通过
$_REQUEST["username"]获取前端传来的账号密码。 - 数据库操作:连接本地MySQL服务,选择
user_info数据库,执行 SELECT 查询比对账号是否存在。 - 验证反馈:
- 若用户不存在或密码不匹配,输出JS警告并跳回登录页。
- 若匹配成功,设置
$_SESSION["username"]及一个随机验证码$_SESSION["code"](用于防止未授权访问后续页面),随后跳转至welcome.php。
第3步:欢迎页与安全检测 (welcome.php)
目的:展示已登录用户信息及IP地址,并作为其他操作的过渡页。
- 权限校验:检查
$_SESSION["code"]是否有效。若无效(例如直接访问链接),视为非法登录,强制跳转至exit.php销毁Session。 - 信息显示:通过
echo "${_SERVER['REMOTE_ADDR']}"显示客户端IP,并输出欢迎语。
第4步:设计修改密码页面 (alter_password.html)
目的:提供修改密码所需的前端表单。
- 预填充:使用JS自动填充当前登录的用户名,无需用户再次输入。
- 字段要求:包括旧密码、新密码、确认新密码。
- 前端校验:在
alter()函数中确保三次密码字段不为空,且“新密码”与“确认新密码”完全一致。
第5步:执行密码修改逻辑 (alter_password.php)
目的:验证旧密码并写入新密码。
- 验证过程:首先通过用户名查询出原密码,对比前端传来的
oldpassword。若不匹配则拒绝修改。 - 更新操作:调用
mysql_query("update user_info set password='$newpassword' where username='$username'")完成密码覆盖。 - 结果反馈:成功后提示修改成功并跳转回首页。
第6-7步:注册新用户 (register.html & register.php)
前端 (register.html):表单收集用户名、密码及确认密码,JS部分严格校验两次输入的密码一致性。
后端 (register.php):
- 开启Session。
- 检查数据库中是否已存在相同用户名的账户。若已存在,禁止重复注册。
- 利用
insert into语句将新数据写入user_info表。
第8步:退出系统 (exit.php)
目的:清理服务器端的登录状态。
- 调用
session_destroy()彻底删除该用户的所有Session变量。 - 清除后重定向至登录主页,确保无法再通过URL参数绕过检查访问受限页面。
数据库结构搭建如上图所示,通常需建立一个名为 user_info 的数据表。
上述步骤构成了完整的用户认证闭环。
简要总结
以上即为使用PHP与MySQL实现简单登录、注册及修改密码系统的详细内容。在实际生产环境中,建议结合PDO扩展替代原生Mysql扩展,并使用哈希算法加密存储密码,以提升安全性。更多关于PHP Web开发的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









