素材牛VIP会员

PHP检测中文验证码实例演示

 所属分类:PHP/MySql-文件操作,常用实例教程

 浏览:3039次-  下载:197次-  评论:20次-  更新时间:2020-09-08
PHP检测中文验证码实例演示
积分说明:注册即送15牛币,每日签到可获得5牛币,成为VIP会员可永久免牛币下载!   充值积分   充值会员   更多说明»
素材描述:网上的中文验证码不多,今天就分享个不错的中文验证码,支持自定义中文、字体、背景色等

基础属性

  • 难易初级
  • 语言PHP
  • 数据库

详细介绍

PHP生成验证码,注意font字体路径要对,否则显示图片不存在

session_start(); 
 
//1>设置验证码图片大小的函数 
$image = imagecreatetruecolor(200, 60); 
//5>设置验证码颜色 imagecolorallocate(int im, int red, int green, int blue); 
$bgcolor = imagecolorallocate($image, 255, 255, 255); //#ffffff 
//6>区域填充 int imagefill(int im, int x, int y, int col)  (x,y) 所在的区域着色,col 表示欲涂上的颜色 
imagefill($image, 0, 0, $bgcolor); 
//7>设置ttf字体 
$fontface = 'simhei.ttf'; 
//7>设置字库,实现简单的数字储备 
$str = '天地不仁以万物为刍狗圣人不仁以百姓为刍狗这句经常出现在控诉暴君暴政上地残暴不仁把万物都当成低贱的猪狗来看待而那些高高在上的所谓圣人们也没两样还不是把我们老百姓也当成猪狗不如的东西但实在正取的解读是地不情感用事对万物一视同仁圣人不情感用事对百姓一视同仁执子之手与子偕老当男女主人公含情脉脉看着对方说了句执子之手与子偕老女方泪眼朦胧含羞地回一句讨厌啦这样的情节我们是不是见过很多但是我们来看看这句的原句死生契阔与子成说执子之手与子偕老于嗟阔兮不我活兮于嗟洵兮不我信兮意思是说战士之间的约定说要一起死现在和我约定的人都走了我怎么活啊赤裸裸的兄弟江湖战友友谊啊形容好基友的基情比男女之间的爱情要合适很多吧'; 
//str_split()切割字符串为一个数组,一个中文在utf_8为3个字符 
$strdb = str_split($str, 3); 
//>11 
$captcha_code = ''; 
//8>生成随机的汉子 
for ($i = 0; $i < 4; $i++) { 
    //设置字体颜色,随机颜色 
    $fontcolor = imagecolorallocate($image, rand(0, 120), rand(0, 120), rand(0, 120));            //0-120深颜色 
    //随机选取中文 
    $in = rand(0, count($strdb)); 
    $cn = $strdb[$in]; 
    //将中文记录到将保存到session的字符串中 
    $captcha_code .= $cn; 
    /* imagettftext (resource $image ,float $size ,float $angle ,int $x ,int $y,int $color, 
      string $fontfile ,string $text ) 幕布 ,尺寸,角度,坐标,颜色,字体路径,文本字符串 
      mt_rand()生成更好的随机数,比rand()快四倍 */ 
    imagettftext($image, mt_rand(20, 24), mt_rand(-60, 60), (40 * $i + 20), mt_rand(30, 35), $fontcolor, $fontface, $cn); 
} 
//11>存到session 
$_SESSION['sucainiu_code'] = $captcha_code;

Ajax检测验证码

function checkCode() { 
    $.post("ajax.php", {code: $("#input_code").val()}, function(data) { 
        if (data == '1') { 
            alert("验证码正确!"); 
        } else { 
            alert("验证码错误!"); 
        } 
 
    }, "json") 
}

ajax.php判断传过来的验证码code和系统自动生成在session中的sucaihuo_code是否一致。若返回1则说明验证码正确,否则验证不通过。

SESSION_START(); 
$code = $_POST['code']; 
$code_session = isset($_SESSION["sucainiu_code"])?$_SESSION["sucainiu_code"]:""; 
if (strtolower($code) == $code_session) { 
    echo "1"; 
} else { 
    echo "-1"; 
}

点击验证码图片,切换新的验证码

function changeCode(obj) { 
    obj.attr("src", 'code.php?' + Math.random()); 
}

讨论这个素材(20)回答他人问题或分享使用心得会奖励牛币

zh***ni  
2020年03月13日

学到很多!!!

回复
何***孽  
2020年03月13日

这个功能挺实用的!

回复
隔***王  
2020年04月04日

很好很胀

回复
de***22  
2020年04月07日

很棒啊,希望下载

回复
袜***了  
2020年04月15日

厉害了我的哥,,,

回复
25***om  
2020年04月22日

看起来挺好的!

回复
爱***丘  
2020年05月13日

very good!

回复
lk***29  
2020年06月02日

太好了最棒了

回复
su***se  
2020年06月13日

超级实用,赞

回复
二***了  
2020年06月21日

真的很好用爱

回复
he***ba  
2020年07月07日

可以,学一学

回复
间***p  
2020年07月09日

学到很多!!!太棒了

回复
15***57  
2020年07月17日

厉害,收一下赞一个

回复
爱***丘  
2020年07月27日

看起来挺好的!用到时候过来down,谢谢···

回复
风***0  
2020年08月24日

这个验证厉害

回复
su***in  
2020年08月27日

非常好。。。实用

回复
阿***逗  
2020年08月31日

挺好的啊,大家来看下~

回复
野***7  
2020年09月01日

点击验证码图片,切换新的验证码

回复
do***lf  
2020年09月10日

点击验证码图片,切换新的验证码

回复
qq***75  
2020年12月11日

挺好的啊,大家来看下~

回复
 文明上网,理性发言!   😉 阿里云幸运券,戳我领取
我的牛币余额:0 已下载次数:197
所需牛币:200 开始下载

牛币获取:签到、评论、充值    » 在线充值(10牛币=1元)