【发布时间】:2017-05-14 13:40:56
【问题描述】:
我有这个简单的 php 代码,它生成一个随机代码并将其显示给用户。如果用户插入显示的代码(如验证码),我需要使用文本输入进行验证,但我将使用此脚本在验证后将用户重定向到注册表单页面。代码已生成,但我无法验证,可能是我遗漏了代码中的某些内容?
注意:这不是垃圾邮件预防系统。正如 cmets 中所说,有比这更好的有效解决方案来防止垃圾邮件。这是用户邀请系统的初稿,如果您想对该问题投反对票,请考虑这一点。
<?php
function randomCode() {
$code_variable = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz0123456789";
srand((double)microtime() * 1000000);
$i = 0;
$rand_Code = '';
while ($i <= 7)
{
$num = rand() % 33;
$tmp = substr($code_variable, $num, 1);
$rand_Code = $rand_Code . $tmp;
$i++;
}
return $rand_Code;
}
$code = randomCode();
if(isset ($_POST['verify'])){
if($_POST['user_code'] == $code ){
echo 'Valid code.';
header('Location: index.php');
}
}
?>
<form method="post" action="">
<input type="text" name="verification_code" disabled value="<? echo $code;?>">
<input type="text" name="user_code">
<button type="submit" name="verify">Verify code</button>
</form>
【问题讨论】:
-
我希望这不是为了进入一个实时站点,因为它更糟糕比作为一种安全机制无用
-
页面生命周期有点混乱
-
我想在网站上使用它只是为了保护注册表单,这只是我现在拥有的初稿。 @RiggsFolly 页面生命周期是什么意思?
-
要点:如果您将
code发送到浏览器,那么任何人都可以看到它。使用表单或嗅探连接。作为一种安全机制,这完全是一场灾难。我是否建议您在考虑推出自己的安全功能时采取很好的案例,制作一个完整的 SNAFU 是最简单的事情 -
@RiggsFolly 我将努力添加将代码邮寄给用户的功能,以便他们插入并查看注册表单页面..
标签: php xml forms validation