PHP中生成验证码

//生成图片
$im =
imagecreatetruecolor(100,30);
//生成颜色,当第一次调用生成颜色的方法,是生成背景颜色,默认是黑色
//如果想自定义背景颜色,用到imagefill函数
$bg
=
imagecolorallocate($im,200,200,200);
imagefill($im,0,0,$bg);
//第二次调用这个方法,是可以生成图片上面的文字或其他样式的颜色
$te
= imagecolorallocate($im,0,0,0);

$te2 = imagecolorallocate($im,255,255,255);

//生成干扰线,就是画线
$posLineX1 = rand(6,30);
$posLineX2 =
rand(30,60);
for($i=0;$i<5;$i++){
$posLinY1=rand(2,10);

$posLinY2=rand(11,28);

imageline($im,$posLineX1,$posLinY1,$posLineX2,$posLinY2,$te2);
$posLineX1
+= rand(30,60);
$posLineX2 += rand(61,98);
}

for($i=0;$i<90;$i++){
$te3 =
imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));

imagesetpixel($im,rand(2,100),rand(2,30),$te3);
}

//在图片上面生成文字
//imagestring($im,5,rand(3,70),rand(3,15),$rand,$te);

$posX = rand(6,45);
for($i=0;$i<4;$i++){
$posY = rand(2,15);

imagestring($im,rand(2,5),$posX,$posY,substr($rand,$i,1),$te);
$posX
+= rand(8,20);
}

//要把php当成图片输出,必须给文件一个头申明

ob_clean();
header("Content-type:image/jpeg");
//最终生成图片
imagejpeg($im);

最终生成图片的格式可以是 JPEG  和gif  还有  PNG

时间: 2024-10-13 17:30:25

PHP中生成验证码的相关文章

servlet中生成验证码

在servlet中生成验证码 package login; import java.awt.Color; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; import java.util.Random; import javax.servlet.Ser

JAVA WEB项目中生成验证码及验证实例(附源码及目录结构)

[我是一个初学者,自己总结和网上搜索资料,代码是自己敲了一遍,亲测有效,现将所有的目录结构和代码贴出来分享给像我一样的初学者] 作用 验证码为全自动区分计算机和人类的图灵测试的缩写,是一种区分用户是计算机的公共全自动程序,这个问题可以由计算机生成并评判,但是必须只有人类才能解答.可以防止恶意破解密码.刷票.论坛灌水.有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录. 原理 在servlet中随机生成一个指定位置的验证码,一般为四位,然后把该验证码保存到session中.在

详细说说如何生成验证码—ASP.NET细枝末节(4)

前言 今天小编详细的说一下,ASP.NET网站开发过程中生成验证码的全部问题. 本文的目标,是让读者了解,生成验证码涉及的全部基础知识问题. 当然这里说的是比较简单的验证码. 真正符合要求的验证码,涉及到计算机图形学的一些问题,这就不是网站开发人员该考虑的了,公司肯定有专人干这个,或者有开发包. 1.为啥要研究这东西? 在正文开始之前,我又几个问题要强调. 1.对于验证码的生成问题,即使完全不了解,也不会影响开发. 我们完全可以到网上C+V一点代码搞定(也就是说,这不是asp.net网站开发的核

node.js生成验证码及图片

示例代码: var svgCaptcha = require('svg-captcha'); var fs = require('fs'); var codeConfig = { size: 5,// 验证码长度 ignoreChars: '0o1i', // 验证码字符中排除 0o1i noise: 2, // 干扰线条的数量 height: 44 } var captcha = svgCaptcha.create(codeConfig); fs.writeFileSync('test.png

SpringMvc项目中使用GoogleKaptcha 生成验证码

SpringMvc项目中使用GoogleKaptcha 生成验证码 前言:google captcha 是google生成验证码的一个工具类,其原理是将随机生成字符串保存到session中,同时以图片的形式返回给页面,之后前台页面提交到后台进行对比. 1.jar包准备 官方提供的pom应该是 <dependency> <groupId>com.google.code.kaptcha</groupId> <artifactId>kaptcha</arti

asp.net中ashx生成验证码代码放在Linux(centos)主机上访问时无法显示问题

最近有个项目加入了验证码功能,就从自己博客以前的代码中找到直接使用,直接访问验证码页面报错如下: 源代码:asp.net中使用一般处理程序生成验证码 Application Exception System.ArgumentException The requested FontFamily could not be found [GDI+ status: FontFamilyNotFound] Description: HTTP 500.Error processing request. De

jsp中生成的验证码和存在session里面的验证码不一致的处理

今天在调试项目的时候发现,在提交表单的时候的验证码有问题,问题是这样的:就是通过debug模式查看得知:jsp页面生成的验证码和表单输入的页面输入的一样,但是到后台执行的时候,你会发现他们是不一样的,现在上图看看: 1.这是表单提交的时候: 2.这是后台得到的生成的验证码: 3.这是后台得到输入的验证码: 这样的问题还是头一次出现,以前没遇到过,经过google,baidu,最后得知是这样的:因为加载jsp页面比加载session快一些 那怎么办才能解决这个办法呢, 又经过多次搜索,思考,实践,

Django中生成随机验证码

Django中生成随机验证码 1.html中a标签的设置 1 <img src="/get_validcode_img/" alt=""> 2.views中的get2.views中的getvalidcode_img设置 导入文件 1 import json 2 import os 3 import random 4 from django.contrib import auth 5 from django.shortcuts import render,

JAVA中的验证码生成

生成验证码的工具类:VerifyCodeUtils(有几种实现方式,放入流,保存文件等) public class VerifyCodeUtils { //使用到Algerian字体,系统里没有的话需要安装字体,字体只显示大写,去掉了1,0,i,o几个容易混淆的字符 public static final String VERIFY_CODES = "23456789ABCDEFGHJKLMNPQRSTUVWXYZ"; private static Random random = ne