php 中的图像验证码

2024-03-24

下面是一个程序的源代码。谁能帮我弄清楚程序的工作原理。

<?php
session_start();
?>
<?php
  $aCaptcha = array (
        array(),
        array('crocodile'),
        array('panda', 'panda bear', 'giant panda'),
        array('pig'),
        array('tiger'),
        array('zebra'),
        array('cow'),
        array('elephant')
    );

if (isset($_POST['register'])) {
    $error = array();
        if (!in_array(strtolower($_POST['captcha']), $aCaptcha[$_SESSION['captcha']])) {
        $error['captcha'] = "<span style='color:red'>The name of the animal is not correct.</span>";
    }
    if (count($error) == 0) {
                    echo "<span style='color:red'>Thank you for completing the form.
We shall contact you soon.</span>";
        die();
    }
}
?>
<form action="index.php" method="post">
    <?php
            $_SESSION['captcha'] = rand(1, 7);
    ?>  
<td colspan="3"><strong>Contact Form</strong></td>

             <p>Full Name :                   <input type="text" name="Nmaes" value='' />
<p>Mobile No. :                   <input type="text" name="Nmaes" value='' />
             <p>Email id :                   <input type="text" name="Nmaes" value='' />
             <p>Subject :                   <input type="text" name="Nmaes" value='' />
 <p>Message :                   <input type="text" name="Nmaes" value='' />
    <p><img src="<?php echo $path;?>captcha/<?php echo $_SESSION['captcha'];?>.jpg" /></p>
    <p>Type the name of the animal you see in the picture above. <input type="text" name="captcha" value='' />
    <?php echo(isset($error['captcha']))?$error['captcha']:"";?></p>
    <p><label>&nbsp;</label><input type='submit' name='register' value='register' /></p>
</form>

在第一页

  1. 生成 1 到 7 之间的随机数并将其存储在会话中
  2. 显示表格
  3. 根据随机数显示captcha目录下的图片

