PHP数字和字母相混合的验证码实现

码农公社  210.net.cn   210= 1024  10月24日一个重要的节日--码农(程序员)节

PHP实现字母+数字的混合验证码,支持自定义 验证码,验证码图片、宽度、高度、个数、背景图片等

验证码调用地址:Application\Home\Controller\CodeController.class.php


1 Vendor('Vcode.Vcode', '', '.class.php'); 
2 $config = array("width" => 100, "height" => 36, "count" => 4, "str" => 2); //配置 
3 $vcode = new \Vcode($config); 
4 $vcode->getCode(); //获取验证码 
5 $vcode->getImg(); //输出图片
6 exit;


验证码图片


1 <img src="__APP__/code/" id="code" onclick="changeCode($('#code'))"/>


JS通过后缀加随机数Math.random()来刷新验证码


1 function changeCode(obj) { 
2    obj.attr("src", '__APP__/code/?' + Math.random()); 
3 }


检测验证码是否输入正确


<input type="text" id="input_code" class="input"/> 

<input type="button" value="提交" class="btn" onclick="checkCode()"/>

function checkCode() { 

    $.post("__APP__/Code/check", {code: $("#input_code").val()}, function(data) { 

        if (data == '1') { 

            alert("验证码正确!"); 

        } else { 

            alert("验证码错误!"); 

        } 

    }, "json") 

}


PHP验证传过来的参数code和当前session存储的验证码进行比较,若是正确返回1,错误则-1


public function check() { 
        $code = I('post.code'); 
        if (strtolower($code) == $_SESSION["sucaihuo_code"]) { 
            echo "1"; 
        } else { 
            echo "-1"; 
        } 
}

评论