Home  >  Article  >  Backend Development  >  Share an example of implementing web page verification code in PHP

Share an example of implementing web page verification code in PHP

零下一度
零下一度Original
2017-07-16 16:53:401537browse

In actual development, we will use SMS Verification code and web page verification code. Relatively speaking, the cost of web page verification code is relatively low, and the security factor is also acceptable. Next we will make one Verification code on the web page, directly enter the code:

First let’s talk about the file Directory structure :

 |----------phpyanzheng Project folder

  |----fonttype folder holds font files, font files generally end with .ttf and .otf

   |----1.php Put PHP language code in it

  |----index.html Put the web page layout inside

1.php

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

index.html


<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>孙三峰--验证码</title>
    <script type="text/javascript" src="js/jquery-1.1.0.js" ></script>
  </head>
  <body>
    <!--注意:原文中对应的ip地址是自己电脑端ip,如果不能正常运行,请修改ip-->
    <p>
      <label class="lbright">验证码:</label> 
      <span> 
        <input type="text" name="validcode" style="width:70px; vertical-align:middle;" id="validcode"/> 
        <img id="codePic" src="http://192.168.1.113:8601/PHP/phpyanzheng/1.php" width="120" height="40"/>          
      </span>         
      <span id="codePic" onclick="getPic();">看不清楚,换一张</span> <!---->
    </p>     
  </body>
  <script type="text/javascript"> 
     function getPic(){ 
         $("#codePic").attr("src","http://192.168.1.113:8601/PHP/phpyanzheng/1.php?flag="+Math.random()); <!--局部刷新--> 
     }; 
  </script>
</html>

The above is the detailed content of Share an example of implementing web page verification code in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn