0
篇帖子
最近在学习深入学习手撸PHPmvc框架,目前进度到了英文验证码这一块了,怕以后可能会用到所以mark下来。
<?php
/**
* Created by PhpStorm.
* User: nobita
* Date: 8/18
* Time: 17:52
*/
class CaptchaLib
{
private $length;
private $font=5;
public function __construct($length=4,$font=5)
{
$this->length = $length;
$this->font = $font;
}
private function generalCode(){
$charArray = array_merge(range('A','Z'),range('a','z'),range(0,9));
$index = array_rand($charArray,4);
shuffle($index);
$str='';
foreach ($index as $i){
$str .= $charArray[$i];
}
return $str;
}
public function generalCaptcha(){
$code = $this->generalCode();
$_SESSION['code'] = $code;
$bgPath = LIB_PATH.'captcha/captcha.jpg';
$img = imagecreatefromjpeg($bgPath);
$color = imagecolorallocate($img,0,0,0);
if (rand(1,2) == 2)
$color = imagecolorallocate($img,255,255,255);
$x = (imagesx($img)-imagefontwidth($this->font)*strlen($code))/2;
$y = (imagesy($img)-imagefontheight($this->font))/2;
imagestring($img,$this->font,$x,$y,$code,$color);
header('content-type:image/png');
imagepng($img);
imagedestroy($img);
}
public function checkCaptcha($code){
return strtolower($code) == strtolower($_SESSION['code']);
}
}
$captcha = new CaptchaLib();
$code = $_POST['captcha'];
if (!$captcha->checkCaptcha($code)){
return $this->error('/index.php?p=admin&c=login&a=index','验证码错误!');
}
本博客内所有原创和翻译的文章的版权归本人所有,允许第三方转载,但转载时请务必保留作者名,并注明出处链接,否则本人将保留追究其法律责任的权利。
「人生在世,留句话给我吧」