<?php
/*
生成验证码
*/
// 1.创建画布(基于已有图像)
$n = mt_rand(1,5);
$im = imagecreatefromjpeg('./images/captcha_bg'.$n.'.jpg');
// 2.创建颜色
$white = imagecolorallocate($im,255,255,255);
$black = imagecolorallocate($im,0,0,0);
// 3.绘制图像
$chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789';
$len = strlen($chars);
$code = '';
for($i=0;$i<4;$i++){
$index = mt_rand(0,$len-1);
// 拼接得到的$code即是验证码上的字符串
$code .= $chars[$index];
}
// 将验证码保存到session
@session_start();
$_SESSION['captcha_code'] = $code;
// 确定字符串的横纵坐标。使其居中
$imgWidth = imagesx($im);
$imgHeight = imagesy($im);
$fontWidth = imagefontwidth(5);
$fontHeight = imagefontheight(5);
$x = ($imgWidth-$fontWidth*4)/2;
$y = ($imgHeight-$fontHeight)/2;
// 确定字符串颜色。1/3的概率为黑色
if(mt_rand(1,3) == 1){
$color = $black;
} else {
$color = $white;
}
// 将字符串写入到图像上
imagestring($im,5,$x,$y,$code,$color);
// 4.输出图像
header('content-type:image/jpeg');
imagejpeg($im);
// 5.销毁图像
imagedestroy($im); ?>

说明:这是仿照ecshop的后台登录页写的一个简单的生成验证码的代码

PHP-仿ecshop生成验证码的更多相关文章

  1. Servlet仿CSDN动态验证码的生成-带数字和字母

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 一.实现的思路: (1)首先,须要创建一个Servlet.该Servlet通过字节型响应给cl ...

  2. 动态生成验证码———MVC版

    上面有篇博客也是写的验证码,但那个是适用于asp.net网站的. 今天想在MVC中实现验证码功能,弄了好久,最后还是看博友文章解决的,感谢那位博友. 首先引入生成验证码帮助类. ValidateCod ...

  3. laravel 生成验证码的方法

    在Laravel中有很多图片验证码的库可以使用,本篇介绍其中之一:gregwar/captcha,这个库比较简单,在Laravel中比较常用.下面我们就来介绍下使用细节: 首先, composer.j ...

  4. java web学习总结(九) -------------------通过Servlet生成验证码图片

    一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:

  5. android 生成验证码图片

    (转自:http://blog.csdn.net/onlyonecoder/article/details/8231373) package com.nobeg.util; import java.u ...

  6. PHP 动态生成验证码

    ……机器人会在网站中搜寻允许他们插入广告的输入表单,在虚拟世界没有什么能阻挡它们胡作非为.这些机器人效率极高,完全不关心所攻击的表单的本来用途.它们唯一的目标就是用它们的垃圾广告覆盖你的内容,残忍地为 ...

  7. PHP生成验证码及单实例应用

    /* note: * this 指向当前对象本身 * self 指向当前类 * parent 指向父类 */ /* 验证码工具类 * @author pandancode * @date 20150- ...

  8. ASP.NET ashx实现无刷新页面生成验证码

    现在大部分网站登陆时都会要求输入验证码,在网上也看了一些范例,现在总结一下如何实现无刷新页面生成验证码. 效果图: 实现方式: 前台: <div> <span>Identify ...

  9. Java生成验证码原理(jsp)

     验证码的作用: 验证码是Completely Automated Public Turing test to tell Computers and Humans Apart(全自动区分计算机和人类的 ...

随机推荐

  1. U-boot中的FDT

    1. U-boot为了支持FDT,添加了新的代码:/libfdt目录fdt.h libfdt.h fdt_support.h fdt_support.c 2. http://blog.csdn.net ...

  2. excel中的TEXT函数

    TEXT 函数可将数值转换为文本,并可使用户通过使用特殊格式字符串来指定显示格式. TEXT(value, format_text) value  必需.数值.计算结果为数值的公式,或对包含数值的单元 ...

  3. 使用sbt构建spark 程序

    今日在学习scala和spark相关的知识.之前在eclipse下编写了wordcount程序.但是关于导出jar包这块还是很困惑.于是学习sbt构建scala. 关于sbt的介绍网上有很多的资料,这 ...

  4. XtraReport 添加空行的办法,很详细

    这两天为了做报表,研究了一下XtraReport .为了添加空行,想了很多办法.其中如果有分组时,网上给出的办法就会失败.现将经验公布一下,希望各位都能少走弯路. 1.加入自定义函数CreateCel ...

  5. Multi-armed Bandit Problem与增强学习的联系

    选自<Reinforcement Learning: An Introduction>, version 2, 2016, Chapter2 https://webdocs.cs.ualb ...

  6. 【转】oracle 监听静态注册举例解析

    网上有很多关于oracle 监听静态注册的文章,但大多都是简单说说,并没有详细的例子,这里,将结合linux as3 下的oracle 10gR2.0.1 举一个具体的例子 1.在 $ORACLE_H ...

  7. apktool+dex2jar+xjad反编译android程序

    1 将MyAdroid.apk拷贝到E:\disapk 2 下载apktool1.5.2.tar.bz2 和 apktool-install-windows-r05-ibot.tar.bz2 并解压到 ...

  8. ITextSharp导出PDF表格和图片(C#)

    文章主要介绍使用ITextSharp导出PDF表格和图片的简单操作说明,以下为ITextSharp.dll下载链接 分享链接:http://pan.baidu.com/s/1nuc6glj 密码:3g ...

  9. whoami与who am i

    whoami显示的是当前“操作用户”的用户名,而who am i显示的是“登录用户”的用户名. 若你使用root用户登录,中间su abc切换,whoami的结果是abc,who am i 的结果是r ...

  10. sql通用的存储过程

    QUOTED_IDENTIFIER ON GO ALTER proc [dbo].[UpPagerSingle] @ReturnFields Varchar(500)='*',--搜索表的字段,比如: ...