2010-05-12 118 views
0

我在我的网站上有大量的数据收集表单,并且我编写了一个PHP脚本来处理所有数据。所有表单都有一个脚本作为他们的动作,POST作为他们的方法。处理程序将数据副本通过电子邮件发送给我,并且我希望收到的电子邮件中包含它们所在表单的URL。有没有什么办法在PHP中获取提交给脚本的表单的URL?或者,我是否必须在每个表单中添加一个额外的隐藏字段及其URL?如何识别POST数据发送到PHP脚本的来源?

回答

3

发送以下变量中的电子邮件,以及:

$_SERVER['HTTP_REFERER'] 
+1

其中,我很惊讶没有人在这里扼杀过你,并不总是可用。 – 2010-05-12 14:27:45

+0

虽然这在大多数情况下都能正常工作,但这不是一种万无一失的方法,因为浏览器可以发送任何他们想要的内容作为推荐人。 – Powerlord 2010-05-12 14:28:17

+0

我还建议在发送电子邮件之前使用它,以确保数据来自您的域,所以您不会通过电子邮件将有人从外部网站发送到您的服务器的垃圾数据。您可以使用'$ _SERVER ['HTTP_HOST']'获取当前主机名。 – Tarka 2010-05-12 14:30:19

2

如果你想确保帖子只从自己的形式到达,你可以把一次性令牌的形式在一个隐藏字段验证。

+0

这不是我想要的引荐人,但感谢您的建议。 – 2010-05-12 17:26:50