`

PHP实现验证码(附源码)

    博客分类:
  • PHP
PHP 
阅读更多

这里直接附上源码,

具体详解可以参考文章http://www.cnblogs.com/jianxian/p/8596340.html

 

 
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>登陆</title>
</head>
<body>
    <form action="./login.php" method="post">
        <img src="image_captcha.php"  onclick="this.src='image_captcha.php?'+
            new Date().getTime();" width="200" height="200"><br/>
        <input type="text" name="captcha" placeholder="请输入图片中的验证码"><br/>
        <input type="submit" value="验证">
    </form>
</body>
</html>

   同级文件login.php

<?php
/**
 * 接受用户登陆时提交的验证码
 */
session_start();
//1. 获取到用户提交的验证码
$captcha = $_POST["captcha"];
//2. 将session中的验证码和用户提交的验证码进行核对,当成功时提示验证码正确,
//并销毁之前的session值,不成功则重新提交
// echo strtolower($captcha);
// echo strtolower($_SESSION);
if(strtolower($_SESSION["captcha"]) == strtolower($captcha)){
    echo "验证码正确!";
    $_SESSION["captcha"] = "";
}else{
    echo "验证码提交不正确!";
} 
?>

   同级文件image_captcha.php

<?php
/**
 * 字母+数字的验证码生成
 */
// 开启session
session_start();
//1.创建黑色画布
$image = imagecreatetruecolor(100, 30);
 
//2.为画布定义(背景)颜色
$bgcolor = imagecolorallocate($image, 255, 255, 255);
 
//3.填充颜色
imagefill($image, 0, 0, $bgcolor);
 
// 4.设置验证码内容
 
//4.1 定义验证码的内容
$content = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
 
//4.1 创建一个变量存储产生的验证码数据,便于用户提交核对
$captcha = "";
for ($i = 0; $i < 4; $i++) {
    // 字体大小
    $fontsize = 10;
    // 字体颜色
    $fontcolor = imagecolorallocate($image, mt_rand(0, 120), mt_rand(0, 120), mt_rand(0, 120));
    // 设置字体内容
    $fontcontent = substr($content, mt_rand(0, strlen($content)), 1);
    $captcha .= $fontcontent;
    // 显示的坐标
    $x = ($i * 100 / 4) + mt_rand(5, 10);
    $y = mt_rand(5, 10);
    // 填充内容到画布中
    imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor);
}
$_SESSION["captcha"] = $captcha;
 
//4.3 设置背景干扰元素
for ($$i = 0; $i < 200; $i++) {
    $pointcolor = imagecolorallocate($image, mt_rand(50, 200), mt_rand(50, 200), mt_rand(50, 200));
    imagesetpixel($image, mt_rand(1, 99), mt_rand(1, 29), $pointcolor);
}
 
//4.4 设置干扰线
for ($i = 0; $i < 3; $i++) {
    $linecolor = imagecolorallocate($image, mt_rand(50, 200), mt_rand(50, 200), mt_rand(50, 200));
    imageline($image, mt_rand(1, 99), mt_rand(1, 29), mt_rand(1, 99), mt_rand(1, 29), $linecolor);
}
 ob_clean();//原来的程序没有这一栏
//5.向浏览器输出图片头信息
header('content-type:image/png');
 
//6.输出图片到浏览器
imagepng($image);
 
//7.销毁图片
imagedestroy($image);  
?>

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    php验证码简单源码

    验证码在Web开发中扮演着重要的角色,主要用于防止自动机器人、恶意...总的来说,理解和运用这个PHP验证码源码,可以帮助初学者掌握基本的PHP会话管理和图像处理知识,同时认识到在实际项目中如何提升验证码的安全性。

    PHP原创验证码源码.rar

    总的来说,这个PHP验证码源码提供了一个基础但功能齐全的验证码生成器,可以灵活定制外观和安全级别,适用于许多Web开发场景。通过理解并修改这个源码,开发者可以进一步优化验证码的性能,例如增加对多语言字符的...

    php 验证码源码范例

    php 验证码 源码 范例 简单 基础 入门

    验证码高级识别源码-PHP

    在这个PHP验证码识别源码中,checkcode文件可能是主要的源代码文件,包含了上述各个步骤的实现。源码可能包含对图像的预处理函数、字符分割算法、识别逻辑以及错误处理机制。要深入理解并运用这个源码,你需要具备...

    验证码普通识别源码-PHP

    总之,PHP验证码识别涉及到图像处理、模式识别和机器学习等多个IT领域,理解并掌握这一技术有助于提升我们在网络安全和自动化测试方面的专业能力。通过分析和实践提供的源码,我们可以深入了解验证码识别的实现过程...

    哈尔滨php课堂实录_php实现验证码图_用jQuery实现ajax验证_源码

    **PHP验证码的实现** 验证码的主要目的是确保用户是人类而不是计算机程序。PHP可以生成包含随机字符的图像,这些字符通常扭曲或带有噪声,使得机器难以识别但人眼可以轻易辨认。在PHP中,我们可以使用GD库或者...

    拼图验证码源码PHP版本

    在这个案例中,我们讨论的是PHP实现的一种特殊形式的验证码——拼图验证码。下面将详细解释这种验证码的工作原理和实现方法。 1. **基础概念** - **PHP**:PHP是一种广泛使用的开源脚本语言,尤其适合Web开发,...

    php验证码源码

    php验证码源码,经过探索,解决了网页上介绍的代码不能运行的原因(没有字体文件),辛苦实验一天的结晶。

    PHP发送邮箱验证码

    首先,要实现PHP发送邮箱验证码,我们需要了解SMTP(Simple Mail Transfer Protocol)协议。SMTP是互联网上传输电子邮件的标准,大多数邮件服务提供商,包括QQ邮箱,都支持SMTP服务。在QQ邮箱中,你需要先开启SMTP...

    语音验证码接口源码 ZTSpeechVerificationInterface.rar

    语音验证码接口源码 源码描述: 一、源码介绍 1、助通科技短信平台适用于大中小型企业、商场、酒店等,面向企事业单位开发的短信收发系统。 2、主要提供短信网关,短信接口, 网站接口以及 OA 、 CRM 、 ERP 、 SCM...

    PHP验证码源码下载直接访问就可以得到验证码图片

    PHP验证码源码用户直接访问这个文件就可以获得验证码图片,非常简单实用!

    PHP验证码制作源码

    2. **PHP验证码源码结构**: - 生成随机字符串:使用`mt_rand()`或`rand()`函数生成随机数,再将其转换为字母或数字。 - 图像处理:使用GD库或Imagick扩展创建图像,设置背景、颜色、字体等属性。 - 添加噪声线和...

    获取手机短信验证码源码

    本文将围绕“获取手机短信验证码源码”这一主题,深入探讨其背后的实现原理、关键技术和相关知识点。 首先,我们要了解手机短信验证码的基本流程。通常,当用户在应用或网站上进行敏感操作时,系统会向用户注册的...

    php源码 验证码 类

    首先,PHP验证码类的实现通常包括以下几个关键部分: 1. **图像生成**:验证码类首先需要创建一个图像,这个图像通常包含一些扭曲的字母或数字。PHP可以使用GD库或Imagick扩展来生成图像。GD库是PHP内置的图像处理...

    PHP做提交时输入验证码源码

    在用户进行敏感操作,如注册、登录或者发布信息时,为了防止恶意自动化...总的来说,PHP验证码源码的实现是一个涉及随机性、图像处理和用户验证等多个环节的过程,它能有效提升网站的安全性,防止非授权的自动化操作。

    php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】

    在本文中,我们将探讨如何使用PHP和JavaScript实现一个拖动滑块验证码验证表单操作的示例。这种验证码机制在很多现代网站上被广泛采用,因为它提供了更好的用户体验,减少了用户输入错误的可能性,同时还能有效防止...

    ASP验证码源码实例.RAR

    在这个“ASP验证码源码实例.RAR”压缩包中,包含了创建一个简单数字验证码的ASP源代码,适合初学者学习和参考。 验证码的主要目的是为了防止自动化程序(如机器人)对网站进行恶意操作,例如注册、投票或发送垃圾...

    php实现Ajax带有验证码的登陆注册功能

    4. 实现验证码功能,可以使用PHP的GD库生成随机图像和字符串,存储在服务器会话中。 总的来说,这个项目结合了PHP、Ajax、jQuery和验证码技术,提供了一个用户友好的、安全的登录注册体验。通过这种方式,开发者...

    verifys_php验证码类_源码

    "verifys_php验证码类_源码"提供的就是一个这样的解决方案,允许开发者根据项目调整文字长度和字体大小。 首先,验证码类通常包括以下几个核心功能: 1. **生成随机字符串**:验证码类会生成一个随机的字符串作为...

Global site tag (gtag.js) - Google Analytics