如何通过确认链接访问某些html页面?

时间:2015-03-12 22:38:04

标签: jquery html forms email cookies

我的网站包含一个只询问电子邮件的简单表单。当用户提交表单时,他们会通过电子邮件发送确认电子邮件,要求点击"确认订阅"。

这是使用MailChimp完成的。一旦他们点击"确认"他们被重定向到我的感谢页面。但是,此页面具有普通URL,因此只需在浏览器中输入即可访问。相反,我希望只有通过电子邮件客户端中的MailChimp确认按钮打开才能访问此感谢页面。

或许可以通过某种方式使用Cookie验证用户是否通过MailChimp重定向?

您能提供一些建议吗?

非常感谢!

3 个答案:

答案 0 :(得分:1)

您可以考虑使用.htaccess页面。

Options -Indexes
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^[URL]/.*$ [NC]
RewriteRule ^.* /403.html [L,R]

这是我在我的网站上用来阻止人们访问我的资源文件夹的内容。您只需将URL设置为MailChimp使用的任何基本URL。

答案 1 :(得分:0)

是的,cookies是一种方法。在重定向的页面中,您可以处理标记以将用户标记为“已验证”,然后有条件地使用此cookie来显示其他数据。这可以通过utizelize $ _GET变量之一,并从表单处理一些东西来实现。您可以通过隐藏的表单字段始终执行此操作。有了mailchimp,我知道他们通常也有一种回发处理过的表单数据的方法。您还可以使用$ _SESSION超级全局。另一种方法是在用户数据库条目中存储一个标志,如果它们已登录,但显然只能在这些条件下工作。

请记住,使用会话或Cookie会因此而有些不稳定,因为如果用户由于某种原因禁用了cookie,则无法使用。此外,如果他们从不同的设备访问该网站,这显然也不会持续存在。这就是为什么您可能希望通过用户登录强制执行数据库方法,这样更可靠。

是的,我在你网站上谈论的。整个用户登录系统的替代方案是获取其IP,在验证时将其存储在数据库表中,然后在决定是否显示其他内容时进行检查。然而,这本身可能会导致性能下降,特别是随着用户群的增长。

然而,您可以使用它,与cookie或$ _SESSION结合使用,实质上模拟它们被登录即可。然后,一旦设置了$ _SESSION,就可以在连续加载时检查,而不是点击数据库。这基本上是传统登录系统的处理方式,我们只是取消登录要求本身并使用他们的IP代替。

答案 2 :(得分:0)

我正在为潜在客户生成页面使用类似的设置。 HTML表单(使用jQuery ajax)将页面发送到MailChimp,后者向用户发送电子邮件中的验证链接。在我的潜在客户生成页面上,我有一个“隐藏”的div显示一条感谢信息。在通过ajax成功发布后,我只需隐藏包含注册表单的div,并显示带有成功消息的div。

由于div成功消息默认是隐藏的,除非用户提交注册表单,否则它不会显示。

我不建议在这种情况下使用cookie。如果用户在另一台浏览器或计算机上打开确认链接怎么办?

相关问题