基于IP和referer的PHP重定向

基于IP和referer的PHP重定向,php,regex,redirect,ip,referer,Php,Regex,Redirect,Ip,Referer,我正试图将我网络中的用户重定向到我们网站上的特定登录页,基于他们的IP和一个空白的推荐人。这段代码可以工作,但最终会进入重定向循环。如何突破重定向循环以正确重定向用户?谢谢 $visitor = $_SERVER['HTTP_REFERER']; $clientip = $_SERVER['REMOTE_ADDR']; $ip = a regex list of IPs; if (empty($visitor)) { if (preg_match($ip, $clientip)) {

我正试图将我网络中的用户重定向到我们网站上的特定登录页,基于他们的IP和一个空白的推荐人。这段代码可以工作,但最终会进入重定向循环。如何突破重定向循环以正确重定向用户?谢谢

$visitor = $_SERVER['HTTP_REFERER'];
$clientip = $_SERVER['REMOTE_ADDR'];
$ip = a regex list of IPs;
if (empty($visitor))
{
    if (preg_match($ip, $clientip)) {
        header('Location: http://example.com');
            die();
            } 
}

向该用户添加您知道他们已被重定向的会话:

session_start();
$visitor = $_SERVER['HTTP_REFERER'];
$clientip = $_SERVER['REMOTE_ADDR'];
$ip = a regex list of IPs;
if (empty($visitor))
{

    //add on if they did not redirect yet.
    if (preg_match($ip, $clientip) && 
        (!isset($_SESSION['redirect']) || !$_SESSION['redirect'])) {
        $_SESSION['redirect'] = true;
        header('Location: http://example.com');
        die();
    } 

}

向该用户添加您知道他们已被重定向的会话:

session_start();
$visitor = $_SERVER['HTTP_REFERER'];
$clientip = $_SERVER['REMOTE_ADDR'];
$ip = a regex list of IPs;
if (empty($visitor))
{

    //add on if they did not redirect yet.
    if (preg_match($ip, $clientip) && 
        (!isset($_SESSION['redirect']) || !$_SESSION['redirect'])) {
        $_SESSION['redirect'] = true;
        header('Location: http://example.com');
        die();
    } 

}

REFERE是一个可选的标题。假设它为空意味着这是他们在会话期间第一次访问该站点,这是一个非常糟糕的想法。昆汀说的话-还要注意,一些代理和“安全套件”将删除此标题,无论用户是否需要(因此,并不总是“那么,用户需要重新启用它”)。引用是可选标题。假设它为空意味着这是他们在会话期间第一次访问该站点,这是一个非常糟糕的想法。昆汀说的话——还要注意,一些代理和“安全套件”将删除此标题,无论用户是否需要(因此,不总是“那么,用户需要重新启用它”)。好奇。为什么要为此创建服务器端文件?一块简单的饼干就够了吗?@webbiedave可以吃,sessions不能那么简单。这正是我需要的。非常感谢你!好奇。为什么要为此创建服务器端文件?一块简单的饼干就够了吗?@webbiedave可以吃,sessions不能那么简单。这正是我需要的。非常感谢你!