Home > Backend Development > PHP Tutorial > Share a php verification code class and calling example

Share a php verification code class and calling example

WBOY
Release: 2016-07-25 08:56:39
Original
1017 people have browsed it
This article shares a good PHP verification code class, followed by a complete calling example. Friends in need can refer to it.

1, php verification code class

<?php 
// usage: 
/* 
显示验证码:
<img  src="captcha.php?cap=login.png" alt="Share a php verification code class and calling example" >

检查验证码:
检查输入的验证码与 $_SESSION['login'] 中保存的值是否相等。

*/
error_reporting(E_ALL);
session_start();
(!isset($_GET['cap']))?die('Error !'):1;
$captcha_array=array('login.png','contact.png','comment.png');
(!in_array($_GET['cap'],$captcha_array))?die('Error !'):1;
$captcha_cod=new captcha(basename($_GET['cap'],'.png'))   ;

//验证码类
class captcha
{
private $session_name;
private $image_width;
private $image_height;
private $cod_length;
private $cod_mode;
private $font_path;
private $avtage_font_size;
private $sec_cod;
private $res_image;

function __construct($name,$width=200,$height=50,$length=5,$mod=2,$font='arial.ttf',$av_font_size=25)
 {
 $this->   session_name  =  $name  ;
 $this->   image_width  =  $width  ;
 $this->   image_height  =  $height  ;
 $this->   cod_length  =  $length  ;
 $this->   mode    =  $mod  ;
 $this->   font_path  =  $font  ;
 $this->   avrage_font_size   =  $av_font_size   ;
 
 $this->Gen_Cod();
 }
  
function Write_Text($text)
{
  $x_pos=10;
  for($pos=0;$pos<strlen($text);$pos++)  {
    imagettftext($this->res_image,rand($this->avrage_font_size -2,$this->avrage_font_size +2),
    rand(-40,+40),$x_pos,rand(35,$this->image_height - $this->avrage_font_size),
    imagecolorallocate($this->res_image,rand(0,150),rand(0,150),rand(0,150)),
    $this->font_path,$text[$pos]);
    $x_pos+=($this->image_width/$this->cod_length);
 }
}
  
function Draw_Line()
{
  //
  for($pos=0;$pos<$this->image_height;$pos+=8)
  imageline($this->res_image,0,$pos,$this->image_width,$pos,imagecolorallocate($this->res_image,rand(200,230),rand(200,230),rand(200,230)));
  
  //
  for($pos=0;$pos<$this->image_width;$pos+=8)
  imageline($this->res_image,$pos,0,$pos,$this->image_height,imagecolorallocate($this->res_image,rand(200,230),rand(200,230),rand(200,230)));
}  
function Gen_Cod()
{
  //generate rand cod : 
  //mode:1   => 0-9      ,  mode:2   => 0-9 , a-z
  ($this->mode==1) ? $this->sec_cod=substr((string)rand(1000000000,9999999999),0,$this->cod_length) :
  $this->sec_cod=substr(md5(rand(1000000000,9999999999)),0,$this->cod_length);
  //set session :
  $_SESSION[$this->session_name]   =   $this->sec_cod   ;
   
   //creat image :
   $this->res_image=imagecreatetruecolor(   $this->image_width   ,   $this->image_height   );
      
   //fill color:
   imagefilledrectangle($this->res_image,0,0,$this->image_width,$this->image_height,imagecolorallocate($this->res_image,255,255,255));
   
   //write text :
   $this->Write_Text($this->sec_cod);
   
   //draw line :
   $this->Draw_Line();
   
   //output :
   imagejpeg($this->res_image);
   header('content-type:image/jpeg');
   
   //destroy:
   imagedestroy($this->res_image);
 }
}
Copy after login

2, Example of calling the php verification code class:

<?php  
session_start(); 
if(isset($_POST['captchacod'])){ 
if($_SESSION['login']==$_POST['captchacod'])echo'Your Entered Cod Was Correct<br>'; 
else echo'Your Entered Cod Was Incorrect<br>'; 

} 
?> 
<img  src="captcha.php?cap=login.png"  alt="Share a php verification code class and calling example" > 
<form action="<?php echo $_SERVER['PHP_SELF']; //safe it later (xss)?>" method="post"> 
INPUT TEXT :<br> 
<input type="text" name="captchacod"><br> 
<input type="submit" value="check"><br> 
</form>
Copy after login


source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template