php验证码

首先验证码的原理就是,画一张图片,然后在这张图片上写一些字,然后加一些干扰的线条,像素点之类的东西就ok了,这里要使用php那就要知道php中画图的函数是那些,然后拿来用便是了。
  如果要用php的画图函数,首先要启用这个模块的功能。就是把php.ini中php_gd2.dll前面的注释去掉就好了。
  例如:
<?php

session_start ();

// 生成验证码图片


Header ( " Content-type: image/PNG " );

$im =  imagecreate( 44 , 18 );  //  画一张指定宽高的图片

$back
=  ImageColorAllocate( $im , 245 , 245 , 245 );  //  定义背景颜色  
    imagefill( $im , 0 , 0 , $back );  // 把背景颜色填充到刚刚画出来的图片中

$vcodes = "" ;

srand (( double ) microtime () * 1000000 );  
// 生成4位数字

for ( $i = 0 ; $i < 4 ; $i ++ ){
$font
=  ImageColorAllocate( $im , rand ( 100 , 255 ) , rand ( 0 , 100 ) , rand ( 100 , 255 ));  //  生成随机颜色
$authnum = rand ( 1 , 9 );  
$vcodes .= $authnum ;
    imagestring( $im , 5 , 2 + $i * 10 , 1 , $authnum , $font );
    }

$_SESSION [ ' VCODE ' = $vcodes ;

for ( $i = 0 ; $i < 100 ; $i ++ // 加入干扰象素
    {
$randcolor =  ImageColorallocate( $im , rand ( 0 , 255 ) , rand ( 0 , 255 ) , rand ( 0 , 255 ));
    imagesetpixel( $im , rand () % 70 , rand () % 30 , $randcolor );  //  画像素点函数

    }
    ImagePNG( $im );
    ImageDestroy( $im );

?>


  基本就是这样实现了,其实如果给图片打水印也无非就是往图片里面写字,原理都差不多的。 
  使用的地方直接
  <img src="xxx.php" /> 填写这个php文件的名字,就可以使用了。

你可能感兴趣的:(php验证码)