rfcvd 发表于 2015-8-25 13:30:45

php验证码

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


2   session_start();
3   //生成验证码图片
4   Header("Content-type: image/PNG");
5   $im = imagecreate(44,18); // 画一张指定宽高的图片
6   $back = ImageColorAllocate($im, 245,245,245); // 定义背景颜色
7   imagefill($im,0,0,$back); //把背景颜色填充到刚刚画出来的图片中
8   $vcodes = "";
9   srand((double)microtime()*1000000);
10   //生成4位数字
11   for($i=0;$i<4;$i++){
12   $font = ImageColorAllocate($im, rand(100,255),rand(0,100),rand(100,255)); // 生成随机颜色
13   $authnum=rand(1,9);
14   $vcodes.=$authnum;
15   imagestring($im, 5, 2+$i*10, 1, $authnum, $font);
16   }
17   $_SESSION['VCODE'] = $vcodes;
18
19   for($i=0;$i<100;$i++) //加入干扰象素
20   {
21   $randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
22   imagesetpixel($im, rand()%70 , rand()%30 , $randcolor); // 画像素点函数
23   }
24   ImagePNG($im);
25   ImageDestroy($im);
26 ?>  
  基本就是这样实现了,其实如果给图片打水印也无非就是往图片里面写字,原理都差不多的。
  使用的地方直接
  <img src="xxx.php" /> 填写这个php文件的名字,就可以使用了。
  
页: [1]
查看完整版本: php验证码