如何在javascript文件中获取referer

如何在javascript文件中获取referer,javascript,php,Javascript,Php,我有3个php文件,我想用php获得第三个文件中第一个文件的引用 我需要检查的点击来在php只引荐 我不能在file3中使用document.referer,因为它很容易被欺骗,所以我的最佳选择是在一定程度上依赖php referer 我是这样做的 file1.php内容 <a href="file2.php">file2.php</a> <script type="text/javascript" src="file3.php"></script&g

我有3个php文件,我想用php获得第三个文件中第一个文件的引用

我需要检查的点击来在php只引荐

我不能在
file3
中使用
document.referer
,因为它很容易被欺骗,所以我的最佳选择是在一定程度上依赖php referer

我是这样做的

file1.php内容

<a href="file2.php">file2.php</a>
<script type="text/javascript" src="file3.php"></script>
alert("<?php echo $_SERVER['HTTP_REFERER'];?>");

file2.php内容

<a href="file2.php">file2.php</a>
<script type="text/javascript" src="file3.php"></script>
alert("<?php echo $_SERVER['HTTP_REFERER'];?>");

file3.php内容

<a href="file2.php">file2.php</a>
<script type="text/javascript" src="file3.php"></script>
alert("<?php echo $_SERVER['HTTP_REFERER'];?>");
警报(“”);
我在
http://localhost/site/file2.php
但我希望警报为
http://localhost/site/file1.php

请查看并建议仅在php中执行此操作的任何可能方法


谢谢

您可以使用。您不必为此加载PHP,只需使用一个JS文件(不是PHP)。

除非您控制
file2.PHP
,否则无法执行此操作,您说过您不是。referer头可能完全丢失,或者充其量只是指向重定向到
file3.php
的URL。并且有0或1个referer头(换句话说,它是可选的)

参考:

我有3个php文件,我想用php获得第三个文件中第一个文件的引用

HTTP引用程序仅用于显示以前的URL。然而,在很多情况下,它根本不会显示任何URL,在某些情况下(Safari),它有点损坏,可以显示历史上更远的URL

在你得到一个明确的答案之前,你需要对你想要达到的目标有一个更好的解释

假设您希望在访问file3.php之前的会话中的某个时间点检查访问file1.php的用户,那么您需要捕获并存储他们对前者的访问,然后在后者读取该值

这可以通过LSO或PHP会话实现


确保file1.php是导致file3.php的页面之前的页面更为复杂。

这是不可信的。如果要将其作为Javascript文件包含,为什么在file3中有
标记?这可能就是您没有收到消息的原因:这些标记会导致语法错误。@PraveenKumar一点也不重复。@TallboY我知道,您不应该在JavaScript文件中添加脚本标记。您只能使用脚本标记在HTML文档中包含javascript。单独的javascript文件不需要这些,实际上它们会破坏语法。当包含文件3时,这些信息就不再可用了。还有一个很好的理由,否则谷歌、jQuery和其他第三方CDN提供商可能会以不希望的方式跟踪您网站的用户。或者在这种情况下,你可以用一种不希望的方式跟踪别人网站的用户。是的,我可以,但我想用php来做,只是出于某些原因,你无法获取
file1
,因为你正在加载一个php文件。因此,服务器响应将与以前使用的文件相同。在本例中,您首先加载
文件1
。您已被重定向到
file2
并使用PHP加载
file3
,因此引用者将是
file2
。如果你想要
文件1
,你必须用JS来更新你的问题。请用这个更新你的问题,包括更多关于可接受和不可接受的页面流的详细信息……以及关于问题域的所有其他详细信息,这些信息分散在评论中。