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

时间:2012-02-25 23:58:57

标签: php session post cookies get

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

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

我将如何做到这一点?

3 个答案:

答案 0 :(得分:2)

电子邮件中的链接可以是

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

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

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

答案 1 :(得分:2)

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

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

仅通过电子邮件链接访问URL非常困难。

答案 2 :(得分:1)

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

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