一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP生成加減算法方式的驗證碼實例

PHP生成加減算法方式的驗證碼實例

2019-10-18 13:24pengmingdong PHP教程

下面小編就為大家分享一篇PHP生成加減算法方式的驗證碼實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

這是在網上找的一個demo,我加入了一部分代碼。可以使用。

這里需要說明一下,我們調用這個驗證碼類應該在一個單獨的控制器方法中使用。

生成的圖片的算法是用代碼生成的,然后把計算值存入session中。

驗證的時候是獲取用戶的輸入值,然后取出服務端的值進行對比

<?php 
namespace mobile\components;
/** 
 * @author fenghuo 
 * 
 * 改造的加減法驗證類 
 * 使用示例 VerifyCode::get(1,2); 
 * 驗證示例 VerifyCode::check($code); 
 */ 
class VerifyCode 
{ 
  /** 
   * php驗證碼 
   */ 
  public static function get($one,$two,$prefix = '', $font_size = 28) 
  { 
    //文件頭... 
    ob_get_clean();
    header("Content-type: image/png;charset=utf-8;"); 
    //創建真彩色白紙 
    $width      = $font_size*5; 
    $height      = $font_size+1; 
    $im        = @imagecreatetruecolor($width, $height) or die("建立圖像失敗"); 
    //獲取背景顏色 
    $background_color = imagecolorallocate($im, 255, 255, 255); 
    //填充背景顏色 
    imagefill($im, 0, 0, $background_color); 
    //獲取邊框顏色 
    $border_color   = imagecolorallocate($im, 200, 200, 200); 
    //畫矩形,邊框顏色200,200,200 
    imagerectangle($im,0,0,$width - 1, $height - 1,$border_color); 
    //逐行炫耀背景,全屏用1或0 
    for($i = 2;$i < $height - 2;$i++) { 
      //獲取隨機淡色 
      $line_color = imagecolorallocate($im, rand(200,255), rand(200,255), rand(200,255)); 
      //畫線 
      imageline($im, 2, $i, $width - 1, $i, $line_color); 
    } 
    //設置印上去的文字 
    $firstNum = $one; 
    $secondNum = $two; 
    $actionStr = $firstNum > $secondNum ? '-' : '+'; 
    //獲取第1個隨機文字 
    $imstr[0]["s"] = $firstNum; 
    $imstr[0]["x"] = rand(2, 5); 
    $imstr[0]["y"] = rand(1, 4); 
    //獲取第2個隨機文字 
    $imstr[1]["s"] = $actionStr; 
    $imstr[1]["x"] = $imstr[0]["x"] + $font_size - 1 + rand(0, 1); 
    $imstr[1]["y"] = rand(1,5); 
    //獲取第3個隨機文字 
    $imstr[2]["s"] = $secondNum; 
    $imstr[2]["x"] = $imstr[1]["x"] + $font_size - 1 + rand(0, 1); 
    $imstr[2]["y"] = rand(1, 5); 
    //獲取第3個隨機文字 
    $imstr[3]["s"] = '='; 
    $imstr[3]["x"] = $imstr[2]["x"] + $font_size - 1 + rand(0, 1); 
    $imstr[3]["y"] = 3; 
    //獲取第3個隨機文字 
    $imstr[4]["s"] = '?'; 
    $imstr[4]["x"] = $imstr[3]["x"] + $font_size - 1 + rand(0, 1); 
    $imstr[4]["y"] = 3; 
    //文字 
    $text = ''; 
    //寫入隨機字串 
    for($i = 0; $i < 5; $i++) { 
      //獲取隨機較深顏色 
      $text_color = imagecolorallocate($im, rand(50, 180), rand(50, 180), rand(50, 180)); 
      $text .= $imstr[$i]["s"]; 
      //畫文字 
      imagechar($im, $font_size, $imstr[$i]["x"], $imstr[$i]["y"], $imstr[$i]["s"], $text_color); 
    } 
    session_start();
    $_SESSION[$prefix.'verifycode'] = $firstNum > $secondNum ? ($firstNum - $secondNum) : ($firstNum + $secondNum); 
    //顯示圖片 
    ImagePng($im); 
    //銷毀圖片 
    ImageDestroy($im); 
  } 
  public static function check($code) 
  { 
    if(trim($_SESSION[$prefix.'verifycode']) == trim($code)) { 
      return true; 
    } else { 
      return false; 
    } 
  } 
} 

以上這篇PHP生成加減算法方式的驗證碼實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲波多野结衣日韩在线 | 成人精品一区久久久久 | 亚洲日本中文字幕天堂网 | 青青青草国产线观 | 女女性恋爱视频入口 | 毛片在线观看网站 | 久久久久国产一级毛片高清片 | 激情乱文 | 国产精品29页 | 精品久久伦理中文字幕 | 闺蜜的样子小说安沁在线阅读 | 黑人巨大和日本娇小中出 | 亚洲国产日韩成人综合天堂 | 韩国三级在线高速影院 | 摸逼网| 桥本有菜在线四虎福利网 | aaa免费看| 全黄h全肉细节修仙玄幻文 全彩调教侵犯h本子全彩妖气he | 雪恋电影完整版免费观看 | 国产成人一区二区三区在线视频 | 四虎成人国产精品视频 | 5g在线观看 | 香蕉免费一区二区三区在线观看 | 久久99国产亚洲高清观着 | 热久久天天拍天天拍热久久2018 | 国产精品第2页 | 污翼鸟| 亚洲国产高清一区二区三区 | 肉大捧一进一出视频免费播放 | 亚洲狠狠婷婷综合久久久久网站 | 国产剧情麻豆刘玥视频 | 99久久精品免费看国产情侣 | 69re在线观看| 日产乱码卡1卡2卡三卡四在线 | 日韩免费在线视频 | 色综合久久中文字幕综合网 | 国产裸舞福利资源在线视频 | 鬼吹灯之天星术免费观看 | 精品视频在线免费看 | 四虎影院地址 | 四虎永久在线精品国产 |