Home  >  Article  >  Backend Development  >  How to integrate verification code verification function in PHP form

How to integrate verification code verification function in PHP form

WBOY
WBOYOriginal
2023-06-24 08:32:351617browse

With the rapid development of the Internet, website user registration and login have become essential functions. However, in order to protect the security of users' accounts, we must take some measures to prevent malicious attacks and cracking behaviors. Among them, the verification code verification function is a common measure to prevent robots and web crawlers.

Integrating the verification code verification function in the PHP form can effectively prevent robots and malicious attacks and improve the security of the website. Below, we will introduce how to integrate the verification code verification function in the PHP form:

Step 1: Generate verification code

First, we need to generate the verification code and save it on the server side so that Subsequent verification. You can use PHP's GD library to generate verification code images.

The specific implementation code is as follows:

session_start(); // 开启会话

$length = 4; // 验证码长度
$width = 80; // 验证码宽度
$height = 30; // 验证码高度

$chars = 'abcdefghjklmnpqrstuvwxyz123456789'; // 验证码字符集合
$chars_length = strlen($chars);

$code = '';
for ($i = 0; $i < $length; $i++) {
  $code .= $chars[mt_rand(0, $chars_length - 1)];
}

$_SESSION['code'] = md5($code); // 将验证码保存到会话中

$image = imagecreatetruecolor($width, $height); // 创建画布
$background_color = imagecolorallocate($image, 255, 255, 255); // 设置背景颜色
imagefill($image, 0, 0, $background_color);

$fonts = ['arial.ttf', 'arialbd.ttf', 'ariali.ttf', 'arialbi.ttf']; // 设置字体集合
$font_colors = [
  imagecolorallocate($image, 55, 154, 196),
  imagecolorallocate($image, 250, 89, 84),
  imagecolorallocate($image, 200, 138, 45),
  imagecolorallocate($image, 82, 184, 76)
]; // 设置字体颜色集合

for ($i = 0; $i < $length; $i++) {
  $font = $fonts[mt_rand(0, count($fonts) - 1)];
  $font_color = $font_colors[mt_rand(0, count($font_colors) - 1)];
  imagettftext($image, 18, mt_rand(-30, 30), $width / $length * $i + mt_rand(0, 10), $height / 2 + mt_rand(-5, 5), $font_color, $font, $code[$i]);
}

header('Content-type: image/png'); // 设置验证码图片类型为png
imagepng($image); // 输出验证码图片
imagedestroy($image); // 释放内存

Use the above code to generate a verification code image with a length of 4 and save it to the session.

Step 2: Display the verification code

After generating the verification code, we need to display the verification code in the form and let the user enter the verification code. The specific implementation can display the verification code by adding an image tag to the HTML form.

The specific implementation code is as follows:

<img src="captcha.php" alt="验证码">
<input type="text" name="captcha" required>

In this example, a text box named "captcha" is used to receive the verification code entered by the user and set it as a required item.

Step 3: Verify the verification code

After the user submits the form, we need to use PHP code to verify whether the verification code entered by the user is correct. The specific implementation can determine whether the verification code is correct by reading the verification code saved in the session and comparing it with the verification code entered by the user.

The specific implementation code is as follows:

session_start(); // 开启会话

if ($_SESSION['code'] != md5($_POST['captcha'])) {
  echo '验证码错误';
  exit;
}

In the above code, first determine whether the verification code saved in the session is the same as the verification code entered by the user. If they are not the same, output "Verification Code Error" and exit the program.

Through the above three steps, we have successfully integrated the verification code verification function, thus improving the security of the website.

Summary

Integrating the verification code verification function in PHP forms can effectively prevent robots and malicious attacks and improve the security of the website. This article describes how to generate a verification code image through PHP and save it to the session; how to display the verification code in an HTML form; and how to use PHP code to verify that the verification code entered by the user is correct. In actual projects, developers can improve the above code according to specific needs to achieve a more secure and efficient verification code verification function.

The above is the detailed content of How to integrate verification code verification function in PHP form. 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