-
PHP验证码生成例子
一个非常简单的PHP验证码生成例子,在这个PHP验证码生成我们需要使用到php_gd2.dll扩展了,下面我就来给大家整个例子了,希望对各位朋友会带来帮助.
使用PHP的GD库扩展类制作验证码的基本步骤:启用php.ini配置文件中的extension=php_gd2.dll扩展,打开php.ini配置文件,去掉行首的分号后重启Apache即可.
下面是PHP生成验证码的代码:
- <?php
- for($i=0;$i<5;$i++){
- $suijishu.=dechex(rand(1,15));//使用循环产生一个十六进制格式的五位数
- }
- setcookie("useryzm",$suijishu);//创建一个名为useryzm、值为$suijishu的cookie
- $img=imagecreatetruecolor(100,30);//创建一个宽100高30的图片验证码
- $bg=imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255));//定义验证码的背景颜色
- $sc=imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255));//定义验证码字体的颜色
- imagestring($img,5,rand(0,50),rand(0,15),$suijishu,$sc);//定义字体的位置(左上角为坐标原点)
- for($k=0;$k<10;$k++){
- imageline($img,rand(1,100),rand(1,100),rand(1,100),rand(1,100),$sc);//在验证码上绘制直线(扰乱作用)
- imagesetpixel($img,rand(1,100),rand(1,30),$sc);//在验证码上绘制点(扰乱作用)//开源软件:phpfensi.com
- }
- ob_clean();//清空输出缓冲区(这句很重要)
- header("Content-type:image/jpeg");//定义输出图片的格式(image/后面可以是jpeg或png或gif等图片格式)
- imagejpeg($img);//输出图象
- imageDestroy($img);//释放内存,完成创建
- ?>
下面是HTML中调用验证码的代码:
- <html>
- ...
- <script language="javascript">
- function changeyzm(){
- var img = document.getElementById("yzmimg").src = "gdyzm.php?id="+Math.random()*10;
- return ;
- }
- </script>
- ...
- <img src="gdyzm.php" name="yzmimg" width="100" height="30" id="yzmimg" title="点击刷新" onclick="changeyzm();" />
- ...
- </html>
如果出现"图像“XXXX”因其本身有错无法显示"的错误,很可能是漏了ob_clean();这句,或是文件的物理编码出了问题,修改物理编码的方法可以参考PHP创建utf8文件.
如果没有加ob_clean();这句,在本地测试且物理编码为ANSI时没问题,物理编码为UTF-8时则会报错,图像“XXXX”因其本身有错无法显示.
原文链接:http://www.phpfensi.com/php/20140921/5901.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式