Question

J'essaie de rediriger les utilisateurs de mon réseau sur une page d'atterrissage spécifique sur notre site Web en fonction de leur adresse IP et d'un référent vierge.Ce code fonctionne, mais cela finit dans une boucle de redirection.Comment sortir de la boucle de redirection pour rediriger correctement un utilisateur?Merci!

$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();
            } 
}

Était-ce utile?

La solution

Ajoutez une session à cet utilisateur que vous savez qu'ils ont déjà été redirigés:

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();
    } 

}

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top