三款php 中文验证码生成与调用方法
代码如下 | 复制代码 |
$ch_str="你要生成中文验证码汉字"; for($i=0;$i<$line_num;$i++) //生成中文验证码二 imagettftext($im, rand(28,32), rand(0,70), rand(25,27), rand(70,100), $font_color, $fnt, $str2); //把汉字放在数组 $randcode=array('宠'); //gb2312转utf8
if($utf8!="") //unicode转utf8
$str.=(0x80|$c>>6&0x3f); //生成附加码 //加入杂点 $font_face="simkai.ttf"; //字体 |
// 使用的时候直接用html语法:<img src="excode.php">调用就可以了,在服务端做验证时取session存储的验证字符与用户提交的字符进行比较,相同则通过验证
一款php 验证码程序函数,原理是利用php gd库再生成随便数字,然后创建一个session与一张数字图片,就成了图形验证码了。代码如下 | 复制代码 |
function fun_code($sessionname) { header("content-type:image/png"); session_start(); $authnum_session = ''; //$str = 'abcdefghijkmnpqrstuvwxyz1234567890'; $str = '1234567890'; $l = strlen($str); for($i=1;$i<=4;$i++) { $num=rand(0,$l-1); $authnum_session.= $str[$num]; } $_session[$sessionname]=$authnum_session; srand((double)microtime()*1000000); $im = imagecreate(50,20); $black = imagecolorallocate($im, 0,0,0); $white = imagecolorallocate($im, 255,255,255); $gray = imagecolorallocate($im, 200,200,200); imagefill($im,68,30,$gray); for($i=0;$i<3;$i++) { imageline($im,rand(0,30),rand(0,21),rand(20,40),rand(0,21),$li); } imagestring($im, 5, 8, 2, $authnum_session, $white); for($i=0;$i<90;$i++) { imagesetpixel($im, rand()%70 , rand()%30 , $gray); } imagepng($im); imagedestroy($im); } echo fun_code("code"); |
<? header ("content-type: image/png");
代码如下 | 复制代码 |
$newimg = imagecreate(250,250); |
由于图像还是空白的,因此你可能会希望用一些彩色来填充它。你需要首先使用imagecolorallocate()函数用其rgb值为这种颜色指定一个名字,这一函数的格式为imagecolorallocate([image], [red], [green], [blue])。如果要定义天蓝色,可以使用如下的语句:
代码如下 | 复制代码 |
$skyblue = imagecolorallocate($newimg,136,193,255); |
接下来,需要使用imagefill()函数用这种颜色填充这个图像,imagefill()函数有几个版本,例如imagefillrectangle()、imagefillpolygon()等。为简单起见,我们通过如下的格式使用imagefill()函数:
代码如下 | 复制代码 |
imagefill([image], [start x point], [start y point], [color]) imagefill($newimg,0,0,$skyblue); |
最后,在图像建立后释放图像句柄和所占用的内存:
代码如下 | 复制代码 |
imagepng($newimg); imagedestroy($newimg); ?> |
这样,创建图像的全部代码如下所示:
php教程代码:
代码如下 | 复制代码 |
<? header ("content-type: image/png"); $newimg = imagecreate(250,250); $skyblue = imagecolorallocate($newimg,136,193,255); imagefill($newimg,0,0,$skyblue); imagepng($newimg); imagedestroy($newimg); ?> |
代码如下 | 复制代码 |
<?php教程 /** class cls_jpgraph var $graph = ''; //图形对象 var $lineplot = ''; //线性对象 var $scale = ''; //图表类型? (textlin,textlog,intlin) /*margin position*/ /** $this->graph = new graph($this->width,$this->height); } /** /*图片基本信息设置*/ $this->scale = $scale; if(!empty($scale)) { if(!empty($bgcolor)) { /*如果手工设置了图片位置*/ if(!empty($this->title)) { } /*创建线性关系图表(linear plot)*/ return $this->lineplot; /*创建柱状图表(bar pot)*/ return $this->barpot; /*创建数据柱状图表组*/ return $this->gbplot; /*创建文本内容*/ if(is_array($postion)) { $this->graph->add($this->txt); /*创建丙状图表*/ $this->piegraph = new piegraph(300,200); $this->piegraph->title->set($title); if('3d' != $type) { function get_auth_code($length=4) if( $spam->stroke() === false ) { return $chars; /*完成图形创建并显示*/ ?> |
.jpgraph开源项目介绍
jpgraph是一个面向对象图形创建函数库。可用它来生成柱状图,饼状图,甘特图,网状图等常用到的一些图形。支持的图片格式有gif,jpg和png。
jpgraph是一个开源的利用php教程编写的专门提供图表的类库。它使得作图变成了一件非常简单的事情,你只需从数据库教程中取出相关数据,定义标题,图表类型等内容,你只需要学习掌握为数不多的jpgraph内置函数(可以参照jpgraph附带例子学习),利用简单的几行代码就可以做出超酷超炫的图表来!
2.jpgraph下载安装及使用
jpgraph的官方下载地址是:http://jpgraph.net/download/
下载时要注意,jpgraph分为几个版本,你可以根据你的php版本来确定下载那个版本的jpgraph库文件。
安装的话比较简单,不过需要注意下面两点:
确保你的php版本最低为4.04(不过我估计一般现在都5.0以上了,应该不成问题)。
另外一定要支持gd库,jpgraph是基于gd库的,至于gd库版本则可随意。
下载完成jpgraph后,将压缩包解压到任意目录下,进入到jpgraph-版本号目录下,有两个目录,其他的txt文件为简单使用说明文件,可以看看了解即可。docportal目录为帮助系统目录,其中包括从开始安装配置到使用说明,函数介绍等一应俱全,如果有耐心的话,可以好好看看。
我们主要需要的examples目录,在它里面包含了jpgraph库文件和很多的样例文件,我们可以查看学习它的样例文件,这样学习使用起来jpgraph才是最快的。
在jpgraph库文件目录中有一个名为jpg-config.inc的文件,它是jpgraph的配置文件,通过这里可以设置jpgraph的相关参数,例如设置jpgraph的cache(缓存)文件夹,和ttf(字体)文件夹等内容。
注意事项:
cache(缓存)文件夹路径可以自己定义,而ttf(字体)文件夹必须是%system%/fonts。
确保php对cache(缓存)文件夹有写的权限。
注意程序编码为utf-8编码。
3.简单样例
关于jpgraph的样例程序在examples目录下实在够多,我就不再过多罗嗦,就简单说明一下写法及上一个小例子。
首先在程序开始引用包含jpgraph库文件:
require_once ('jpgraph/jpgraph.php');
require_once ('jpgraph/jpgraph_line.php');
然后开始创建图形对象:
$graph = new graph(350,250);
设置图形及图表的各种样式属性参数:
$graph->setscale("textlin");
$graph->img->setmargin(30,90,40,50);
$graph->xaxis->setfont(ff_font1,fs_bold);
最后进行显示:
$graph->add($lineplot);
$graph->stroke();
下面是一个比较简单的但完整的jpgraph程序样例:
setscale("textlin");
$graph->img->setmargin(30,90,40,50);
$graph->xaxis->setfont(ff_font1,fs_bold);
$graph->title->set("dashed lineplot");
// create the linear plot
$lineplot=new lineplot($ydata);
$lineplot->setlegend("test 1");
$lineplot->setcolor("blue");
// style can also be specified as setstyle([1|2|3|4]) or
// setstyle("solid"|"dotted"|"dashed"|"lobgdashed")
$lineplot->setstyle("dashed");
// add the plot to the graph
$graph->add($lineplot);
// display the graph
$graph->stroke();
?>
到此jpgraph库的基本介绍就结束了,再下一篇我会放出我写的已经封装了jpgraph库的类文件,同时可能会有一篇关于jpgraph常见问题总结的说明,欢迎大家到时候给我提出意见哦。
相关文章
js URLdecode()与urlencode方法支持中文解码
下面来介绍在js中来利用urlencode对中文编码与接受到数据后利用URLdecode()对编码进行解码,有需要学习的机友可参考参考。 代码如下 复制代码 ...2016-09-20- 最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04
关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)
最近两天做项目总是被乱码问题困扰着,这不刚把mysql中文乱码问题解决了,下面小编把我的解决方案分享给大家,供大家参考,也方便以后自己查阅。首先:用show variables like “%colla%”;show varables like “%char%”;这两条...2015-11-24jQuery Real Person验证码插件防止表单自动提交
本文介绍的jQuery插件有点特殊,防自动提交表单的验证工具,就是我们经常用到的验证码工具,先给大家看看效果。效果图如下: 使用说明 需要使用jQuery库文件和Real Person库文件 同时需要自定义验证码显示的CSS样式 使用实例...2015-11-08- 这篇文章主要介绍了C#读取中文文件出现乱码的解决方法,涉及C#中文编码的操作技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要为大家详细介绍了JS实现随机生成验证码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-06
- 本文介绍两种使用 php 生成二维码的方法。 (1)利用google生成二维码的开放接口,代码如下: /** * google api 二维码生成【QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式】 * @param strin...2015-10-21
- 这篇文章主要介绍了Java生成随机姓名、性别和年龄的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-01
- 我们自己鼓捣mysql时,总免不了会遇到这个问题:插入中文字符出现乱码,虽然这是运维先给配好的环境,但是在自己机子上玩的时候咧,总得知道个一二吧,不然以后如何优雅的吹牛B。...2015-03-15
- 在debian环境下,彻底解决mysql无法插入和显示中文的问题Linux下Mysql插入中文显示乱码解决方案mysql -uroot -p 回车输入密码进入mysql查看状态如下:默认的是客户端和服务器都用了latin1,所以会乱码。解决方案:mysql>use...2013-10-04
- 一.mysql默认不支持中文,它的server和db默认是latin1编码.所以我们要将其改变为utf-8编码,因为utf-8包含了地球上大部分语言的二进制编码 1.关闭mysql服务 sudo /etc/init.d/mysql stop 2.修改mysql配置文件 mysql配...2015-10-21
- 这篇文章主要介绍了C#生成随机数功能,涉及C#数学运算与字符串操作相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
- 关于生成唯一数字ID的问题,是不是需要使用rand生成一个随机数,然后去数据库查询是否有这个数呢?感觉这样的话有点费时间,有没有其他方法呢?当然不是,其实有两种方法可以解决。 1. 如果你只用php而不用数据库的话,那时间戳+随...2015-11-24
- 通过jquery.cookie.js插件可以快速实现“点击获取验证码后60秒内禁止重新获取(防刷新)”的功能效果图:先到官网(http://plugins.jquery.com/cookie/)下载cookie插件,放到相应文件夹,代码如下:复制代码 代码如下: <!DOCTYPE ht...2015-03-15
- 下面小编就为大家带来一篇jQuery为动态生成的select元素添加事件的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-09-01
- 经常制作开发不同的网站的后台,写过很多种不同的后台导航写法。 最终积累了这种最写法,算是最好的吧...2013-09-29
- 验证码类文件 CreateImg.class.php <?php class ValidationCode { private $width,$height,$codenum; public $checkcode; //产生的验证码 private $checkimage; //验证码图片 private $disturbColor = ''; /...2015-11-08
- 这篇文章主要介绍了Java连接数据库oracle中文乱码解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-16
- 这篇文章主要介绍了基于JavaScript实现验证码功能的相关资料...2017-04-03