94)图片验证码

(1)首先是简单生成四个字符,到底随机产生几个字符是自己设定的:

          

   代码展示:

 1 <?php
 2
 3
 4     /**
 5      * 验证码 工具
 6      */
 7
 8
 9
10         /**
11          * 输出生成的验证码输出
12          *
13          * @param $code_len=4 码值的长度
14          * @return void
15          */
16
17
18             $chars = ‘ABCDEFGHIJKLMNPQRSTUVWXYZ123456789‘;//所有可能字符
19             $chars_len = strlen($chars);
20             $code_len=4;//设置码长,这个是自己设定的
21             $code = ‘‘;//初始化码值字符串
22             for($i=1; $i<=$code_len;++$i) {
23                 $rand_index = mt_rand(0, $chars_len-1);//就是堆积生成一个字符------------------就是得到$chars的下标
24                 $code .= $chars[$rand_index];//字符串支持[]操作,通过下标取得某个字符---------------------由下标找到对应的字符,并且每次都连接起来。
25             }
26             echo $code;

    然后我把这个输出的这四个字符存在session中,那么我就可以通过session来访问了:

  

    在b.php中读到session[‘captcha_code‘]的值

1 <?php
2         session_start();
3         echo $_SESSION[‘captcha_code‘];

最好背景图片是两种格式,jpg格式和gif格式,因为有的服务器可能支持其中的一种。

(2)加了背景图,我随便截的图,一共两张png的图

结果展示:

    

    注意点展示:

    

然后我的代码:
  

 1 <?php
 2
 3
 4     /**
 5      * 验证码 工具
 6      */
 7
 8
 9
10         /**
11          * 输出生成的验证码输出
12          *
13          * @param $code_len=4 码值的长度
14          * @return void
15          */
16
17
18             $chars = ‘ABCDEFGHIJKLMNPQRSTUVWXYZ123456789‘;//所有可能字符
19             $chars_len = strlen($chars);
20             $code_len=4;//设置码长,这个是自己设定的
21             $code = ‘‘;//初始化码值字符串
22             for($i=1; $i<=$code_len;++$i) {
23                 $rand_index = mt_rand(0, $chars_len-1);//就是堆积生成一个字符,这个得到上面$chars字符串的下标
24                 $code .= $chars[$rand_index];//由下标找到对应的字符,字符串支持[]操作,通过下标取得某个字符
25             }
26 //            echo $code;
27
28             //存储于session,用于验证
29             @session_start();//保证session机制一定是开启的,同时重复开启不会报错,@屏蔽错误。
30             $_SESSION[‘captcha_code‘] = $code;
31
32     //生成验证码图片
33
34     //背景图,随便加的
35     $bg_file =  ‘captcha‘ . mt_rand(1, 2) . ‘.png‘;
36
37     //基于jpg格式的图片创建画布
38     $img = imagecreatefrompng($bg_file);
39
40     //随机分配字符串颜色,就是三分之一的比例
41     $str_color = mt_rand(1, 3) == 1 ? imageColorAllocate($img, 0, 0, 0) : imageColorAllocate($img, 0xff, 0xff, 0xff);
42
43     //字符串
44     $font = 5;
45     // 画布尺寸
46     $img_w = imageSX($img);
47     $img_h = imageSY($img);
48     // 字体的尺寸
49     $font_w = imageFontWidth($font);
50     $font_h = imageFontHeight($font);
51     // 字符串的尺寸
52     $code_w = $font_w * $code_len;
53     $code_h = $font_h;
54     $x = ($img_w-$code_w)/2;
55     $y = ($img_h-$code_h)/2;
56     imageString($img, $font, $x, $y, $code, $str_color);
57
58     //输出
59     header(‘Content-Type: image/jpeg;‘);
60     imagepng($img);    //销毁图像    imageDestory($img);
时间: 2024-10-12 08:49:42

94)图片验证码的相关文章

自己写一个图片验证码程序

本程序基于struts2,用action响应请求. 一.首先,创建一个用于产生随即验证码图片的类ImageCode.java. 1 package com.exp.image; 2 3 import java.awt.BasicStroke; 4 import java.awt.Color; 5 import java.awt.Font; 6 import java.awt.Graphics; 7 import java.awt.Graphics2D; 8 import java.awt.Ren

