/ / Redirecionamento de página não funciona - php, mysql, session, cookies

Redirecionamento de Páginas não funciona - php, mysql, session, cookies

Eu peguei um pedaço de código de um login e script de registro quando eu executar o index.php do apache dá este erro na guia de endereço

http://localhost/johnlogin/?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login?msg=login

e este erro abaixo na página do navegador

A página não está redirecionando corretamente

O Firefox detectou que o servidor está redirecionando a solicitação para esse endereço de uma maneira que nunca será concluída.

Às vezes, esse problema pode ser causado pela desativação ou pela recusa em aceitar cookies.

Eu desenterrar o código, mas não posso resolver o problema aqui é o código de index.php

require_once("load.php");
$logged = $j->checkLogin();

if ( $logged == false ) {
//Build our redirect
$url = "http" . ((!empty($_SERVER["HTTPS"])) ? "s" : "") . "://".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
$redirect = str_replace("index.php", "login.php", $url);

//Redirect to the home page
header("Location: $redirect?msg=login");
exit;
} else {
//Grab our authorization cookie array
$cookie = $_COOKIE["joombologauth"];

//Set our user and authID variables
$user = $cookie["user"];
$authID = $cookie["authID"];

//Query the database for the selected user
$table = "j_users";
$sql = "SELECT * FROM $table WHERE user_login = "" . $user . """;
$results = $jdb->select($sql);

//Kill the script if the submitted username doesn"t exit
if (!$results) {
die("Sorry, that username does not exist!");
}

//Fetch our results into an associative array
$results = mysql_fetch_assoc( $results );

?>

o load.php basicamente consiste em uma instrução require_once que carrega o db e um arquivo de classe aqui é o código da classe na qual o id foi chamado

$logged = $j->checkLogin();

--------- o código class.php -------

        function checkLogin() {
global $jdb;

//Grab our authorization cookie array
$cookie = $_COOKIE["joombologauth"];

//Set our user and authID variables
$user = $cookie["user"];
$authID = $cookie["authID"];

/*
* If the cookie values are empty, we redirect to login right away;
* otherwise, we run the login check.
*/
if ( !empty ( $cookie ) ) {

//Query the database for the selected user
$table = "login";
$sql = "SELECT * FROM $table WHERE uName = "" . $user . """;
$results = $jdb->select($sql);

//Kill the script if the submitted username doesn"t exit
if (!$results) {
die("Sorry, that username does not exist!");
}

//Fetch our results into an associative array
$results = mysql_fetch_assoc( $results );

//The registration date of the stored matching user
$storeg = $results["user_registered"];

//The hashed password of the stored matching user
$stopass = $results["user_pass"];

//Rehash password to see if it matches the value stored in the cookie
$authnonce = md5("cookie-" . $user . $storeg . AUTH_SALT);
$stopass = $jdb->hash_password($stopass, $authnonce);

if ( $stopass == $authID ) {
$results = true;
} else {
$results = false;
}
} else {
//Build our redirect
$url = "http" . ((!empty($_SERVER["HTTPS"])) ? "s" : "") . "://".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
$redirect = str_replace("index.php", "login.php", $url);

//Redirect to the home page
header("Location: $redirect?msg=login");
exit;
}

return $results;
}
}

todo o bug está acontecendo aqui

Saudações

Respostas:

0 para resposta № 1

O problema é que seu script está recursivamente redirecionando para si mesmo.

O problema é quando você tenta acessar a página pela primeira vez, o script determina que você não está logado: if ( $logged == false )

e redireciona você para o login.php com params, que estão redirecionando ainda mais para a mesma página, portanto, seu script continua em loop. Quando o seu servidor web (apache) faz loops por um determinado período de tempo, ele sinaliza a solicitação para não poder atender, daí o erro.