联系电话:0755-27515592
最新动态:

PHP教程

你的位置: 首页>>智慧亿恩>>PHP教程

php 验证码详细生成与使用方法

点击数:12582015-07-19 17:54:13 来源: 外贸网站建设,深圳外贸网站建设,深圳网站建设,外贸商城网站制作-亿恩科技

新闻摘要:注意:以下代码需要打开php的gd库,修改php.in文件的配置,把已经注释掉的行之前的分号取消即可:extension=php_gd2.dll. 实例一,代码如下: $width =165; $height =120; $image =imagecreatetruecolor( $width , $hei

注意:以下代码需要打开php的gd库,修改php.in文件的配置,把已经注释掉的行之前的分号取消即可:extension=php_gd2.dll.

实例一,代码如下:

  1. $width = 165; 
  2.         $height = 120; 
  3.         $image = imagecreatetruecolor($width,$height); 
  4.         $bg_color = imagecolorallocate($image,255,255,255); 
  5.         $tm = imagecolorallocate($image,255,0,0); 
  6.         imagefilledrectangle($image,0,0,$width,$height,$bg_color); 
  7.         imagefill($image,0,0,$bg_color); 
  8.         /* 
  9.         //$text = random_text(5); 
  10.         $text = "ffff"; 
  11.         $font = 8; 
  12.         $struft=iconv("gbk","utf-8",$text); 
  13.         $x = imagesx($image); 
  14.         $y = imagesy($image); 
  15.         $fg_color = imagecolorallocate($image,233,14,91); 
  16.         imagestring($image,$font,$x,$y,$struft,$fg_color); 
  17.         $_session['captcha'] = $text; 
  18.         */ 
  19. header("content-type:image/png"); 
  20.         imagepng($image); 
  21.         imagedestroy($image); 

实例二,代码如下:validate.php

采用了session识别,稍微改进了一下目前网络上流传的php验证码,加入杂点,数字颜色随机显示,控制4位数字显示.

  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.  
  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. for($i=0;$i<100;$i++) //加入干扰象素 
  18. //开源代码vcphp.com 
  19. $randcolor = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255)); 
  20. imagesetpixel($im, rand()%70 , rand()%30 , $randcolor); 
  21. }  
  22. imagepng($im); 
  23. imagedestroy($im); 
  24.  
  25. $_session['vcode'] = $vcodes
  26. ?> 

下面看完整实例,代码如下:

  1. <?php 
  2.  
  3.     @header("content-type:text/html; charset=utf-8"); 
  4.  
  5.     //打开session 
  6.  
  7.     session_start(); 
  8.  
  9. ?> 
  10.  
  11. <html> 
  12.  
  13.     <head> 
  14.  
  15.        <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
  16.  
  17.        <title>php验证码示例</title> 
  18.  
  19.     </head> 
  20.  
  21.     <body> 
  22.  
  23.        验证码:<br/> 
  24.  
  25.        <iframe id="iimg" height="100" width=300 src="img.php" frameborder="0" ></iframe> 
  26.  
  27.        <br/> 
  28.  
  29.        <input type=button value="看不清,换一张" onclick="iimg.location.reload();"
  30.  
  31.        <br> 
  32.  
  33.        <form action="validate.php" method="post"
  34.  
  35.            输入验证码:<input name="imgid" style="width:60"
  36.  
  37.            <input type="submit" value="确定"
  38.  
  39.        </form> 
  40.  
  41.     </body> 
  42.  
  43. </html> 

php判断用户输入的验证码是否与系统生成的一致,代码如下:

  1. <?php @header("content-type:text/html; charset=utf-8"); 
  2.  
  3.     //开启session 
  4.  
  5.     session_start(); 
  6.  
  7.     //得到用户输入的验证码,并转换成大写 
  8.  
  9.     $imgid_req = $_request['imgid']; 
  10.  
  11.     $imgid_req = strtoupper($imgid_req); 
  12.  
  13.     //验证该字符串是否注册了session变量 
  14.  
  15.     if (session_is_registered($imgid_req)) { 
  16.  
  17.        echo "<font color=blue >通过验证!</font>"
  18.  
  19. 【责任编辑:(Top) 返回页面顶端
贴心
全国7×24小时客服热线
安全
病毒杀除率高于99%
稳定
网站可用性高于99.9%
实力
服务68家上市企业及集团公司
  • 中国·深圳·总部
  • 电话:0755-27515592
  • Q Q:1651353007
  • 地址:深圳市坪山区坑梓街道梓横西路49号D栋7F
  • 广州分公司
  • 电话:020-36673373
  • Q Q:1587248488
  • 地址:广州市流花路11号西郊大厦A座5021室
亿恩科技手机站
关注亿恩科技微信

亿恩科技—企业信息化一站式服务专家


Copyright © 2008- 深圳市亿恩科技有限公司版权所有 粤ICP备15056041号

联系我们 | 常见问题 | 在线留言 | 支付方式 | 软件开发 | 我的观点 | 资质荣誉 | 服务流程