• 使用php在服务器端生成图文验证码(二)


    图文验证码的实现原理:

    1):准备些许图片将其存储在数据库,每一张图片对应一个标识字段。

    2):在服务器端使用数组的形式将图片与标识字段组合起来。

    3):随机给客户端返回图片,并接受用户输入的字段。

    4):将用户输入的字段与服务器存储的与每张图片的信息进行比对。

    5):相同则通过,否则不通过。

    a)第一步生成验证码

    createCode.php

    <?php
        header("content-type:text/html;charset=utf-8");    
        session_start();//开启服务器 存储
        $table=array(
          'pic0'=>"猫",
          'pic1'=>'狗',
          'pic2'=>'猴',
          'pic3'=>'鱼'
        );
          $index=rand(0,3);//生成随机数
          $value=$table['pic'.$index];//取出随机值
          $_SESSION['authcode']=$value;//将值存储在服务器端
    
          $filename=dirname(__FILE__).'\pic'.$index.'.jpg';//给出文件的地址
           
          $content=file_get_contents($filename);//读取文件的内容
          
          ob_clean();//清除缓存
          
          header("content-type:image/jpg");//规定以jpg的形式输出图片
          
          echo $contents;//输出图片文件 
    ?>
    

    b)使用验证码  

    useCode.php: 

    <?php
        header("content-type:text/html;charset=utf-8");
        if(isset($_REQUEST["authcode"])){
             session_start();     
             if($_SESSION['authcode']==$_REQUEST['authcode']){//$_REQUEST['authcode']..获取输入框的值
                 echo "<font>验证通过</font>";
              }
             else{
                 echo "<font>验证失败</font>";
             }
             exit();
        }
    ?>
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>验证码正确</title>
    </head>
    </html>
    <body>
        <form action="useCode.php">
           <p>验证码图片:
               <img src="createCode.php?=<?php echo rand();?>
                onclick="this.src='createCode.php?+<?php rand(0,200)?>'"
                alt="" 
               ">
           </p>
           <p>输入验证码的内容:
               <input type="text" name="authcode" value="">
           </p>
           <p>
               <input type="submit" value="提交">
           </p>
        </form>    
    </body>    
    

     事实截图:

     

      

  • 相关阅读:
    ssh secure shell client
    端口转发后执行putty连接------------------》VirtualBox+ubuntu_server
    linux 文件权限 初级
    Ubuntu下virtualbox nat网络模式下 实现宿主机访问虚拟机
    linux php
    linux 进入mysql
    Spring_day04--整合struts2和spring框架
    Spring_day04--课程安排_回顾SSH框架知识点_SSH框架整合思想
    Spring_day03--Spring的事务管理
    Spring_day03--Spring配置c3p0连接池和dao使用jdbcTemplate
  • 原文地址:https://www.cnblogs.com/evaling/p/6868905.html
Copyright © 2020-2023  润新知