好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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]因其本身有错无法显示.

查看更多关于PHP验证码生成例子的详细内容...

  阅读:70次