下面是“PHP验证码函数代码(简单实用)”的详细攻略,包括如何使用和代码解析。
标题
标签
php, 验证码, 函数
简介
本文将介绍一种简单实用的 PHP 验证码函数代码,旨在帮助 PHP 开发者快速生成验证码图片,并进行表单验证。
代码实现
下面是 PHP 验证码函数的完整代码实现:
<?php
session_start();
//生成验证码
function GetVerCode($num=4,$pix=0){
$width = $num * 16;
$height = 26;
$img = imagecreatetruecolor($width, $height);
//设置背景色
$bg = imagecolorallocate($img, rand(200, 255), rand(200, 255), rand(200, 255));
imagefill($img, 0, 0, $bg);
//极细的纹理背景
for($i=0;$i<$pix;$i++){
$x = rand(0, $width);
$y = rand(0, $height);
$color = imagecolorallocate($img, rand(0,50), rand(0,50), rand(0,50));
imagesetpixel($img, $x, $y, $color);
}
$code = '';
for ($i = 0; $i < $num; $i++) {
$font = imageloadfont('fonts/pnhei.ttf'); //字体文件
$size = 16;
$angle = rand(-15, 15); //角度
$x = 4 + $i * 16;
$y = rand(6, 12);
$color = imagecolorallocate($img, rand(50, 200), rand(50, 128), rand(50, 200));
$char = rand(0, 9);
imagestring($img, $font, $x, $y, $char, $color);
$code .= $char;
}
$_SESSION['vercode'] = $code;
header('Content-Type: image/jpeg');
imagejpeg($img);
imagedestroy($img);
}
//检查验证码
function CheckVerCode($vercode){
if(strcasecmp($_SESSION['vercode'],$vercode)==0){
return true;
}else{
return false;
}
}
//使用示例
GetVerCode();//生成并输出验证码
if(CheckVerCode($_POST['vercode'])){
echo '验证通过!';
}else{
echo '验证失败!';
}
代码解析
该 PHP 验证码函数主要分为两个部分:
- 生成验证码图片部分
- 检查验证码部分
生成验证码图片部分
- 设置验证码图片的宽度、高度和背景色。
php
$width = $num * 16;
$height = 26;
$img = imagecreatetruecolor($width, $height);
$bg = imagecolorallocate($img, rand(200, 255), rand(200, 255), rand(200, 255));
imagefill($img, 0, 0, $bg);
- 设置极细的纹理背景。
php
for($i=0;$i<$pix;$i++){
$x = rand(0, $width);
$y = rand(0, $height);
$color = imagecolorallocate($img, rand(0,50), rand(0,50), rand(0,50));
imagesetpixel($img, $x, $y, $color);
}
- 生成验证码字符串,并将验证码字符串存入 SESSION 中。
``` php
$code = '';
for ($i = 0; $i < $num; $i++) {
$font = imageloadfont('fonts/pnhei.ttf'); //字体文件
$size = 16;
$angle = rand(-15, 15); //角度
$x = 4 + $i * 16;
$y = rand(6, 12);
$color = imagecolorallocate($img, rand(50, 200), rand(50, 128), rand(50, 200));
$char = rand(0, 9);
imagestring($img, $font, $x, $y, $char, $color);
$code .= $char;
}
$_SESSION['vercode'] = $code;
```
- 输出验证码图片。
php
header('Content-Type: image/jpeg');
imagejpeg($img);
imagedestroy($img);
检查验证码部分
通过比较用户输入的验证码和 SESSION 中存储的验证码,判断验证码是否正确。
function CheckVerCode($vercode){
if(strcasecmp($_SESSION['vercode'],$vercode)==0){
return true;
}else{
return false;
}
}
示例说明1
以下是一个示例,调用 GetVerCode 函数生成一个4位验证码图片。
<?php
session_start();
if(isset($_GET['v']) && $_GET['v']=='code'){
include 'GetVerCode.php';
GetVerCode();//生成验证码图片
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>验证码示例1</title>
</head>
<body>
<img src="GetVerCode.php?v=code" alt="验证码">
</body>
</html>
示例说明2
以下是一个示例,调用 CheckVerCode 函数检查它前面示例中生成的验证码是否正确。
<?php
session_start();
if(CheckVerCode($_POST['vercode'])){
echo '验证通过!';
}else{
echo '验证失败!';
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>验证码示例2</title>
</head>
<body>
<form action="" method="post">
<label>验证码:</label>
<input type="text" name="vercode" maxlength="4">
<input type="submit" value="提交">
</form>
</body>
</html>
结论
通过阅读本文,读者可以了解到如何使用该 PHP 验证码函数代码,并了解了其生成验证码图片和检查验证码的流程。同时,该代码具有普通、简单、易懂、易于维护等优点,适用于 PHP 开发者生成验证码图片。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP验证码函数代码(简单实用) - Python技术站