如何使用PHP创建一次性链接并将其包含在电子邮件中?

时间:2015-12-02 17:36:45

标签: php forms email hyperlink

基本上我已创建此表单,用户可在其中输入申请人用户信息和电子邮件地址。我需要创建一个一次性链接,将用户引导回我的网站。链接一旦点击就会过期,并且应该与电子邮件的消息一起包含在内。

下面的表单按预期工作,并向用户发送一个电子邮件地址,其中包含您在表单中输入的任何内容。但我不知道如何在电子邮件中包含超链接,更不用说如何为每个新用户生成超链接。

形式:

<form action="email_script.php" method="POST">
Ämne: <input type="text" name="subject" style="width: 500px;"/><br>
Kandidatens E-postadress: <input type="text" name="minemail" style="width: 500px;"/><br>
Kandidatens E-postadress: <input type="text" name="kanemail" style="width: 500px;"/><br>
Meddelande: <textarea rows="10" cols="30" name="message" style="width: 500px"></textarea> <br>
<input type="submit" value="Skicka test">
</form>

这是PHP脚本:

<?php
$from=$_POST['minemail'];
$email=$_POST['kanemail'];
$subject=$_POST['subject'];
$message=$_POST['message'];
$company=dashboardcompany.php;

mail($email, $subject, $message, "Från: ".$from);

print "Ditt meddelande har skickats: <br>$email<br>$subject<br>$message<br>";
?>

2 个答案:

答案 0 :(得分:0)

您可以使用PHP创建一个激活哈希,执行类似这样的操作,返回一个40个字符的字符串,以便与其他用户数据一起存储在数据库中

$user_activation_hash = sha1(uniqid(mt_rand(), true));

然后在$message内创建一个包含哈希值的链接。

$link = "mysite.com/activate.php?code=".$user_activation_hash;

当用户点击时,您需要使用此

activate.php页面上捕获代码
$code = $_GET['code'];

然后从那里执行数据库中的检查

答案 1 :(得分:0)

对于您创建的每封电子邮件,请生成类似uniqid()的ID。将其插入数据库。

在$ message(已有HTML格式)中,包含您的链接

 <a href="https://example.com/register.php?link=asdf1a234">Click to register</a>

在您的register.php页面上,检查您的数据库以确保代码仍然存在,允许注册开始,并删除代码(或标记它 - 如果有人点击多次可能会有用)。