问题描述
当用户通过电子邮件地址订阅我的简报时,使用php,我如何通过电子邮件向他们发送激活链接,以确认它是他们的电子邮件地址,而不是假的。
When a user subscribes to my newsletter via their email address, using php, how would I send them an 'Activation Link' via email to confirm it is their email address and not a fake one.
所以现在我有
PHP:
<?php
$to = "[email protected]";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";
if (mail($to, $subject, $body)) {
echo "<p>Message successfully sent!</p>";
} else {
echo "<p>Message delivery failed...</p>";
}
?>
我想我会将$ body更改为:
I guess i would change the $body to this:
$body = "Please click the link to activate your email \n
http://www.activationlink.com?";
我如何做到这一点,如果用户点击该链接会将其详细信息添加到Mysql数据库识别他们是合法用户?
How would I make it so that if a user clicked that link it would add their details to the Mysql database recognising they are a legitimate subscriber?
任何帮助或建议赞赏。谢谢
Any help or suggestions appreciated. Thanks
推荐答案
我喜欢做的是:
-
在注册过程中生成唯一的随机ID
Generate a unique, random ID in the registration process
将ID与电子邮件地址一起存储,已确认字段(默认值:否)和数据库表中的任何其他数据
Store the ID along with the E-Mail address, a "confirmed" field (default: "no") and any additional data in a database table
发送电子邮件带有指向要激活唯一ID的URL (例如 domain.com/activate.php?id=102939505595
Send out the E-Mail with an URL pointing to activate the unique ID (e.g. domain.com/activate.php?id=102939505595
激活页面检查是否存在唯一键,并将确认
字段更改为是
(或 1
The activation page checks whether the unique key exists and changes the confirmed
field to yes
(or 1
or whatever).
此外,可选地,保存确认日期/时间,IP地址和用户代理。
Additionally and optionally, save the confirmation date/time, IP address and user agent.
这篇关于通过电子邮件验证链接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!