当前位置:首页 > PHP

php实现验证码注册

2026-04-03 12:17:08PHP

PHP 验证码注册实现

生成验证码图片

创建 captcha.php 文件生成验证码图片:

session_start();
$code = rand(1000, 9999);
$_SESSION['captcha'] = $code;

$image = imagecreatetruecolor(100, 30);
$bgColor = imagecolorallocate($image, 255, 255, 255);
$textColor = imagecolorallocate($image, 0, 0, 0);

imagefilledrectangle($image, 0, 0, 100, 30, $bgColor);
imagestring($image, 5, 25, 8, $code, $textColor);

header('Content-type: image/png');
imagepng($image);
imagedestroy($image);

注册表单HTML

创建包含验证码的表单页面 register.html

<form action="register.php" method="post">
    <label>用户名: <input type="text" name="username"></label>
    <label>密码: <input type="password" name="password"></label>
    <label>验证码: <input type="text" name="captcha"></label>
    <img src="captcha.php" onclick="this.src='captcha.php?'+Math.random()">
    <button type="submit">注册</button>
</form>

验证处理

创建 register.php 处理注册逻辑:

php实现验证码注册

session_start();

if ($_POST['captcha'] != $_SESSION['captcha']) {
    die('验证码错误');
}

$username = $_POST['username'];
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);

// 存储用户数据到数据库
// $pdo->prepare("INSERT INTO users (username, password) VALUES (?, ?)")->execute([$username, $password]);

echo '注册成功';

安全增强措施

验证码图片添加干扰元素:

// 在captcha.php中添加
for ($i = 0; $i < 5; $i++) {
    $color = imagecolorallocate($image, rand(0,255), rand(0,255), rand(0,255));
    imageline($image, rand(0,100), rand(0,30), rand(0,100), rand(0,30), $color);
}

设置验证码有效期:

php实现验证码注册

// 在captcha.php中
$_SESSION['captcha_time'] = time();

// 在register.php中验证
if (time() - $_SESSION['captcha_time'] > 300) {
    die('验证码已过期');
}

数据库存储

完整的用户注册存储示例:

$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$stmt = $pdo->prepare("INSERT INTO users (username, password) VALUES (?, ?)");
$stmt->execute([$username, $password]);

验证码刷新机制

JavaScript实现点击刷新:

document.querySelector('img').addEventListener('click', function() {
    this.src = 'captcha.php?' + new Date().getTime();
});

标签: 验证码php
分享给朋友:

相关文章

js实现验证码

js实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const cha…

php实现购物车

php实现购物车

PHP实现购物车功能 购物车功能是电商网站的核心模块之一,通常涉及商品添加、删除、数量修改和结算等操作。以下是使用PHP实现购物车功能的几种方法。 使用Session存储购物车数据 Session是…

php 实现验证码

php 实现验证码

使用 PHP 生成验证码 验证码(CAPTCHA)用于防止自动化脚本提交表单,以下是几种常见的 PHP 实现方法。 使用 GD 库生成图片验证码 GD 库是 PHP 的图像处理扩展,可用于生成验证码…

php实现推送

php实现推送

PHP 实现推送功能的方法 PHP 实现推送功能可以通过多种方式完成,包括 WebSocket、Server-Sent Events (SSE)、长轮询或第三方推送服务。以下是几种常见的方法: 使用…

php 实现秒杀

php 实现秒杀

PHP 实现秒杀的关键技术 秒杀系统需要解决高并发、超卖、性能瓶颈等问题。以下是实现秒杀的核心方案: 使用 Redis 预减库存 将商品库存提前加载到 Redis 中,通过原子操作保证库存准确性:…

php mvc 实现

php mvc 实现

PHP MVC 实现方法 MVC(Model-View-Controller)是一种设计模式,用于分离应用程序的逻辑、数据和界面。以下是实现PHP MVC框架的关键步骤。 目录结构 创建以下目录结构…