当前位置: 首页 > 面试题库 >

PHP电子邮件验证链接的最简单方法

后易安
2023-03-14
问题内容

我的网站(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.
}


 类似资料:
  • 我正在使用AWS Cognito进行电子邮件验证,但我遇到的用户注册问题是,它只发送验证代码,无法自定义电子邮件,因此我可以重定向用户,以便在Cognito上验证其电子邮件。使用。net core 2.1 C#。 到目前为止,我得到的是使用亚马逊提供的SES发送电子邮件验证码。 我想使用电子邮件验证链接验证用户电子邮件。

  • 当我的用户收到“请验证电子邮件链接”时,模板中的链接总是:http://localhost:8280/auth.... 但是在此更改之后,我不能再启动我的Quarkus应用程序,因为我得到以下错误消息:颁发者验证错误:received[https://mylinktomywebsite.com/auth/realms/turniersoftware] 所以我移除了KeyCloak中的这个设置。 可

  • 我在Firebase控制台中设置了一个深层链接,更新了SHA1、SHA256,我尝试从移动浏览器调用深层链接,它完美地打开安装的应用程序,但当我尝试使用从应用程序发送的电子邮件验证链接时,它会转到Play商店。以下是发送验证链接的方式 我的意图过滤器如下所示 我已经将该域名列入了白名单,我重复一下,该链接可以从移动浏览器中获得,但不能从电子邮件中获得。非常感谢您的帮助

  • 如果我打开在桌面浏览器上收到的电子邮件中的链接,则用户的电子邮件被成功验证(标志FirebaseUser.isemailVerificed返回true) 然而,我尝试使用深度链接。因此,如果用户点击移动设备上的链接,将在应用程序中重定向,我有深度链接监听器。我希望当我收到应用程序内的深度链接数据时,isemailverificed标志会立即更新,但事实并非如此)。实际上,即使在按下链接时,也应该进

  • 我正在使用Cognito进行用户管理,除了电子邮件验证过程之外,一切似乎都很好。 我想建立类似于所有其他网站的用户旅程:1)填写用户详细信息的登记表2)接收带有电子邮件验证链接的电子邮件3)通过点击链接验证电子邮件地址 到目前为止,我只能通过让用户手动输入校验码来验证电子邮件。这有点不寻常。一些用户发现点击链接更容易。 在“消息定制”页面上,可以使用“链接”进行消息验证。但它正在使用“亚马逊认知域

  • 我正在提示我的应用程序用户提供电子邮件凭据。 在用户插入电子邮件并通过后,我想验证该帐户。 我正在使用javax。邮政有没有办法验证帐户?只确保凭据确实有效——否则我想显示一个无效用户并传递消息。 也许是某种表演方式: 并在不发送任何内容的情况下检查身份验证异常。