• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP简单验证码功能机制实例详解

    本文实例讲述了PHP简单验证码功能机制。分享给大家供大家参考,具体如下:

    网站的安全性是开发者不可忽视的一个问题,目前使用最多的一种可以提高网站安全性的方法就是使用验证码功能机制,有的仅仅使用一个几位数字字母混乱的验证码,有的进行手机发送短信进行验证,有的使用邮箱发送邮件进行验证,但是这个验证码功能机制是如何实现的呢?下面就为大家详细解释验证码功能机制的实现思路以及简单的实现方法。

    1、验证码功能机制实现思路

    ① 常规的验证码实现:

    a、产生一张png的图片
    b、为图片设置背景色
    c、设置字体颜色和样式
    d、产生4位数的随机的验证码
    e、把产生的每个字符调整旋转角度和位置画到png图片上
    f、加入噪点和干扰线防止注册机器分析原图片来恶意注册
    g、输出图片
    h、释放图片所占内存
    i、将验证码保存到session或是数据库
    j、将和输入的验证码进行对比

    ② 短信(邮箱)验证码机制:

    a、产生4-6位数的随机的验证码
    b、把产生的每个字符保存到session或是数据库
    c、将验证码发送到用户的手机(邮箱)
    d、用户在规定时间内进行输入
    e、将验证码从session或是数据库中取出
    f、将和输入的验证码进行对比验证

    2、简单的实现验证码功能机制

    ① 新建captcha.php,写入以下代码

    ?php
    /**
     * =======================================
     * Created by WeiBang Technology.
     * User: Wei ZhiHua
     * Date: 2016/10/12 0020
     * Time: 下午 4:14
     * Power: 实现验证码功能
     * =======================================
     */
    //开启session
    session_start();
    //创建一个大小为 100*30 的验证码
    $image = imagecreatetruecolor(100, 30);
    $bgcolor = imagecolorallocate($image, 255, 255, 255);
    imagefill($image, 0, 0, $bgcolor);
    $captch_code = '';
    for ($i = 0; $i  4; $i++) {
      $fontsize = 6;
      $fontcolor = imagecolorallocate($image, rand(0, 120), rand(0, 120), rand(0, 120));
      $data = 'abcdefghijkmnpqrstuvwxy3456789';
      $fontcontent = substr($data, rand(0, strlen($data) - 1), 1);
      $captch_code .= $fontcontent;
      $x = ($i * 100 / 4) + rand(5, 10);
      $y = rand(5, 10);
      imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor);
    }
    //就生成的验证码保存到session
    $_SESSION['authcode'] = $captch_code;
    //在图片上增加点干扰元素
    for ($i = 0; $i  200; $i++) {
      $pointcolor = imagecolorallocate($image, rand(50, 200), rand(50, 200), rand(50, 200));
      imagesetpixel($image, rand(1, 99), rand(1, 29), $pointcolor);
    }
    //在图片上增加线干扰元素
    for ($i = 0; $i  3; $i++) {
      $linecolor = imagecolorallocate($image, rand(80, 220), rand(80, 220), rand(80, 220));
      imageline($image, rand(1, 99), rand(1, 29), rand(1, 99), rand(1, 29), $linecolor);
    }
    //设置头
    header('content-type:image/png');
    imagepng($image);
    imagedestroy($image);
    ?>
    
    

    ② 新建form.php,写入以下代码

    ?php
    /**
     * =======================================
     * Created by WeiBang Technology.
     * User: Wei ZhiHua
     * Date: 2016/10/12 0021
     * Time: 下午 4:14
     * Power: 实现验证码功能
     * =======================================
     */
    if (isset($_REQUEST['authcode'])) {
      session_start();
      if (strtolower($_REQUEST['authcode']) == $_SESSION['authcode']) {
        echo "输入正确!";
      } else {
        echo "输入错误!";
      }
      exit();
    }
    ?>
    !DOCTYPE html>
    html>
    head>
      meta http-equiv="content-type" content="text/html;charset=utf-8"/>
      title>确认验证码/title>
    /head>
    body>
    form method="post" action="./form.php">
      p>验证码图片:
        img id="captcha_img" border="1" src="./captcha.php?r=?php echo rand(); ?>" width=100 height=30>
        a href="javascript:void(0)" rel="external nofollow" 
          onClick="document.getElementById('captcha_img').src='./captcha.php?r='+Math.random()">换一个?/a>
      /p>
      p>请输入图片中的内容:input type="text" name="authcode" value=""/>/p>
      p>input type="submit" value="提交" style="padding:6px 20px;">/p>
    /form>
    /body>
    /html>
    
    

    以上就是php验证码的制作思路和实现方法,从简单到复杂,可以根据这些写出非常完美的验证码功能机制。

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP图形与图片操作技巧汇总》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数学运算技巧总结》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • 深入解析PHP底层机制及相关原理
    • PHP中的异常处理机制深入讲解
    • PHP底层运行机制与工作原理详解
    • php7 错误处理机制修改实例分析
    • PHP的Trait机制原理与用法分析
    • PHP命名空间与自动加载机制的基础介绍
    • PHP session垃圾回收机制实例分析
    • PHP进阶学习之类的自动加载机制原理分析
    • PHP进阶学习之垃圾回收机制详解
    • PHP SESSION机制的理解与实例
    • PHP析构函数destruct与垃圾回收机制的讲解
    • 使用PHP反射机制来构造"CREATE TABLE"的sql语句
    • 详解PHP的执行原理和流程
    上一篇:PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
    下一篇:PHP微商城开源代码实例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP简单验证码功能机制实例详解 PHP,简单,验证,码,功能,机制,