• php 验证码


        我们在实际开发中,会用到短信验证码以及网页验证码,相对来说网页验证码的成本比较低,安全系数也还可以,接下来我们就来做一个网页端的验证码,直接上代码:

    首先来说一下文件目录结构:

        |----------phpyanzheng  项目文件夹

          |----fonttype 文件夹放字体文件,字体文件一般以 .ttf和.otf结尾

          |----1.php  里面放php语言代码

          |----index.html  里面放网页布局

    1.php

     1 <?php
     2     header('content-type:image/jpeg');//定义一下代码以jpeg文件来解析
     3     $width = 120;//定义了图像的宽
     4     $height = 40;//定义了图像的高
     5     $element = array('q','w','e','r','t','y','u','i','o','p','l','k','j','h','g','f','d','s','a','z','x',
     6     'c','v','b','n','m','1','2','3','4','5','6','7','8','9','0','Q','W','E','R','T','Y','U','I','O','P','A'
     7     ,'S','D','F','G','H','J','K','L','M','N','B','V','C','X','Z');//定义一个显示文本的数组
     8     $string = '';
     9     for($i=0;$i<4;$i++){
    10         $string.=$element[rand(0,count($element)-1)];//随机产生四个文本目标
    11     }
    12     $img = imagecreatetruecolor($width, $height);//设置验证区宽高
    13     $colorBg = imagecolorallocate($img,rand(185,255),rand(185,255),rand(185,255));//产生200-255的随机数
    14     $colorBorder = imagecolorallocate($img,rand(50,100),rand(50,100),rand(50,100));//边框颜色
    15     $colorDian = imagecolorallocate($img,rand(0,100),rand(0,100),rand(0,100));//背景小点的颜色
    16     $colorLine = imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255));
    17     $colorString = imagecolorallocate($img,rand(20,80),rand(20,80),rand(20,80));
    18     imagefill($img, 0, 0, $colorBg);//设置位置和背景颜色
    19     imagerectangle($img,0,0,$width-1,$height-1,$colorBorder);//画一个边框
    20     for($i=0;$i<200;$i++){//循环出200个干扰点
    21         imagesetpixel($img, rand(0, $width-1), rand(0, $height-1), $colorDian);
    22     }
    23     for($i=0;$i<round(5);$i++){//循环出5条干扰线
    24         imageline($img,rand(0,$width/2),rand(0,$height/2),rand($width/2,$width),rand($height/2,$height),$colorLine);
    25     }
    26     //imagestring($img, 4, 0, 0,'a5dg', $colorString);
    27     
    28     imagettftext($img,25,rand(5, 15),rand(0,40),39,$colorString,'fonttype/PrincetownStd.otf',$string);
    29     //        图像名称    字体大小 倾斜角度 起始位置X轴 起始位置Y轴 颜色 字体位置 显示的内容
    30     imagejpeg($img);//输出图像
    31 ?>

    index.html

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="UTF-8">
     5         <title>孙三峰--验证码</title>
     6         <script type="text/javascript" src="js/jquery-1.1.0.js" ></script>
     7     </head>
     8     <body>
     9         <!--注意:原文中对应的ip地址是自己电脑端ip,如果不能正常运行,请修改ip-->
    10         <p>
    11             <label class="lbright">验证码:</label>  
    12             <span>  
    13                 <input type="text" name="validcode" style="70px; vertical-align:middle;" id="validcode"/>  
    14                 <img id="codePic" src="http://192.168.1.113:8601/PHP/phpyanzheng/1.php" width="120" height="40"/>                   
    15             </span>                 
    16             <span id="codePic" onclick="getPic();">看不清楚,换一张</span>  <!---->
    17         </p>          
    18     </body>
    19     <script type="text/javascript">  
    20          function getPic(){  
    21                   $("#codePic").attr("src","http://192.168.1.113:8601/PHP/phpyanzheng/1.php?flag="+Math.random());  <!--局部刷新--> 
    22           };  
    23     </script>
    24 </html>
  • 相关阅读:
    面试题目
    MyEclipse 启动 tomcat时错误处理
    js 剪贴板操作
    PHP面试题
    MySQL 数据库 source 导入乱码
    php 不用通过表单也能创建HTTPpost请求
    一个css中zindex的用法
    最新黑链代码expression:隐藏链接代码
    测试网站访问速度的几个小方法
    优秀开源外贸网店程序一览
  • 原文地址:https://www.cnblogs.com/sunsanfeng/p/yanzheng.html
Copyright © 2020-2023  润新知