PHP中驗證碼類及使用方法_PHP教程

來源:互聯網
上載者:User
備忘:將公用頁面加入session_start();

session_start();

ini_set('display_errors', 'Off');

class CCheckCodeFile

{

//驗證碼位元 www.2cto.com

var $mCheckCodeNum = 4;

//產生的驗證碼

var $mCheckCode = '';

//驗證碼的圖片

var $mCheckImage = '';

//幹擾像素

var $mDisturbColor = '';

//驗證碼的圖片寬度

var $mCheckImageWidth = '80';

//驗證碼的圖片寬度

var $mCheckImageHeight = '20';

//輸出頭

function OutFileHeader()

{

header ("Content-type: image/png");

}

//產生驗證碼

function CreateCheckCode()

{

//$this->mCheckCode = strtoupper(substr(md5(rand()),0,$this->mCheckCodeNum));

$this->mCheckCode = strtoupper(substr(rand(0,9999999999),0,$this->mCheckCodeNum));

session_cache_expire(60);

session_start();

$_SESSION["code_str"] = $this->mCheckCode;

return $this->mCheckCode;

}

//產生驗證碼圖片

function CreateImage()

{

$this->mCheckImage = @imagecreate ($this->mCheckImageWidth,$this->mCheckImageHeight);

imagecolorallocate ($this->mCheckImage, 255, 255, 255);

return $this->mCheckImage;

}

//設定圖片的幹擾像素

function SetDisturbColor()

{

for ($i=0;$i<=128;$i++)

{

$this->mDisturbColor = imagecolorallocate ($this->mCheckImage, rand(0,255), rand(0,255), rand(0,255));

imagesetpixel($this->mCheckImage,rand(1,100),rand(1,100),$this->mDisturbColor);

}

}

//設定驗證碼圖片的大小\寬\高

function SetCheckImageWH($width,$height)

{

if($width==''||$height=='')return false;

$this->mCheckImageWidth = $width;

$this->mCheckImageHeight = $height;

return true;

}

//在驗證碼圖片上逐個畫上驗證碼

function WriteCheckCodeToImage()

{

for ($i=0;$i<=$this->mCheckCodeNum;$i++)

{

$bg_color = imagecolorallocate ($this->mCheckImage, rand(0,255), rand(0,255), rand(0,255));

$x = floor($this->mCheckImageWidth/$this->mCheckCodeNum)*$i;

$y = rand(0,$this->mCheckImageHeight-15);

imagechar ($this->mCheckImage, 5, $x, $y, $this->mCheckCode[$i], $bg_color);

}

}

//輸出驗證碼圖片

function OutCheckImage()

{

$this ->OutFileHeader();

$this ->CreateCheckCode();

$this ->CreateImage();

$this ->SetDisturbColor();

$this ->WriteCheckCodeToImage();

imagepng($this->mCheckImage);

imagedestroy($this->mCheckImage);

}

}

$c_check_code_image = new CCheckCodeFile();

//$c_check_code_image ->SetCheckImageWH(100,50);//設定顯示驗證碼圖片的尺寸

$c_check_code_image->OutCheckImage();

?>

使用方法:

驗證碼

驗證是否正確

session_start();

if($_POST["number"] == $_SESSION["code_str"]){

// echo("驗證碼正確");

}else{

echo "

" . "請輸入的驗證碼,請重新輸入秒之後,將為您跳轉到上一頁";

}

摘自 http://itsafe.org/?p=384

http://www.bkjia.com/PHPjc/478478.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/478478.htmlTechArticle備忘:將公用頁面加入session_start(); ?php session_start(); ini_set(display_errors, Off); class CCheckCodeFile { //驗證碼位元 www.2cto.com var $mCheckCodeNum = 4; //產生...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.