头像

PHP生成各种验证码和Ajax验证

2017-07-15 09:22:51 收藏    来源:PHP代码   浏览()   评论 ( 0 )   

PHP生成各种验证码和Ajax验证
验证码在WEB应用中非常重要,通常用来防止用户恶意提交表单,如恶意注册和登录、论坛恶意灌水等。本文将通过实例讲解使用PHP生成各种常见的验证码包括数字验证码、数字+字母验证码、中文验证码、算术验证码等等以及其Ajax验证过程。
查看演示 下载资源:0

手机扫码访问:

下载资源 下载积分:10

  PHP生成验证码图片

  PHP生成验证码的原理:使用PHP的GD库,生成一张带验证码的图片,并将验证码保存在Session中。PHP生成验证码的大致流程有:

  1、产生一张png的图片;

  2、为图片设置背景色;

  3、设置字体颜色和样式;

  4、产生4位数的随机的验证码;

  5、把产生的每个字符调整旋转角度和位置画到png图片上;

  6、加入噪点和干扰线防止注册机器分析原图片来恶意破解验证码;

  7、输出图片;

  8、释放图片所占内存。

  Ajax刷新和验证

  验证码生成后,我们要在实际的项目中应用,通常我们使用ajax可以实现点击验证码时刷新生成新的验证码(有时生成的验证码肉眼很难识别),即“看不清换一张”。填写验证码后,还需要验证所填验证码是否正确,验证的过程是要后台程序来完成,但是我们也可以通过ajax来实现无刷新验证。

  我们建立一个前端页面index.html,载入jquery,同时在body中加入验证码表单元素:

    <p>验证码:<input type="text" class="input" id="code_num" name="code_num" maxlength="4" />  
    <img src="code_num.php" id="getcode_num" title="看不清,点击换一张" align="absmiddle"></p> 
    <p><input type="button" class="btn" id="chk_num" value="提交" /></p>

  刷新验证码,其实就是重新请求了验证码生成程序,这里要注意的是调用code_num.php时要带上随机参数防止缓存。接下来填写好验证码之后,点“提交”按钮,通过$.post(),前端向后台chk_code.php发送ajax请求。

    $(function(){ 
        ... 
        $("#chk_num").click(function(){ 
            var code_num = $("#code_num").val(); 
            $.post("chk_code.php?act=num",{code:code_num},function(msg){ 
                if(msg==1){ 
                    alert("验证码正确!"); 
                }else{ 
                    alert("验证码错误!"); 
                } 
            }); 
        }); 
    });

  后台根据提交的验证码与保存在session中的验证码比对,完成验证。

  对于其他几种验证的生成和使用,其原理一样,开发者可以根据需要,产生多种样式的随机验证码,本文演示demo中提供了数字验证码、数字+字母验证码、中文验证码、仿google验证码,算术验证码。


标签: 验证码
声明:转载请注明来源(PHP代码)并保留原文链接:http://www.phpdaima.com/plug-23.html
广告不存在
评论0

后面还有条评论,点击查看>>

温馨提示:为规范评论内容,垃圾评论一律封号...

PHP生成各种验证码和Ajax验证
我的积分余额: 0.0 已下载次数: 0
所需积分:1010 开始下载
×