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

2018-06-23 23:41:04来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

图文验证码的实现原理:

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>    

 事实截图:

 

 

  

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Log4net日志记录、详细配置(自己使用)

下一篇:IIS7部署网站出现500.19错误(权限不足)的解决方案