PHP+MySQL实现登录、注册与修改密码的完整流程

小岛来信
小岛来信
发布时间:2026-10-13| 2人浏览过
原创

本文基于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):

  1. 开启Session。
  2. 检查数据库中是否已存在相同用户名的账户。若已存在,禁止重复注册。
  3. 利用 insert into 语句将新数据写入 user_info 表。

第8步:退出系统 (exit.php)

目的:清理服务器端的登录状态。

  • 调用 session_destroy() 彻底删除该用户的所有Session变量。
  • 清除后重定向至登录主页,确保无法再通过URL参数绕过检查访问受限页面。

数据库结构搭建如上图所示,通常需建立一个名为 user_info 的数据表。

上述步骤构成了完整的用户认证闭环。

简要总结

以上即为使用PHP与MySQL实现简单登录、注册及修改密码系统的详细内容。在实际生产环境中,建议结合PDO扩展替代原生Mysql扩展,并使用哈希算法加密存储密码,以提升安全性。更多关于PHP Web开发的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。