我如何使通过邮件发送的链接和通过随机令牌访问PHP页面中自己的数据


How do I make a link sent by mail and made by random tokens access their own data in a PHP page

我有一个在PHP中随机创建的令牌。我创建了这个令牌,以便能够通过邮件将其发送给目标用户。链接制作完成后,我不知道我将如何制作它,以便链接访问预期的数据,因为实际的页面并不存在,因为令牌是随机创建的,轮询可以是相同的,但每个人都有不同的答案。所有需要的数据都存储在数据库中。


令牌
令牌主键
idPoll(fk)
电子邮件


民意调查
idPoll主键
标题
问题


答案
idPoll(fk)
idAnswer主键
回答

我想做的是将该令牌制作成一个链接,以便在访问该链接后能够读取与该令牌相关的数据。

例如。token=randomTokenealjnlfa
链接以访问用户自己的带有令牌的轮询
www.myWebsite.com/polls/randomTokenealjnlfa

这是我的邮件的php代码

<?php
// multiple recipients
$to  = 'aidan@example.com' . ', ';
$to .= 'wez@example.com';
// subject
$subject = 'Quick Poll';
$token = "nfjdsfEXAMPLEkajsdnlkaj";
$link = "www.example.com/polls/";
$linkToken = $link.$token;
// message
$message = $linkToken;
// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "'r'n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "'r'n";
// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "'r'n";
$headers .= 'From: me <myMail@example.com>' . "'r'n";
$headers .= 'Cc: myMailArchive@example.com' . "'r'n";
$headers .= 'Bcc: myMailCheck@example.com' . "'r'n";
// Mail it
mail($to, $subject, $message, $headers);
?>

您说数据库中有令牌,所以伪代码在这里:

在example.com/polls/token 中

$tokenString = $_GET['token'];
$tokenModel = FindTokenFromDatabase('token');
//All other code to generate token specific content

您可能希望将令牌链接到数据库中的用户。还要注意,/polls/token只有在你的网络服务器中正确设置了漂亮的链接时才有效,如果你没有设置,你应该使用:

example.com/polls?token=令牌

这里没有通用代码。