我正在使用此代码来显示用于访问此页面的 url:
<?php
$referer = $_SERVER['HTTP_REFERER'];
echo ($referer);
?>
因此,当我在文件 index.php 中获得此代码时,将其放在 www.mysite.com/index.php 并转到 www.mysite.com,它应该显示“www.mysite.com”,不应该它?
当我使用它时,它什么也没显示。不在 Mamp 本地,也不在线。我究竟做错了什么?
referer 标头是浏览器在请求页面时发送的可选标头,通知服务器它来自的上一个页面。因此,对于您在浏览器中键入的第一页,将没有引用。在您单击从一个页面到另一个页面的链接后,可能会有一个引荐来源网址集。
$_SERVER['HTTP_REFERER']
告诉你你来自哪里,而不是你正在加载的页面。如果您想显示 www.mysite.com,您可能正在寻找$_SERVER['HTTP_HOST']
.
如果您想要用于访问该页面的完整 URL,您可能会在$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']
.
为了更容易理解,如果您单击从http://www.mysite.com/index.php到http://www.mysite.com/anotherpage.php的链接,这些将是变量值^ :
$_SERVER['HTTP_REFERER'] = "http://www.mysite.com/index.php"
$_SERVER['HTTP_HOST'] = "www.mysite.com"
$_SERVER['REQUEST_URI'] = "/anotherpage.php"
$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'] = "www.mysite.com/anotherpage.php"
希望这会有所帮助,有关 PHP保留变量的完整文档可能会对您有所帮助。$_SERVER
^ 并非所有浏览器都设置该HTTP_REFERER
变量。它在 RFC 中是可选的,因此您不应该依赖它来执行任何功能。