我有一封电子邮件,其中包含我发送给潜在客户的各种产品的链接。当点击链接时,我想把用户带到一个有表单的页面。根据他们点击的产品链接,我希望隐藏输入字段的值等于产品名称。
我还希望该页面只能通过电子邮件中的链接访问。
我该怎么做?
电子邮件中的链接可以是类似的内容
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填充隐藏的输入。