Php 如何验证此值?
在文本框中输入两个数字的总值以防止垃圾邮件Php 如何验证此值?,php,Php,在文本框中输入两个数字的总值以防止垃圾邮件 <?php $rand = rand(2,9); $rand1 = rand(2,9); echo $rand." + ".$rand1; ?> <span class="stred">*</span> </label> </td> <td> <div cl
<?php
$rand = rand(2,9);
$rand1 = rand(2,9);
echo $rand." + ".$rand1;
?>
<span class="stred">*</span>
</label>
</td>
<td>
<div class="input-container">
<input name="randm" class="intext" id="county" type="text" />
</div>
*
如何在POST方法中验证这两个的值???代码中没有要验证的内容。您无法比较收到的值,因为您没有保留原件。您在显示的代码段中丢弃了
$rand
和$rand1
您需要将它们保留在会话中(不要忘了在会话开始之前使用session\u start()
),如下所示:
然后,您可以在收到表单时执行此操作:
if (strlen($_POST["randm"]) && ($_POST["randm"] == $_SESSION["rand"])) {
$_SESSION["rand"] = ""; // unset afterwards to prevent replays
我会用验证码来代替。对于数学问题,您仍然需要显示用户要解决的等式,这为垃圾邮件发送者编写脚本解析HTML中的操作数、解决数学问题以及提交包含正确答案的POST请求打开了大门。自动化这样的脚本将允许持续滥用表单,这种情况实际上不像人们想象的那样不太可能或难以实现 如果您选择验证码路线,这是一个很好的选择
if (strlen($_POST["randm"]) && ($_POST["randm"] == $_SESSION["rand"])) {
$_SESSION["rand"] = ""; // unset afterwards to prevent replays