插拔式自定义图片验证码(开源)

1:第一种自定义验证码(推荐) 1 前端: <img id ="img" src="/路由/"> <span {{ dict.error }}</span> 2 前端js刷新验证码: 3 <script> 4 img =document.getElementById("img"); 5 img.onclick = function () { 6 img.src = img.src + "?&qu

水印、图片验证码

(貌似这个验证码不能获取,假设设置一个隐藏的label来记录又失去了他的意义) 一.水印 1.画布 System.Drawing.Image img = System.Drawing.Image.FromStream(FileUpload1.FileContent); 2.创建绘制对象,告诉它往哪张图片上绘制 Graphics g = Graphics.FromImage(img); 3.绘制的内容 string s = "www.itnba.com"; 4.绘制的字体 Font f

水印,图片验证码

加水印: 1.画布 2.笔.颜色.从那开始画.画的内容 获取新的路径 保存新的图片 设置新图片为背景 图片验证码: 例如画一个abcd 100*5o大小.黑体30像素.红色的 为了防止被抓去,跳转到另一个页面执行,需要把照片用流输出回去 完整验证码 验证:

图片验证码

1.首先创建一个web窗体,只使用后台部分,生成验证码,并输出图片流跟图片验证码的字符,在使用验证码的窗体中图片控件直接指向这个窗体 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Drawing; public partial class Y

java web中图片验证码功能实现

用户在注册网站信息的时候基本上都要数据验证码验证.那么图片验证码功能该如何实现呢? 大概步骤是: 1.在内存中创建缓存图片 2.设置背景色 3.画边框 4.写字母 5.绘制干扰信息 6.图片输出 废话不多说,直接上代码 package com.lsgjzhuwei.servlet.response; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.Buffer

基于spring mvc的图片验证码实现

基于spring mvc的图片验证码实现 标签: springmvcspring mvc验证码验证码验证 2016-01-28 10:49 8015人阅读 评论(4) 收藏 举报  分类: 表单处理 版权声明:本文为博主原创文章,未经博主允许不得转载. 本文实现基于spring mvc的图片验证码,分后台代码和前端页面的展现以及验证码的验证. 首看后台实现代码: @RequestMapping({"authCode"}) public void getAuthCode(HttpServ

【Nodejs项目手记】Nodejs中使用图片验证码,captchapng模块可以解决Nodejs图片验证码

Nodejs项目,在做图片验证码的时候遇到了难题.Nodejs没有图片库,以后会有,但是现在没有. 网络上搜索一圈,有几个解决方案: 1.采用第三方验证码程序,有的时候,项目可能不允许: 2.使用Java或者PHP生成图片,Nodejs调用,中间采用Redies共享: 这两种方式都不太理想,好在终于找到了可以支持Nodejs图片验证码的一个库,虽然只支持数字,但是也还不错.原理是使用Base64的图片编码方式. 这个库的Gighub地址是:https://github.com/GeorgeCha

【问题】做图片验证码时乱码了,在header前加上ob_clean()就能神奇的显示?!

源代码如下: 1 <?php 2 //图片验证码 3 // 该方法必须处于脚本最顶部 4 session_start(); 5 // 验证码图片和对应的验证值的对应关系 6 $table = array( 7 'pic0' => '博美', 8 'pic1' => '仓鼠', 9 'pic2' => '萨摩', 10 'pic3' => '泰迪', 11 ); 12 13 $index = rand(0,3); 14 15 $value = $table['pic'.$ind

WebSite---前台系统图片验证码心得

背景: 因为移动端APP和Msite手机注册发送短信验证码没有添加图片验证码功能.公司的短信接口被恶意刷取.所以我们就觉得在移动端添加一个图片验证码功能.分享一下大体实现方式思路.PS demo是自己写的.跟公司代码还是有很大差距的.    一. 图片验证码第一版       1. 建立图片验证码 ValidationCodeHelper 1.1 填写方法生成对应的.验证码: 默认是4位数字 1 private static char[] _constant = { 2 '0','1','2',