当前位置:首页 > 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 处理注册逻辑:

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);
}

设置验证码有效期:

// 在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实现点击刷新:

php实现验证码注册

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

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

相关文章

php实现购物车

php实现购物车

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

php实现树

php实现树

PHP实现树结构的方法 在PHP中实现树结构通常可以通过递归或迭代的方式完成。以下是几种常见的实现方法: 递归实现树结构 递归是处理树结构的自然方式,尤其适用于具有未知深度的树。 class Tr…

php实现递归

php实现递归

递归的基本概念 递归是一种函数调用自身的技术,适用于解决可以分解为相同子问题的问题。在PHP中,递归需要明确的终止条件(基线条件),否则会导致无限循环。 递归实现阶乘 阶乘是经典的递归案例,n! =…

php实现即时通讯

php实现即时通讯

PHP 实现即时通讯的方案 即时通讯(IM)可以通过多种方式实现,PHP 作为服务器端语言,通常需要结合前端技术(如 WebSocket、AJAX)或第三方服务来实现实时通信。以下是几种常见的实现方式…

php实现下载

php实现下载

PHP实现文件下载 使用PHP实现文件下载可以通过设置HTTP头部信息强制浏览器下载文件而非直接打开。以下是几种常见的方法: 方法一:直接输出文件内容 $file_path = 'path/to/…

php登陆功能实现

php登陆功能实现

实现PHP登录功能 数据库准备 创建一个用户表存储登录信息,基本字段包括用户名、密码(需加密)等: CREATE TABLE users ( id INT AUTO_INCREMENT PR…