当前位置:首页 > PHP

php实现图片验证码

2026-02-13 22:02:26PHP

生成图片验证码的方法

使用PHP的GD库可以轻松生成图片验证码。以下是一个简单的实现示例:

<?php
session_start();

$width = 120;
$height = 40;
$image = imagecreatetruecolor($width, $height);

$bgColor = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $bgColor);

$chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charLength = strlen($chars);
$code = '';

for ($i = 0; $i < 4; $i++) {
    $char = $chars[rand(0, $charLength - 1)];
    $code .= $char;

    $textColor = imagecolorallocate($image, rand(0, 120), rand(0, 120), rand(0, 120));
    $fontSize = rand(16, 24);
    $x = ($i * 30) + rand(5, 10);
    $y = rand(20, 30);

    imagettftext($image, $fontSize, rand(-15, 15), $x, $y, $textColor, 'arial.ttf', $char);
}

for ($i = 0; $i < 5; $i++) {
    $lineColor = imagecolorallocate($image, rand(100, 220), rand(100, 220), rand(100, 220));
    imageline($image, rand(0, $width), rand(0, $height), rand(0, $width), rand(0, $height), $lineColor);
}

for ($i = 0; $i < 50; $i++) {
    $pixelColor = imagecolorallocate($image, rand(100, 220), rand(100, 220), rand(100, 220));
    imagesetpixel($image, rand(0, $width), rand(0, $height), $pixelColor);
}

$_SESSION['captcha'] = $code;

header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>

验证码的使用方法

在前端HTML页面中,可以通过img标签引用验证码生成脚本:

php实现图片验证码

<img src="captcha.php" id="captcha" onclick="this.src='captcha.php?'+Math.random()">
<input type="text" name="captcha" required>

验证用户输入

在处理表单提交时,需要验证用户输入的验证码:

php实现图片验证码

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

增强验证码安全性

为了增加验证码的安全性,可以考虑以下改进措施:

使用更复杂的字符组合,包括特殊符号 增加验证码的扭曲和变形效果 添加背景干扰元素 限制验证码的尝试次数 设置验证码的有效期

注意事项

确保服务器已安装GD库 字体文件路径需要正确配置 验证码生成后应立即销毁图像资源 会话机制需要正常工作 验证码长度和复杂度应根据安全需求调整

标签: 验证码图片
分享给朋友:

相关文章

css图片按钮制作

css图片按钮制作

使用纯CSS创建图片按钮 通过CSS的background-image属性可以轻松将图片设置为按钮背景。关键点在于设置合适的尺寸、去除默认边框并添加交互状态: .image-btn { widt…

css网页制作漂浮图片

css网页制作漂浮图片

使用CSS实现漂浮图片效果 通过CSS的animation属性和@keyframes规则可以轻松实现图片漂浮效果。以下是几种常见实现方式: 基础漂浮动画 通过关键帧定义图片的垂直移动,模拟漂浮感:…

vue实现拖动图片验证

vue实现拖动图片验证

Vue 实现拖动图片验证功能 核心思路 拖动图片验证通常需要用户将图片拖动到指定区域或按正确顺序排列。实现时需要处理拖拽事件、验证逻辑和视觉反馈。 实现步骤 1. 基础组件结构 <templ…

php 实现验证码

php 实现验证码

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

jquery 图片

jquery 图片

jQuery 图片操作 jQuery 提供了多种方法来操作图片,包括加载、显示、隐藏、调整尺寸等。以下是一些常见的图片操作方法: 动态加载图片 使用 attr() 方法可以动态修改图片的 src 属…

H5图片实现地图

H5图片实现地图

实现H5图片地图的方法 在H5中实现图片地图功能,可以通过以下方式完成。图片地图允许用户在图片的特定区域点击,触发不同的交互效果。 使用HTML的<map>和<area>标…