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

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

网上的中文验证码不多,今天就分享个不错的中文验证码,支持自定义中文、字体、背景色等

淘建站为您提供更多_表单_验证码_code,在此特别感谢您对我们的支持与厚爱!

查看演示

演示不了,点击反馈

加入收藏

下载 471 次

下载资源

48 积分

特别说明:本站资源来自网友发布分享,仅供学习与参考,请勿用于商业用途,若有侵权请联系删除(272966172@qq.com)。
分类: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['sucaiq_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中的sucaiq_code是否一致。若返回1则说明验证码正确,否则验证不通过。

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

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

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

声明:本资料由淘建站会员提供,如转载注明来源,资料来源淘建站免费素材库:https://www.taojz.cn/mokuai/550.html
PHP检测中文验证码实例演示 希望对你有帮助,感谢您的支持!
留言(0)
头像
 阿里云限量代金券,戳我领取
1 2