gpt4 book ai didi

php - 创建一种机制来验证电子邮件

转载 作者:IT老高 更新时间:2023-10-28 23:57:13 25 4
gpt4 key购买 nike

我的网站上已经有一个高级用户登录/注册系统 (colemansystems.psm2.co.uk)。但是,我想向新用户发送一封电子邮件,以验证他们的电子邮件地址。如果他们没有点击链接,他们将无法访问他们的帐户。我对PHP和MySQL是半经验,所以请深入解释。

我为 verify.php 文件使用的代码(用户使用 GET 点击的链接(例如,verify.php?d=51773199320 ))

$secret = $_GET['d'];
$result = mysql_query("SELECT valid FROM users WHERE secret=$secret");
while ($row = mysql_fetch_array($result))
{
$valid = $row['valid'];
}
if ($valid == "") {
echo"There seems to be a problem with the verification code.<br><br><br><br><br>";
}
elseif ($valid == "1")
{
echo"Your account is already verified.<br><br><br><br><br>";
}
else
{
mysql_query("UPDATE users SET valid = '1' WHERE secret=$secret");
echo "Thank you, your account is now verified and you are free to use the exclusive features!<br><br><br><br><br><br>";
}

这样安全吗?

最佳答案

最简单的方法是根本不注册未经验证的用户。

向他们询问电子邮件地址并发送电子邮件,其中包含一个用哈希值密封的地址链接。收到此链接后,您可以开始注册过程。

像这样

$secret = "35onoi2=-7#%g03kl";
$email = urlencode($_POST['email']);
$hash = MD5($_POST['email'].$secret);
$link = "http://example.com/register.php?email=$email&hash=$hash";

然后在您的 register.php 中向注册表单添加 2 个隐藏字段 - 电子邮件和散列,存储它们从 GET 接收到的值。

最后,进行注册和审核,

if (md5($_POST['email'].$secret) == $_POST['hash']) {
//Continue registration.
}

关于php - 创建一种机制来验证电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3794959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com