从电子邮件链接启动PHP会话


Starting PHP session from email link

我有一封电子邮件,其中包含我发送给潜在客户的各种产品的链接。当点击链接时,我想把用户带到一个有表单的页面。根据他们点击的产品链接,我希望隐藏输入字段的值等于产品名称。

我还希望该页面只能通过电子邮件中的链接访问。

我该怎么做?

电子邮件中的链接可以是类似的内容

http://example.com/my-script.php?email=<email_address>&token=<token>

其中<token>值是由您的脚本基于电子邮件地址(以秘密方式)计算的;然后在my-script.php上检查接收到的令牌值是否有效(通过根据电子邮件地址再次计算令牌并将两者进行比较)。

当然,任何有此链接的人都可以访问该页面,但他们无法更改电子邮件地址的值。为了防止这种情况,您必须拥有用户帐户,并且用户需要登录

您的第一个问题非常简单。您只需使用URL中的参数($_GET['product_name']),并将其放入隐藏输入的值字段中,如:

<input type="hidden" value="<?php echo $_GET['product_name']; ?>" />

只通过电子邮件链接访问URL是相当困难的。

发送电子邮件时,您可以生成一个随机的字母数字序列,将其添加到URL yourdomain.com/page.php?id=sdlasjh234897dhaksjhda的查询字符串中,并将其与连接的产品一起保存到数据库中。

当用户到达页面时,您会检查数据库中的id。如果该id不在数据库中,则显示一条消息,表明链接无效。否则,显示表单,并使用您保存的产品名称和数据库中的id填充隐藏的输入。