是否有一种方法可以在PHP中获得启动页面的URL


Is there a way to get a URL of a launching page in PHP

在PHP 5.6中,如果我在页面a上,如果页面a启动页面B,是否有办法从页面B获得页面a的URL ?

请注意,当我从页面a启动页面B时,我不想使用查询参数来传递URL a的值。

如果浏览器(用户代理)支持,您可以使用:

$_SERVER['HTTP_REFERER']
"HTTP_REFERER"

把用户代理引到当前页的页的地址(如果有的话)。这是由用户代理设置的。并不是所有的用户代理都会设置这个,有些代理提供了修改HTTP_REFERER的功能。简而言之,它不能真正被信任。

从:http://php.net/manual/en/reserved.variables.server.php

您可以使用$_SERVER['HTTP_REFERER']检查它。HTTP引用头将返回一个字符串。如果你不知道如何操作,你可以试试:

echo $_SERVER['HTTP_REFERER'];

如果你的用户来到谷歌页面,$_SERVER['HTTP_REFERER']会给你http://www.google.com

当然,还要查看文档:http://php.net/manual/en/reserved.variables.server.php

如果launch表示includerequire,那么您可以通过以下方式(打印示例)获得URL:

echo $_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'];

$_SERVER['HTTP_HOST']将打印基本URL, $_SERVER['SCRIPT_NAME']将打印其余部分(子文件夹和文件名),如:

http://example/web/pageb.php

我已经测试了这个,以确保它的工作。但一定要逃离,因为这里可能有漏洞。如果您的$_SERVER['HTTP_REFERER']null,它也可以工作。