Php 需要一些帮助来添加一些验证码联系人表单吗

Php 需要一些帮助来添加一些验证码联系人表单吗,php,forms,security,captcha,contact,Php,Forms,Security,Captcha,Contact,嗨,我是新来PHP的,我想要一些帮助。 我已经创建了一个联系人表单,我想添加一些验证码。我已经创建了一些gif图像,其中的数字添加了一些噪声,并将no1命名为code_01.gif,no2命名为code_02.gif等。我已经将其中一些图像静态地放在我的表单上,用于如下显示目的: <img src="images/code_01.gif" /> <img src="images/code_07.gif" /> <img src="images/code_01.gif

嗨,我是新来PHP的,我想要一些帮助。 我已经创建了一个联系人表单,我想添加一些验证码。我已经创建了一些gif图像,其中的数字添加了一些噪声,并将no1命名为code_01.gif,no2命名为code_02.gif等。我已经将其中一些图像静态地放在我的表单上,用于如下显示目的:

<img src="images/code_01.gif" />
<img src="images/code_07.gif" />
<img src="images/code_01.gif" />
<img src="images/code_08.gif" />
<img src="images/code_03.gif" />
<img src="images/code_07.gif" />
<input name="captcha" type="text" id="captcha" />

我想添加一些功能,以便每次随机显示图像代码,并检查输入是否与显示的6位数字匹配

任何帮助都将不胜感激。

Simple PHP验证码 这是您将要使用的最简单的验证码脚本之一。虽然它不会模糊文本,但对于许多需要低级验证码解决方案的人来说,它将很好地发挥作用。此脚本几乎不需要安装。唯一的依赖项是PHPGD库

它可以如此简单地使用,但也可以配置:

<?php

session_start();
include("captcha.php");
$_SESSION['captcha'] = captcha();

echo '<img src="' . $_SESSION['captcha']['image_src'] . '" alt="CAPTCHA" />';

?>

演示:您也可以使用:


Securimage是一个开源的免费PHP验证码脚本,用于生成复杂的图像和验证码,以保护表单免受垃圾邮件和滥用。它可以很容易地添加到您网站上的现有表单中,以提供垃圾邮件机器人程序的保护。只要安装了PHP并在PHP中支持GD,它就可以在大多数Web服务器上运行。Securimage完成了从生成验证码图像到验证键入代码的所有工作。对于视力受损的人,可以使用Flash将音频代码流式传输到浏览器。

这是我很久以前发现的一个简单的数学captha类型的东西。
优势:
-没有图像,因此带宽使用率更低。
-没有外部依赖

流程

form.php
中:

  • 选择一个随机数
    $n1
  • 选择另一个随机数
    $n2
  • 使用各种数学运算计算
    $n1
    $n2
    ,并将其存储为
    $result
    ,以便结果数不可指示且与
    $n1+$n2
    不对齐
  • Echo“什么是
    $n1
    +
    $n2
    ?”
  • 要求用户输入步骤4中提出的问题的答案
  • 添加
    $result
    作为表单中的隐藏值
  • 提交时,
    $\u POST
    值由
    check.php
    处理
  • check.php
    中:

  • 如果设置了
    $\u POST[“answer”]
    ,则将其存储在
    $answer
  • 计算
    $answer
    的方式与在
    form.php的步骤3中计算的方式相同
  • 现在,如果
    $answer
    等于
    $\u POST[“result”]
    ,则验证用户是人类
  • 请记住,
    $answer
    是用户提交的答案&
    $result
    是我们对
    $answer
    进行数学运算后的结果

    代码:

    文件:
    form.php

    <?php
    
    $n1 = rand(1,15);
    $n2 = rand(1,15);
    //start making our result unpredictable & non-aligned with hidden value
    $result = $n1+$n2;
    $result = ($result*3)-2;
    $result = ($result+4)*5;
    $question="what is $n1 + $n2?";
    ?>
    <form method="post" action="check.php">
    <?php echo $question.PHP_EOL; ?>
    <input name="answer" type="text"><br />
    <input type="hidden" name="result" value="<?php echo $result; ?>">
    </form>
    
    <?php
    
    if(isset($_POST["answer")){
        $answer = $_POST["answer"];
        // start doing same math on $answer
        $answer = ($answer*3)-2;
        $answer = ($answer+4)*5;
        if($answer == $_POST["result"]{
            // echo Hurray, you are Human..
            // Do anything here.. 
        }else{
            echo "Wrong Answer";
        }
    


    关键在于使编码和解码公式更加困难。因此,查看
    隐藏表单值
    结果
    问题
    的人不应该发现两者之间的关系。

    您搜索过CAPTCHA吗?那么如何创建它们呢?@Lykos22请检查我的答案,看看是否正确?请检查你的答案,因为它充满了错误。我将进行编辑以更正语法错误,但是我不知道这是如何工作的。如果我只是创建一个机器人,从HTML中读取“What is”之后的两个数字并提交它们的总和,会怎么样@DanielSzalay我在回答中强调了简单这个词。这只是一项基本技术。顺便说一句,我没有看到任何语法错误。我将在我的答案中添加一个流程。使开裂更难,然后开裂更难的过程是一个老鼠和猫的游戏。因此,如果您创建一个bot,它从HTML中读取“What is”之后的两个数字,您可以只使用数字图像,而不是纯文本中的数字。然后你可以找到其他的方法,这样这个过程就会继续下去。。