邮箱6位验证码PHP演示模块 v1.0

0 0 1255 2026-06-08
PHP MySQLSQLite Simplified Chinese (3/5)
Author:PHPDisk Team

Overview

本模块提供基于PHP的邮箱6位验证码功能,支持注册、登录、忘记密码及已登录改密全流程。采用无框架设计,兼容PHP 5.6至8.x,支持SQLite与MySQL数据库切换,SMTP发信兼容465隐式SSL与587 STARTTLS。适用于B端/B2C系统降低对短信通道的依赖,满足基础安全与合规诉求。

Source details

邮箱 6 位验证码 — PHP 演示模块(中文市场)

本目录为无框架 PHP 示例(PHP 5.6 ~ 8.x),演示:

  • 注册:传统(用户名 / 邮箱 / 密码 + 邮箱验证码)与 仅邮箱验证码(自动生成 SS_ 用户名与随机密码)
  • 登录:邮箱 + 6 位验证码;另附 邮箱 + 密码 便于测试传统注册
  • 忘记密码:邮箱验证码 + 新密码
  • 已登录修改密码verify_type=change,邮箱只读

数据支持 SQLiteMySQL:默认 SQLite(data/email_verify.sqlite);可在 db_settings.php 中切换并写入 data/db_runtime.json,或通过 config.php 中的 EV_DB_DRIVER 等常量配置。表结构见 database_update.sql

SMTP 发信实现于 inc/ev_smtp.php465 隐式 SSL(Gmail / QQ / 163 / 139 等)、587 STARTTLS + AUTH LOGIN(Outlook / Microsoft 365)。仅需在 config.php 中填写对应服务商参数,无需改代码即可切换邮箱。

程序版本号:常量 EV_APP_VERSION(默认在 inc/ev_version.php,可在 config.phpdefine 覆盖);首页页脚与 api_send_code.php / api_verify_code.php 的 JSON 响应中含 version 字段。

应用场景

  • B 端/B2C 注册登录希望提供 邮箱验证码 作为第二因素或主登录方式,降低对短信通道的依赖。
  • 忘记密码、修改敏感信息(密码)前需 邮箱二次确认,满足基础安全与合规诉求。

用户痛点

  • 自建发信需兼容多家 SMTP(465 SSL / 587 STARTTLS)、应用专用密码与频控,排错耗时。
  • 验证码有效期、重发间隔、防刷与存储(SQLite/MySQL)若设计不当,易被滥用或泄露。

本项目解决的问题

  • 提供 注册 / 登录 / 忘记密码 / 已登录改密 全流程页面与 API,验证码逻辑集中在 inc/ev_core.php,SMTP 集中在 inc/ev_smtp.php
  • 支持 SQLite 与 MySQL 切换(db_settings.phpconfig.php),JSON API 统一返回 version

项目价值说明

  • 可作为无框架业务系统的 账号模块起点,替换用户表字段即可融入生产;配合指南快速接通主流邮箱。

环境要求

  • PHP 5.6+,建议开启 opensslpdo_sqlite;使用 MySQL 时需 pdo_mysql
  • 可访问公网 SMTP 端口(如 465 / 587)

快速开始

  1. email-verify-code-login-php-cn-sample 置于 Web 可访问路径。
  2. 复制 config.example.phpconfig.php,按 email_smtp_各邮箱申请配置指南.md 填写 SMTP。
  3. 浏览器访问 index.php

发信失败时,请对照指南检查授权码 / 应用专用密码、端口与加密方式。

文件说明

文件 作用
config.example.php 配置模板(可选覆盖 EV_APP_VERSION
inc/ev_version.php 程序版本号默认值(加载于 config.php 之后)
inc/ev_core.php 验证码逻辑、用户表、发信封装
inc/ev_db_config.php SQLite/MySQL 配置合并、db_runtime.json、连接测试与建表
db_settings.php 页面切换数据库并写入 data/db_runtime.json
inc/ev_smtp.php SMTP 发送(465 / 587)
api_send_code.php POSTemailtype(register/login/reset/change),返回 JSON
api_verify_code.php 可选预校验(不消费验证码)
register.php 注册双 Tab
login_code.php 验证码登录
login_pw.php 密码登录
forgot.php 忘记密码
change_password.php 已登录验证码改密
database_update.sql MySQL 建表
email_smtp_各邮箱申请配置指南.md Gmail / Outlook / QQ / 163 / 139 等申请与配置

整合到业务系统时,可将 inc/ev_core.php 中的 PDO 连接改为 MySQL,并把 ev_users 替换为现有用户表字段映射。


Project: PHPDisk - 私有云存储解决方案
This is NOT a freeware, use is subject to license terms.
Website: https://www.phpdisk.com
Author: PHPDisk Team ( admin@phpdisk.com )
Copyright (C) 2008-2026 PHPDisk Team. All Rights Reserved.

如需定制功能,或查看更多示例与源码索引,请访问:https://code.phpdisk.com/?utm_source=email-verify-php-cn-readme

Archive contents

Loading file tree…
No files to display in this archive.
    Too many files to show. Displaying a partial listing.

    Comments

    No comments yet—be the first!