栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

既简单又安全的PHP验证码 附调用方法

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

既简单又安全的PHP验证码 附调用方法

一、验证码示例


二、php验证码类,secoder.class.php

 0) {  
   imagesetpixel(self::$_image, $px + $i, $py + $i, self::$_color); // 这里画像素点比imagettftext和imagestring性能要好很多   
   $i--; 
 } 
      } 
    } 
     
    $A = mt_rand(1, self::$imageH/2);  // 振幅     
    $f = mt_rand(-self::$imageH/4, self::$imageH/4);  // X轴方向偏移量 
    $T = mt_rand(self::$imageH*1.5, self::$imageL*2); // 周期 
    $w = (2* M_PI)/$T;    
    $b = $py - $A * sin($w*$px + $f) - self::$imageH/2; 
    $px1 = $px2; 
    $px2 = self::$imageL; 
    for ($px=$px1; $px<=$px2; $px=$px+ 0.9) { 
      if ($w!=0) { 
 $py = $A * sin($w*$px + $f)+ $b + self::$imageH/2; // y = Asin(ωx+φ) + b 
 $i = (int) ((self::$fontSize - 8)/4); 
 while ($i > 0) {      
   imagesetpixel(self::$_image, $px + $i, $py + $i, self::$_color); // 这里(while)循环画像素点比imagettftext和imagestring用字体大小一次画出(不用这while循环)性能要好很多   
   $i--; 
 } 
      } 
    } 
  } 
   
   
  protected static function _writeNoise() { 
    for($i = 0; $i < 10; $i++){ 
      //杂点颜色 
      $noiseColor = imagecolorallocate( 
 self::$_image,  
 mt_rand(150,225),  
 mt_rand(150,225),  
 mt_rand(150,225) 
      ); 
      for($j = 0; $j < 5; $j++) { 
 // 绘杂点 
 imagestring( 
   self::$_image, 
   5,  
   mt_rand(-10, self::$imageL),  
   mt_rand(-10, self::$imageH),  
   self::$codeSet[mt_rand(0, 27)], // 杂点文本为随机的字母或数字 
   $noiseColor 
 ); 
      } 
    } 
  } 
   
   
  public static function check($code) { 
    isset($_SESSION) || session_start(); 
    // 验证码不能为空 
    if(empty($code) || empty($_SESSION[self::$seKey])) { 
      //echo $_SESSION[self::$seKey]['code'].'1'; 
      return false; 
    
    } 
    // session 过期 
    if(time() - $_SESSION[self::$seKey]['time'] > self::$expire) { 
      unset($_SESSION[self::$seKey]); 
      //echo $_SESSION[self::$seKey]['code'].'2'; 
      return false; 
      //return 0; 
    } 
 
//   if($code == $_SESSION[self::$seKey]['code']) { 
    if(strtoupper($code) == $_SESSION[self::$seKey]['code']) { //不区分大小写比较 
      //echo $_SESSION[self::$seKey]['code'].'3'; 
      return true;     
    } 
    //echo $_SESSION[self::$seKey]['code'].'4'; 
    return false; 
  
  } 
} 
 
 
// useage 
 
 
 

三、调用方法

1、显示验证码页面code.php

entry();  
?>  

2、检查验证码是否正确

entry();  
  $code = $_GET['code'];  
  echo $vcode->check($code);     
  //$_SESSION['code'] = $vc->getCode();//验证码保存到SESSION中 
?>  

3、验证码输入框调用页面

 单击图片重新获取验证码

以上就是本文的全部内容,希望对大家学习PHP程序设计有所帮助。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/43136.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号