现在的位置: 首页学习笔记>正文
PHP实战项目之验证码
发表于6年前 学习笔记 暂无评论

我们头像做好之后,我们就来做下验证码.

这个也有点小难度.

分两天来做完吧.

在我原来注册页面的代码改下这条就可以了

<dd>验 证 码:<input type="text" name="YZM" class="text yzm" /><img src="code.php"/></dd>

 

Code.php代码如下

PHP实战项目验证码

  1. <?php   
  2. /**
  3. * xiangmushizhan  
  4. * ================================================  
  5. * Copy 2012-2102 Suchao.  
  6. * Web: http://www.mechao.cn  
  7. * ================================================  
  8. * Author: Suchao.  
  9. * Date: 2012-6-8  
  10. */  
  11. ?>   
  12. <?php   
  13.   
  14.  header('Content-Type:image/png');   
  15.  session_start();   
  16.  //开启,这个需要放在前面   
  17. //   $code=dechex(mt_rand(0,15));   
  18. //   //转换成16进制   
  19. //   echo $code;   
  20. $_YZM_code=4;   
  21.       
  22.   for ($i=0;$i<$_YZM_code;$i++)   
  23.   {   
  24.       $YZM.=dechex(mt_rand(0,15));   
  25.   }   
  26.      
  27.     
  28.      
  29.   //把他累计起来,变成4位的随机数.   
  30.      
  31.   //然后需要做的是页面调用.   
  32.   //现在页面是无法传值的   
  33.   //我们需要跨页面保持持久的一个值   
  34. //    
  35. //  echo $_SESSION['code']=$YZM;   
  36. //     
  37. //     
  38. //     
  39.   $_width=75;   
  40.   $_height=25;   
  41. //     
  42. //     
  43.   $_img=imagecreatetruecolor($_width,$_height);   
  44.   
  45.   $_white=imagecolorallocate($_img,255,255,255);   
  46.      
  47.   //填充   
  48.   imagefill($_img,0,0,$_white);   
  49.      
  50.   $_black=imagecolorallocate($_img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));   
  51.      
  52.   //设置一个矩形图 然后边框减一 防止溢出.   
  53. //黑色边框   
  54.   imagerectangle($_img,0,0,$_width-1,$_height-1,$_black);   
  55. //     
  56. for ($i=0;$i<6;$i++)   
  57. {   
  58.     $_code_color=imagecolorallocate($_img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));   
  59.     imageline($_img,mt_rand(0,$_width-1),mt_rand(0,$_height-1),mt_rand(0,$_width-1),mt_rand(0,$_height-1),$_code_color);   
  60. }   
  61.      
  62. //加雪花效果   
  63. for ($i=0;$i<100;$i++)   
  64. {   
  65.     $_xuehua=imagecolorallocate($_img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));   
  66.     imagestring($_img,1,mt_rand(0,$_width-1),mt_rand(0,$_height-1),'*',$_xuehua);   
  67. }  

现在做出来的效果验证码的位置还是不能分开.
叠加在一起的,有点纠结,
明天解决这个问题.

效果图也明天一起发.

×
腾讯微博