我有一封电子邮件,其中包含我发送给潜在客户的各种产品的链接。点击链接时,我想让用户访问带有表单的页面。根据他们点击的产品链接,我希望隐藏的输入字段的值等于产品名称。从电子邮件链接开始PHP会话
我也希望页面只能通过电子邮件中的链接访问。
我该怎么做呢?
我有一封电子邮件,其中包含我发送给潜在客户的各种产品的链接。点击链接时,我想让用户访问带有表单的页面。根据他们点击的产品链接,我希望隐藏的输入字段的值等于产品名称。从电子邮件链接开始PHP会话
我也希望页面只能通过电子邮件中的链接访问。
我该怎么做呢?
在电子邮件中的链接可以像基于电子邮件地址
http://example.com/my-script.php?email=<email_address>&token=<token>
其中<token>
值由脚本计算(以秘密方式);然后在my-script.php上检查收到的令牌值是否有效(通过再次从电子邮件地址计算令牌并比较两者)。
当然,任何具有此链接的人都可以转到该页面,但他们无法更改电子邮件地址的值。为了防止这种情况发生,您必须拥有用户帐户,并且用户需要登录
电子邮件可能是电子邮件散列使其更安全。 – 2012-02-26 00:08:23
您的第一个问题很简单。你只需要使用的参数从URL($ _ GET [“pruduct_name”]),并把它放到值字段隐藏的输入,如:
<input type="hidden" value="<?php echo $_GET['product_name']; ?>" />
这将是非常难以作出的网址只能通过访问电邮链接。
当您发送电子邮件时,您可以生成一个随机字母数字序列,您将其添加到网址yourdomain.com/page.php?id=sdlasjh234897dhaksjhda
的查询字符串中,并保存到数据库以及它所连接的产品。
当用户到达页面时,检查数据库中的该ID。如果它不在您的数据库中,则显示一条消息,指出链接无效。否则,显示表单并使用您的数据库中保存的产品名称以及您的数据库填充隐藏的输入。
您的服务器无法确定链接是否实际上是从电子邮件中单击的。任何人都可以输入链接并访问相同的页面。 – animuson 2012-02-26 00:00:35