PHP verification code generation principle and implementation, PHP verification code principle_PHP tutorial

WBOY
Release: 2016-07-12 09:00:06
Original
1091 people have browsed it

PHP verification code generation principle and implementation, PHP verification code principle

Verification codes are implemented more and more in forms, but verification codes written in js always feel unsatisfactory It’s convenient, so I learned the verification code implemented in PHP. Well, I actually had nothing to do, but I didn’t want to waste time, so I learned how to implement verification codes in PHP. As the saying goes, having too many skills does not weigh you down. Moreover, it can also be encapsulated into a function, which is very convenient for future use. Of course, it is not encapsulated now.

First of all, here is a rendering:

Since registration codes are often used when registering to prevent malicious registration by machines, here I publish a basic image that generates a png image verification code. It is very simple but the idea is very clear:

1. Generate a png picture
2. Set the background color for the picture
3. Set font color and style
4. Generate a 4-digit random verification code
5. Adjust the rotation angle and position of each generated character and draw it on the png image
6. Add noise and interference lines to prevent the registration machine from analyzing the original image for malicious registration
7. Output pictures
8. Release the memory occupied by the picture

authcode.php file

Code

<&#63;php
session_start ();
header ( 'Content-type: image/png' );
//创建图片
$im = imagecreate($x=130,$y=45 );
$bg = imagecolorallocate($im,rand(50,200),rand(0,155),rand(0,155)); //第一次对 imagecolorallocate() 的调用会给基于调色板的图像填充背景色
$fontColor = imageColorAllocate ( $im, 255, 255, 255 ); //字体颜色
$fontstyle = 'rock.ttf'; //字体样式,这个可以从c:\windows\Fonts\文件夹下找到,我把它放到和authcode.php文件同一个目录,这里可以替换其他的字体样式
//产生随机字符
for($i = 0; $i < 4; $i ++) {
$randAsciiNumArray = array (rand(48,57),rand(65,90));
$randAsciiNum = $randAsciiNumArray [rand ( 0, 1 )];
$randStr = chr ( $randAsciiNum );
imagettftext($im,30,rand(0,20)-rand(0,25),5+$i*30,rand(30,35),$fontColor,$fontstyle,$randStr);
$authcode .= $randStr; 
}
$_SESSION['authcode'] = $randFourStr;//用户和用户输入的验证码做比较
//干扰线
for ($i=0;$i<8;$i++){
$lineColor = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imageline ($im,rand(0,$x),0,rand(0,$x),$y,$lineColor);
}
//干扰点
for ($i=0;$i<250;$i++){
imagesetpixel($im,rand(0,$x),rand(0,$y),$fontColor);
}
imagepng($im);
imagedestroy($im); 
&#63;>
Copy after login

The above is relevant knowledge about the principle and implementation of PHP verification code generation. I hope it will be helpful to everyone.

Articles you may be interested in:

  • A beautiful PHP verification code class (share)
  • When PHP generates the verification code, "the image cannot be displayed because it has errors" Solution
  • A summary of several ways to generate graphical verification codes in PHP
  • A useful PHP verification code class example sharing
  • ThinkPHP verification code usage concise tutorial
  • Solution to the problem that thinkphp verification code cannot be displayed
  • PHP generates image verification code and clicks to switch instances
  • PHP uses CURL to simulate login to a website with verification code

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1095278.htmlTechArticlePHP verification code generation principle and implementation, PHP verification code principle Verification codes are implemented more and more in forms, but I always find it inconvenient to write verification codes in js, so I learned how to implement them in php...
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template