• PHP GD 生成图片验证码+session获取储存验证码


        以下分享一个PHP制作的图片验证码案例:案比例如以下图:


       运用PHP GD具体请看:http://www.php.net/manual/zh/book.image.php

       后台图片代码例如以下:

     

    <?

    php session_start(); $image = imagecreatetruecolor(100,30);//创建一个宽100。高度30的图片 $bgcolor=imagecolorallocate($image,255,255,255);//图片背景是白色 imagefill($image,0,0,$bgcolor);//图片填充白色 //随机数 /** for($i=0;$i<4;$i++){ $fontsize=6; $fontcolor=imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120)); $fontcontent=rand(0,9); $x=($i*100/4)+ rand(5,10); $y=rand(5,10); imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor); } **/ //随机数据 $captch_code=''; for($i=0;$i<4;$i++){ $fontsize=6; $fontcolor=imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120)); $data='asdfdfglfg74erf21854hgfhgfhkg4ljkghjtrtywiqpoqpwepdfgvnjytyut12313345645667686797800'; $fontcontent=substr($data,rand(0,strlen($data)),1); $captch_code.=$fontcontent; $x=($i*100/4)+ rand(5,10); $y=rand(5,10); imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor); } $_SESSION['authcode']=$captch_code; //随机点 for($i=0;$i<200;$i++){ $pointcolor=imagecolorallocate($image,rand(50,120),rand(50,120),rand(50,120)); imagesetpixel($image,rand(1,99),rand(1,99),$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); imagedestory($image); ?>


    前台代码例如以下:

    <?php
       if(isset($_REQUEST['autocode'])){
          session_start();
    	  if(strtolower($_POST['autocode']) == $_SESSION['authcode']){
    	   echo '正确';
    	  }else{
    	  echo'错误';
    	  }
       
       exit();
       }
    
    ?>
    <!DOCTYPE html>
    <html>
      <head>
       <meta chartset="utf-8">
      </head>
      <body>
         <form method="post"  action="form.php">
    	   <p>验证码图片:<img border="1" src="captcha.php?r="<?php echo rand();?> width="100" height="30"  /></p>
    	   
    	   <p>输入内容:<input type="text" name="autocode" value="" /></p>
           
        <p><input type="submit"  value="提交" style="padding:6px 20px;"/></p>
      
      
         </form>
      </body>
    
    
    </html>


    加入点击运行改动例如以下就可以:

      <p>验证码图片:<img border="1" id="capthcha_img" onclick="this.src='captcha.php?r='+Math.random()" src="captcha.php?

    r="<?

    php echo rand();?> width="100" height="30" /> <a href="javascript:void(0)" onclick="document.getElementById('capthcha_img').src='captcha.php?

    r='+Math.random()">换一个</a></p>



    本案例原创,转载请注明。

      

  • 相关阅读:
    JVM致命错误日志(hs_err_pid.log)分析
    JVM调优-命令大全(jps jstat jmap jhat jstack jinfo
    GC日志分析详解
    简单的学习,实现,领域事件,事件存储,事件溯源
    学习DDD的初步尝试,从最基础的开始,业务介绍,划分限界上下文 ,建立模型
    .Net Core + DDD基础分层 + 项目基本框架 + 个人总结
    第三节:使用Log4net和过滤器记录异常信息,返回异常给前端
    从一层到多层架构的学习笔记
    学习服务之间的调用,三个方法的演化
    .Net Core3.0 WEB API 中使用FluentValidation验证,实现批量注入
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/6994246.html
Copyright © 2020-2023  润新知