PHP验证码函数代码(简单实用)

yizhihongxing

下面是“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 验证码函数主要分为两个部分:

  1. 生成验证码图片部分
  2. 检查验证码部分

生成验证码图片部分

  1. 设置验证码图片的宽度、高度和背景色。

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);

  1. 设置极细的纹理背景。

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);
}

  1. 生成验证码字符串,并将验证码字符串存入 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;
```

  1. 输出验证码图片。

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技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • 让你成为更出色的PHP开发者的10个技巧

    下面就详细讲解一下“让你成为更出色的PHP开发者的10个技巧”的攻略。 1. 熟练掌握PHP基础知识 PHP开发的基本功是必须要掌握的,包括掌握PHP的语法、流程控制、数据类型、数组等基础知识。只有在基础知识牢固掌握的情况下,我们才能更好地理解和使用PHP,提高自己的开发水平。 2. 熟练使用PHP常用函数和类库 PHP提供了很多常用的函数和类库,例如字符串…

    PHP 2023年5月30日
    00
  • php微信公众号开发模式详解

    PHP微信公众号开发模式详解 前言 微信公众号已经成为了企业与用户互动的重要平台之一,为了满足企业在微信平台上的需求,我们需要了解公众号的开发模式和相关的技术方案,为此本文将从以下方面进行详细介绍: 公众号开发模式介绍 公众号开发环境搭建 公众号开发中常用的技术解析 公众号开发中常见问题与解决方案 公众号开发模式介绍 认证公众号 认证公众号是指已经通过了微信…

    PHP 2023年5月23日
    00
  • 疯狂猜成语 两个心的答案是什么

    下面是针对“疯狂猜成语”中“两个心”的答案攻略: 答案解析 “两个心”的答案是“心心相印”。 答题思路 分析提示词汇,找到关键词“两个心”。 思考与“两个心”相关的成语。 构思成语接龙,注意词性和语法。 验证答案是否符合提示。 示例一 提示: 一口气猜中3个成语,这就是天赋异禀! A. 红日初升 B. 纸上谈兵 C. 两个心 思路及解析: 从A、B的成语接龙…

    PHP 2023年5月26日
    00
  • 总结PHP中数值计算的注意事项

    总结PHP中数值计算的注意事项 PHP是一种脚本语言,常常被用于Web开发。在日常的程序开发中,数值计算是非常常见的操作。在进行数值计算时,我们要注重精度和数据类型的正确使用,来保证计算的准确性。接下来我们就来详细讲解一下“总结PHP中数值计算的注意事项”。 注意事项1:类型转换 在进行数值计算时,类型转换是非常常见的操作,但是不同类型的数据进行计算时需要小…

    PHP 2023年5月27日
    00
  • PHP新手上路(八)

    PHP新手上路(八)攻略 题目简介 本文是《PHP新手上路》系列的第八篇文章,主要介绍PHP常见的读写文件操作。 读文件操作 PHP提供了多种方法读取文件,可通过readfile函数和file_get_contents函数实现。 readfile函数 readfile("file.txt"); readfile函数直接输出文件内容,适合读…

    PHP 2023年5月23日
    00
  • PHP定时执行计划任务的多种方法小结

    PHP 定时执行计划任务的多种方法小结 在 web 开发过程中,有些程序需要在特定的时间执行一些任务,比如在每天凌晨重新生成缓存、导出数据、删除过期数据等。这个时候就需要使用定时执行计划任务的方法来实现。 本文将介绍 PHP 定时执行计划任务的几种方法,并提供示例说明。 1. 使用 Cron Job Cron Job 是一种常用的自动任务管理工具,它可以在指…

    PHP 2023年5月27日
    00
  • PHP回调函数与匿名函数实例详解

    PHP回调函数与匿名函数实例详解 在PHP中,回调函数和匿名函数(闭包)是非常有用的编程概念。回调函数是指在调用函数时作为参数传递给另一个函数的函数,而匿名函数则是在运行时定义的没有指定名称的函数。这两个概念在解决许多编程问题上都非常有用,本文将详细介绍这两个概念的用法。 回调函数 回调函数是将一个函数传递给另一个函数,并将其作为参数使用的函数。这使得代码可…

    PHP 2023年5月25日
    00
  • PHP中基本符号及使用方法

    当介绍PHP编程语言时,候需要了解它的一些基础符号和使用方法。在本篇文章中,我们将详细介绍PHP中基本符号及使用方法的完整攻略,包括变量、字符串、数组等。 变量 在PHP中,变量使用$符号加上变量名称来声明。变量可以存储各种类型的数据,包括整数、浮点数、字符串、布尔值等。变量的值可以在脚本的执行过程中被多次更改。 下面是一个简单的示例,展示如何声明和使用变量…

    PHP 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部