Php 需要一些帮助来添加一些验证码联系人表单吗
嗨,我是新来PHP的,我想要一些帮助。 我已经创建了一个联系人表单,我想添加一些验证码。我已经创建了一些gif图像,其中的数字添加了一些噪声,并将no1命名为code_01.gif,no2命名为code_02.gif等。我已经将其中一些图像静态地放在我的表单上,用于如下显示目的: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
<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
不对齐$n1
+$n2
?”$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”之后的两个数字,您可以只使用数字图像,而不是纯文本中的数字。然后你可以找到其他的方法,这样这个过程就会继续下去。。