在第二页

  1. 生成具有可接受答案的数组 - 键是数字 1 和 7,值是可接受答案的数组
  2. 下面的代码检查用户给出的答案$_POST['captcha']是可接受的答案之一$aCaptcha[$_SESSION['captcha']]

    if (!in_array(strtolower($_POST['captcha']), $aCaptcha[$_SESSION['captcha']])) {
    $error['captcha'] = "<span style='color:red'>The name of the animal is not correct.</span>";
    
  3. 如果可接受,则打印一条消息并且 PHP 停止执行

    echo "<span style='color:red'>Thank you for completing the form. We shall contact you soon.</span>";
    die();
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php 中的图像验证码 的相关文章

  • 是否可以使用流上下文在 PHP 下使用 FTPS?

    我了解到使用ftpsPHP for Windows 下的 ftp ssl connect 很困难 您被要求进入构建自己的二进制文件以包括 Open SSL 的漫长旅程 我找到了以下建议phpseclib http phpseclib sou
  • preg_match 所有以@开头的单词?

    我对正则表达式不太确定 所以我不得不问你 如何用 PHP 判断字符串中是否包含以 开头的单词 例如我有一个像 This is for codeworxx 这样的字符串 我很抱歉 但我没有任何起点 希望你能帮忙 谢谢 萨沙 好的 谢谢你的结果
  • 合并 csv 文件 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何在 PHP 或 joomla 中将多个 CSV 文件合并为一个 csv 文件 将文件夹中 csv 文件中的所有数据合并到文本文件中 通
  • 一些基本的 PHP 问题 [已关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我只是有一些基本的 php 问题来加深我对学习的理解 但我找不到简单的答案 我有一个 php ajax 应用程序 它生成 mysql
  • 如何通过 PDO 使用密码哈希来使我的代码更安全? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我的代码实际上可以工作 但它一点也不安全 我不想使用 MD5 因为它不是那么安全 我一直在查找密码哈希 但我不确定如何将其合并到我的代
  • PHP 和 DOM 文档

    我有一个关于 DOMDocument 的使用和创建 XML 的问题 我有一个 PHP 程序 加载到 XML 文件中 处理XML的每个节点 行 将其发送到另一个进程 然后该进程返回一个 XML 元素 我获取节点的字符串表示形式 以便可以创建
  • MySQL 最佳实践:SELECT 子递归尽可能提高性能?

    我想选择一个根项目及其子项 使其性能尽可能高 我更喜欢使用嵌套集模型 但这次表结构遵循邻接模型 有关嵌套集和邻接模型的更多信息 http mikehillyer com articles managing hierarchical data
  • 由于重复捕获组而不是捕获重复组,正则表达式不匹配

    我有以下正则表达式 A G A G 具有以下表达式 A BsCb 我期望 3 个匹配结果 A Bs Cb 但测试在https regex101 com https regex101 com 只给我最后一场比赛Cb 并告诉我重复捕获组只会捕获
  • 匹配括号内任何字符的正则表达式

    尝试创建一个与括号内的任何字符匹配的正则表达式 我的正则表达式模式是这样的 preg match listanswer answer 括号内的所有字符串都是匹配模式 但问题是 当我尝试匹配例如 this word sample data 它
  • 如何使用 PHP 查找目录中的前 5 个文件?

    如何使用 PHP 列出按字母顺序排序的目录中的前 5 个文件或目录 Using scandir array slice array filter scandir path to dir is file 0 5 The array filte
  • PHP:在多维数组中查找相同的键并合并结果

    我有一个多维数组 如下所示 array 0 gt array WS gt array id gt 2 name gt hello 1 gt array SS gt array id gt 1 name gt hello2 2 gt arra
  • Laravel 5.6 - 注册表无法正常工作并且不显示任何错误

    在我最近的一个项目中 定制登记表不管用 当我单击注册按钮时 它会重新加载注册表单 不会打印任何错误 并且不会将数据插入数据库中 这是注册表的外观 这里是移民文件代码 public function up Schema create user
  • 返回上一页

    我正在使用表格来 评价 页面 此表单将数据 发布 到其他地方的 php 脚本 我只是想在处理表单后显示一个链接 这将使用户返回到上一页 我可以在 php 脚本中使用 javascript 来执行此操作吗 GF 您可以使用链接来调用histo
  • 计算轮班工作时间并检测

    我有个问题 我的英语很差 我需要用PHP做一个加班计算 已经有一个代码可以实现这一点 但当工作时间超过2天时 计算就会出错 工作开始 2018 09 09 13 43 工作结束 2018 09 11 07 13 结果 07 18 04 00
  • 将单独的月、日和年值转换为时间戳

    我有月份值 1 12 日期值 1 31 和年份值 2010 2011 2012 我还有一个小时值和一个分钟值 我怎样才能把这个给strtotime 它可以以某种方式将其转换为时间戳吗 当您已经知道年月和日期时 为什么将字符串转换为日期 us
  • 将价格格式设置为逗号分隔

    在我的数据库中 我有类似的值 256 23 200 33 89 33 133 45 我必须将这些值乘以千 然后将结果格式化为价格 逗号分隔 256 23 x 1000 256230 I want to show this as 256 23
  • 如果文件名减去扩展名,.htaccess url 重写行为将被覆盖。与网址相同

    我正在尝试整理 URL 并从中删除 php 扩展名等 我位于网站的基本文件夹中 因此没有可以优先处理的父 htaccess 文件或其他文件 这是我的 htaccess 代码 RewriteEngine On RewriteRule give
  • 如何在php中关闭夏令时

    我有这行代码将夏令时设置为 打开 将其设置为 关闭 的正确方法是什么 is daylight saving On rcmail config dst active bool date I date I 这是一个大写字母 i 当当前默认时区
  • PHPunit - 错误

    当 PHPunit 框架不希望发生的错误发生时 测试会停止 PHP 会抛出错误 但 PHPunit 不会记录这是一个错误 我如何确保 PHPunit 将其记录为错误 免责声明 我是 PHPUnit 的新手 我也试图弄清楚 发生错误时会发生什
  • Magento 中的子域 htaccess 问题

    public html www domain com public html subdomain subdomain domain com public html htaccess public html subdomain htacces

随机推荐

  • Kendo 网格中的列线不同步

    我的剑道网格有太多列 最初我选择隐藏一些列 但后来我决定用水平滚动条显示所有列 我通过为每列分配宽度来做到这一点 当我这样做时 每列之间的行与标题行不同步 我的意思是 网格数据部分中的行相对于标题行稍微向左移动 为了澄清 当我给出每列的宽度
  • NHibernate 没有外键的映射集合

    我有一个名为WorkingDays 的课程 该课程需要一组日期 这些日期是银行假日的日期 在我们的数据库中 我们有一个包含这些日期的表 我希望 nhibernate 获取所有这些日期并填充bankHolidays 集合 然而 问题是我没有一
  • 如何检查文件是否是图像?

    我可以检查某个文件是否是图像吗 在 PHP 中如何做到这一点 如果文件不是图像 我想发出警报消息 此外getimagesize http www php net manual en function getimagesize php 您可以
  • 具有多个主类的 Gradle 应用程序插件

    我正在使用 gradle application 插件来启动我的应用程序 这效果很好 现在我想添加在同一项目中启动不同主类的选项 我可以更改插件的配置以允许这样做吗 apply plugin application mainClassNam
  • 当尝试设置从 MySQL 返回的布尔值时,Dapper 抛出无效的强制转换异常

    我有这门课 public class User public int UserId get set public string UserName get set public bool IsValidated get set 我使用 dap
  • WooCommerce:当客户离开然后回来时如何保留结账信息?

    有没有一种简单的方法或插件可以保留客户离开和回来后输入的结账信息 这个插件 https ur wordpress org plugins woocommerce checkout manager 保留 客户来回导航时的字段信息 但是它最近有
  • 如何在 Postgres 中运行通过 pgagent 创建的作业

    使用 pgagent 创建了一个作业 它已成功创建 但无法检查其状态是否正在运行 它都没有执行我在步骤中给出的指定代码 使用的版本 x86 64 pc linux gnu 上的 PostgreSQL 9 6 2 由 gcc GCC 4 4
  • python在加载模块时捕获NameError

    我试图捕获无法加载模块时发生的任何异常 当前的结果是 except 块没有被执行 import sys def loadModule module try import module except print Cannot load s F
  • 如何在DBeaver中使用sqlcmd GO批量分隔符?

    我需要使用GO1 https learn microsoft com en us sql t sql language elements sql server utilities statements goDBeaver IDE 中的熟食器
  • 获取属于任意类型的单元名称(TRttiType)

    我需要获取任何单元的名称 命名空间 TRttiType http docwiki embarcadero com CodeSamples en Category 3aRtti TRttiType 到目前为止 我已经尝试了以下方法 1 使用P
  • iTunes Connect 预发布版本无效。

    当尝试提交应用程序存档时 我在 Xcode 中收到以下错误 错误 ITMS 9000 预发布列车无效 列车版本 2 1 5 已关闭以提交新版本 有人有解决方案吗 该版本已经等待审核 我拒绝了它 现在正在尝试提交新版本 版本号相同 但我增加了
  • 覆盖 Primefaces 特定小部件的方法

    我想覆盖 Primefaces 数据表组件的函数 根据这个问题 如何在基于 widgetVar 的 Primefaces 组件中查找和 或覆盖 JavaScript https stackoverflow com questions 275
  • 如何强制内联div保持在同一行?

    我正在尝试制作三列布局 我希望左列和右列的宽度仅与其子项内容一样宽 我希望中心柱能够扩大以填充剩余空间 我正在尝试以下操作 概述 下面包含 jsfiddle 链接 colLeft display inline float left colC
  • 在 .NET 异常中保留原始 StackTrace/LineNumbers

    了解之间的区别throw ex and throw 为什么在这个例子中保留了原来的StackTrace static void Main string args try LongFaultyMethod catch System Excep
  • Windows Phone 应用程序缺少 EventToCommand

    我正在使用 MVVM Light 构建 Windows Phone 8 应用程序 到目前为止 一切都很好 但是 当我使用 EventToCommand 时 出现多个错误 一个类似的问题在这里迁移到 SL5 的 v4 时 EventToCom
  • 为什么 C++ 中不允许初始化整型成员变量(不是 const static)?

    当我尝试在类定义中初始化 int 成员变量时 我的 C 编译器会抱怨 它告诉我们 只有静态常量整型数据成员才能在类中初始化 您能否解释一下此限制背后的理由 如果可能的话 举例说明 因为目前的标准是不允许的 根据比亚恩的说法 http www
  • WP7 在地图上拖动图钉

    有谁知道如何在运行 Mango 的 WP7 客户端上的地图上实现可拖动图钉 我有一个图钉绑定到地图上的地理位置 我希望用户能够将其拖动到地图上并记录其新位置 我见过一些资源 但它们用于非 WP7 Bing 地图控制 任何帮助 将不胜感激 T
  • 如何使用 Asset Pipeline 从非标准目录传送字体

    我正在尝试将 Fontawesome 包含在 Rails 4 应用程序中 但资产并未进入资产管道 然而 这些字体并没有在生产中使用 我不明白为什么 文件结构组织 我所有的资产都存储在 assets components因此 Fontawes
  • Node.js 公牛队列中的作业陷入“等待”状态

    我有一堆工作在公牛队列中 其中一个被卡住了 1 个多小时 通常需要大约 2 分钟才能运行 但没有失败 我无法使用我使用的 bull arena UI 将作业从活动状态中删除 因此我删除了 Redis 中活动作业的密钥 这消除了卡住的活动作业
  • php 中的图像验证码

    下面是一个程序的源代码 谁能帮我弄清楚程序的工作原理