使用php检测用户来自何处

使用php检测用户来自何处,php,Php,我在members.php上有这段代码 <?php if (!isset($_SERVER['HTTP_REFERER'])){ header( 'Location: http://www.mywebsite.com/index.php' ) ; } else { echo "Ok"; } 在许多情况下,$\u服务器['HTTP\u REFERER']没有价值 你可以“尝试”使用它,如果你有一个价值在那里使用它做一些不稳定的事情 但是考虑到它可能是空的或不准确的,如果它是空的,你就

我在members.php上有这段代码

<?php
if (!isset($_SERVER['HTTP_REFERER'])){
header( 'Location: http://www.mywebsite.com/index.php' ) ; }

else {  
echo "Ok";
}

在许多情况下,
$\u服务器['HTTP\u REFERER']
没有价值

你可以“尝试”使用它,如果你有一个价值在那里使用它做一些不稳定的事情

但是考虑到它可能是空的或不准确的,如果它是空的,你就不应该做像重定向一样硬的事情

i、 e.您可以在404 not found页面上使用它来尝试查看用户来自何处,并从那里尝试查看他们可能试图去/来自何处,并在您的网站上为他们提供一些他们可能觉得有用的链接

但是,除了一些可能有用的信息之外,不要相信它,因为这些信息很容易不准确(很可能)是空的

编辑:
阅读您的评论后,我发现您试图使用此功能阻止访问成员区域。
这是一种非常糟糕的方法,因为它在管理对成员区域的访问方面没有任何价值

我甚至不知道你为什么认为来自你网站另一个页面的人应该保证他们可以访问“会员区”。
当然没有什么真正的区别(就“会员”而言):1)从外部网站到您的会员区,而不是2)从外部网站到您网站上的某个页面,然后是会员区

您必须学会使用$\u会话,如果成员区域是安全区域,那么您也需要注册和登录系统。
这取决于你真正想保护什么。然而,这已经超出了这个问题的范围


如果您在堆栈中搜索登录系统和$\u会话,您将能够获得一些信息。

我认为您可以使用preg\u match()来匹配用户是否从facebook重定向

     <?php
    if(preg_match('#https?\://(?:www\.)?facebook\.com#',$_SERVER['HTTP_REFERER'])){

    // facebook refered user

    }
    else{

    // else part
    }
    ?>


这是一个坏主意,你无法让它按你想要的方式工作。有更好的方法可以阻止人们访问members.php?!我想可能会创建一个会话,但我不知道怎么会有很多智能手机和平板电脑不发送那个标题!不要用它@撤销大多数手机和平板电脑都会发送一个
Referer
标题,但它们不是必需的。我无法找到工作的方法=(很好…检查从浏览器直接访问?有一种方法…你编写的代码可以帮我很多,因为99%来自facebook!