Maison > php教程 > php手册 > le corps du texte

php验证码实现及使用

WBOY
Libérer: 2016-06-06 19:44:39
original
1024 Les gens l'ont consulté

又迎来了七夕!昨晚实现了这个程序的基本功能,今天中午完善了一下。唯一遗憾的是闹钟没有叫醒我,所以,没有看到流星雨!那么就用这个代码来作为补偿吧! 第一次写技术博客,一来可以供以后复习,而来在理一下自己的思路。看到的哥们还请不吝赐教啊!^_^ 验

又迎来了七夕!昨晚实现了这个程序的基本功能,今天中午完善了一下。唯一遗憾的是闹钟没有叫醒我,所以,没有看到流星雨!那么就用这个代码来作为补偿吧!php验证码实现及使用第一次写技术博客,一来可以供以后复习,而来在理一下自己的思路。看到的哥们还请不吝赐教啊!^_^

 

验证码的特点:

1)可以随机显示字符

2)按照自己喜欢的方式确定显示的验证码类型(0-只显示数字,1-显示小写字母和数字,2-显示数字、大小写字母)

3)可以设置自己要求的显示大小

4)可以添加干扰线和干扰点

 

实现步骤

第一步:实现随机生成一个指定字符个数的验证码函数getCode()

 /**
  * 功能:随机生成一个验证码函数
  * @param $code_len 验证码显示的字符个数
  * @param $type 验证码类型(默认 0-全为数字, 1-小写字母和数字,2-小写、大写、数字组成)
  * @author MaChaoHui<mchgloak11520>
  * */
  
 function getCode( $code_len, $type = 2 ){
   $str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; 
  $type_pos = array( 9, 35, strlen($str)-1 ); //类型位置定界
  
  //随机产生验证码内容
  $content = '';
  for( $i=0; $i
<p> </p>
<p>此时在浏览器中的效果为:</p>
<p><img  src="/inc/test.jsp?url=http%3A%2F%2Fimg.blog.csdn.net%2F20130813130530250%3Fwatermark%2F2%2Ftext%2FaHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTExODAxNA%3D%3D%2Ffont%2F5a6L5L2T%2Ffontsize%2F400%2Ffill%2FI0JBQkFCMA%3D%3D%2Fdissolve%2F70%2Fgravity%2FCenter&refer=http%3A%2F%2Fblog.csdn.net%2Fu011118014%2Farticle%2Fdetails%2F9946279" alt="php验证码实现及使用" ></p>
<p>第二步:绘制验证码背景。</p>
<p>我们知道PHP的GD库绘图有几个步骤:1)绘制一个画布、分配背景颜色;2)绘图;3)输出图像;4)销毁画布(释放内存)。所以接下来就是按照这几个步骤来绘制验证码。</p>
<p>1)绘制画布、分配背景颜色(imagecreatetruecolor( $width, $height );函数)</p>
<pre class="brush:php;toolbar:false">$width = $code_len * 20;
  $height = 30;
  $im = imagecreatetruecolor( $width, $height );
 
$bg = imagecolorallocate( $im, 200, 200, 200 );
 
//2)绘制背景
  imagefill( $im, 0, 0, $bg );
 
//3). 输出图像
  header("Content-Type:image/png");  //设置响应头信息
  imagepng( $im );      
  
  //4). 销毁画布(释放内存)
  imagedestroy( $im ); 
Copier après la connexion


 

 

此时实现的效果为:

php验证码实现及使用

第三步:绘制验证码字体。

核心代码:

//绘制验证码内容(一个个字符绘制)
  for( $i=0; $i
<p> </p>
<p>此时效果为:</p>
<p><img  src="/inc/test.jsp?url=http%3A%2F%2Fimg.blog.csdn.net%2F20130813131709859%3Fwatermark%2F2%2Ftext%2FaHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTExODAxNA%3D%3D%2Ffont%2F5a6L5L2T%2Ffontsize%2F400%2Ffill%2FI0JBQkFCMA%3D%3D%2Fdissolve%2F70%2Fgravity%2FCenter&refer=http%3A%2F%2Fblog.csdn.net%2Fu011118014%2Farticle%2Fdetails%2F9946279" alt="php验证码实现及使用" ></p>
<p>可见,没有干扰线和干扰点也没有边框,不是很好看。所以接下来添加这几个。</p>
<p> </p>
<p>第四步:添加干扰线、干扰点和边框。</p>
<p>核心代码:</p>
<pre class="brush:php;toolbar:false">//绘制边框
  imagerectangle($im, 0, 0, $width-1, $height-1, $color[rand(0, 4)]);
  //随机添加干扰点
  for( $i=0; $i
<p><br>
 </p>
<p> </p>
<p> </p>
<p>使用:</p>
<pre class="brush:php;toolbar:false">
Copier après la connexion


php验证码实现及使用

 

 

此时效果:

php验证码实现及使用

 

 

 

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!