我如何识别用户提交表单的网站?

时间:2012-02-01 11:50:33

标签: javascript html server-side-includes hiddenfield

我想确定用户提交联系表单的网站。

联系表单是一个包含文件(.shtml),该文件正在两个不同的网站上使用。由于它只有一个文件(包含),javascript if...else语句或switch语句会这样做吗?如果是这样,它会怎么写?

我是JavaScript的新手,并且不需要写太多,所以会很感激语法的帮助。

我考虑在一个包含联系表单上添加两个隐藏字段,其中包含两个不同站点的ID:

HTML

<input type="hidden" data-id="new_student_signup" name="student_signup" value="" />
<input type="hidden" data-id="existing_student_signup" name="existing_student_signup" value="" />

JS

if(data-id="new_student_signup"){

  // this user came from the new student website

   code if this condition is true
 }

else if(data-id="existing_student_signup"){

  // this user came from the existing student website

   code if this condition is true

 }

或者我应该为其他网站创建一个新的包含文件并将隐藏字段添加到该文件而不是在一个包含上使用javascript?

我会承认,这对像我这样的JavaScript新手来说似乎最容易,但我确实喜欢学习更多JavaScript的想法。

2 个答案:

答案 0 :(得分:1)

您可以通过选中HTTP_REFERRER来使用服务器端脚本执行此操作。

PHP示例

<?php
if(!empty($_SERVER['HTTP_REFERRER']) && $_SERVER['HTTP_REFERRER'] == 'http://google.com/')
{
// proceed accordingly
}

您可能希望根据域名或URL中更具体的数据而不是整个HTTP引荐来源字符串来区分引荐来源。在这种情况下,请查看http://php.net/parse_url


您也可以通过访问document.referrer属性来使用JavaScript。

答案 1 :(得分:0)

您可以通过检查document.url property并将其放入隐藏的输入字段来在javascript中执行此操作。但是,我认为你最好只在服务器端编程代码中检查一下。您可以只检查当前的服务器并使用它来确定它是哪种形式。您可以通过获取SERVER_NAME服务器变量来执行此操作,这将告诉您当前所在的域。