生成验证码原理相当简单就是利用mt_rand随机生成一个数字,然后保存到session中用来用户登录时判断输入的验证码与我们生成的是否一致,然后就是把随机数字利用php gd函数生成一张图片,这样就完成了验证码的生成了,实例代码如下:
- <?php
- /**
- *
- * @file imgvcode.php
- * @create date 2007-09-25
- * @copyright (c) 2005 - 2007 eifr.com
- * @license http://www.hzhuti.com/nokia/n97/
- * eifr is free software
- */
- session_start();
- // main
- $vcodes = '';
- //generate Number 4
- srand((double)microtime()*1000000);
- for($i=0;$i<4;$i++){
- $vcodes.=rand(1,9);
- }
- $_SESSION['eifr_checkvcode'] = $vcodes;
- if(function_exists('imagecreate')){
- //generate picture validation code
- Header("Content-type: image/PNG");
- $img = imagecreate(44,18);
- $bg = ImageColorAllocate($img, 245,245,245);
- imagefill($img,0,0,$bg); //background
- //generate Number 4
- for($i=0;$i<4;$i++){
- $font = ImageColorAllocate($img, rand(100,255),rand(0,100),rand(100,255));
- $vnum = substr($vcodes, $i, 1);
- imagestring($img, 5, 2+$i*10, 1, $vnum, $font);
- }
- //add interference
- for($i=0;$i<100;$i++)
- {
- $randcolor = ImageColorallocate($img,rand(0,255),rand(0,255),rand(0,255));
- imagesetpixel($img, rand()%70 , rand()%30 , $randcolor);
- }
- ImagePNG($img);
- ImageDestroy($img);
- }
- ?>
注:php生成验证码需要开启php gd图片库哦,要不是不能生成的。
新闻热点
疑难解答