zoukankan      html  css  js  c++  java
  • About_PHP_验证码的生成

    验证码就是一张图片,用到几个关键字:

     1 <?php
     2 
     3 session_start();
     4 $arr = array(
     5     'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x',
     6     'y','z','0','1','2','3','4','5','6','7','8','9'
     7 );
     8 $rand = "";
     9 for($i=1;$i<=4; $i++){
    10     $rand .= $arr[rand(0,count($arr)-1)];
    11 }
    12 $_SESSION['check_pic'] = $rand;
    13 //生成图片
    14 $im = imagecreatetruecolor(100,30);
    15 
    16 //生成颜色,当第一次调用生成颜色的方法,是生成背景颜色(三原色)
    17 $bg = imagecolorallocate($im,0,0,0);
    18 
    19 //第二次调用这个方法,是可以生成图片上面的文字或其他样式的颜色(三原色)
    20 $te = imagecolorallocate($im,255,255,255);
    21 
    22 //在图片上面生成文字
    23 //rand(1,5):随机5种字体1-5
    24 //rand(3,70):随机文字出现的X轴坐标
    25 //rand(3,15):随机文字出现的Y轴坐标
    26 //$rand:随机出现的字
    27 //$te:采用字体颜色
    28 imagestring($im,rand(1,5),rand(3,70),rand(3,15),$rand,$te);
    29 
    30 //要把php当成图片输出,必须给文件一个头申明,jpeg
    31 header("Content-type:image/jpeg");
    32 
    33 //最终生成图片
    34 imagejpeg($im);
    35 
    36 ?>

    通常,验证码是需要验证的:

    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
    </head>
    <body>
    
    <?php
    session_start();
    if(isset($_POST['check'])){
        if($_POST['check'] == $_SESSION['check_pic']){
            echo "验证成功";
        }else{
            echo "验证失败";
        }
    }
    ?>
    
    <form action="check2.php" method="post">
        <input type="text" name="check"/>
        <img src="check1.php" alt="" onclick="refreshImg()" id="chk" style="cursor: pointer"/>
        <br/>
    
        <input type="submit" value="提交"/>
    </form>
    <script>
    function refreshImg(){
    //    声明一个rand,是为了防止除谷歌以外的不兼容刷新问题
        var rand = Math.round(Math.random()*10000);
        var chk = document.getElementById("chk");
        chk.src = "check1.php?num="+rand;
    }
    </script>
    </body>
    </html>

    随机一个有数字和字母的字符串:

     1 $Arr = array(
     2 'q','w','e','r','t','y','u','i','o','p','a','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m',
     3 '1','2','3','4','5','6','7','8','9','0'
     4 );
     5 $rand="";
     6 
     7 for($i=1;$i<=4;$i++){
     8 $rand.= $Arr[rand(0,count($Arr)-1)];
     9 }
    10 echo $rand;
  • 相关阅读:
    js控制滚动条滑动
    js二维码插件总结
    wer
    验证插件——jquery.validate.js
    .py小程序总结
    Linux中xargs命令的使用
    Cacti、解决cacti的snmp error
    Cacti安装使用
    用Python发一个高逼格的朋友圈
    windows安装zabbix-agent
  • 原文地址:https://www.cnblogs.com/a-moemiss/p/3726838.html
Copyright © 2011-2022 走看看