Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jokita18

header location loop infinito

Recommended Posts

<?php ob_start();
session_start();
?>
<body>

    <?php if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARTDED_FOR'] != '') {
    $ip_address = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } else {
    $ip_address = $_SERVER['REMOTE_ADDR'];
    }


if(isset($_POST['login'])){
$ses ['id'] = session_id();
$ses ['on'] = time();
$ses ['end'] = $ses['on'] + 30;
$ses ['ip'] = $ip_address;
$ses ['senha'] = $_POST ['senha'];

$_SESSION ['user'] = $ses;

}






if (empty($_SESSION['user'])){
 header('Location: http://localhost/site.pt/login.php/');
  exit();
    }else{
            $tempolog =  $_SESSION ['user']['on'];
            $tempoagg = time();
            $tempoonn = $tempoagg - $tempolog;
            $tempofim = $_SESSION ['user']['end'] - $tempoagg;
            echo $tempofim;
                if($tempofim<=0){
                unset($_SESSION['user']);
                 header('location: '.$_SERVER['PHP_SELF']);
                    }else{
                        $_SESSION ['user']['end'] = time() + 30;
                        }
                       header('location: http://www.google.pt' );
                       exit();
        }
   
?>

Olá provalvelmente é um erro muito bobo mas com o código acima o navgador diz que existe demesiados redirecionamentos. estive a pesquuisar e parece que algo está errado no código o que acaba por gerar redirecionamentos em loop. A ideia seria. se existisse uma sessão o usuário era reencaminhado para uma pagina (por para exemplificar coloquei o Google) e caso não ele seria enviado para a pagina de login.php que é esta mesma . Já utilizei o php_self mas o resultado fui o mesmo.

por favor me ajudem obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o nome da página aonde está esse código? Não é a mesma do login, é? Porque se for vai ficar redirecionando para ela mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

a página é a mesma. eu quero que se o usuário estiver na página login.php sem sessão iniciada simplesmente fique lá(para que inicie sessão) e se tiver sessão iniciada passe diretamente para outra página. eu quero colocar aquele código no header e que ele verifique se o usuário tem autorização para navegar num painel por isso a página tem de ser a mesma.

desde já agradecido

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se está na mesma página não precisa do header. Você pode simplesmente imprimir uma mensagem ou deixar o formulário de login. Ou ainda apenas redirecionar para a outra página caso tenha um usuário já logado. Algo assim:

if(isset($_SESSION["user"])){
    header('Location: index.php');
}else{
    // cria o formulário de login
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.