2013-08-30 62 views
0

我抓住了一段代码登录和注册脚本当我运行Apache的它给人的浏览器页面上的地址标签页面重定向不工作

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 

这个错误,这个错误之下在index.php

的网页没有正确重定向

的Firefox已经检测到服务器重定向此地址的请求的方式,将永远不会完成。

此问题有时可能由禁用或拒绝接受Cookie引起。

我挖掘出的代码,但并不能解决这里的问题是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); 

?>

的load.php基本上由它加载数据库和一个类文件require_once声明这里是哪个ID被称为由

$logged = $j->checkLogin(); 

---------的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; 
    } 
} 

所有的bug正在这里发生

问候

回答

0

问题是你的脚本递归重定向到自身。

问题是,当你第一次尝试访问该页面时,脚本确定你不登录:if ($logged == false)

并重定向你使用参数,这是其进一步重定向到一样的login.php页面,因此你的脚本不断循环。当你的web服务器(apache)循环一段时间时,它会将请求标记为无法服务,从而导致错误。

+0

Munjal最新补救措施 –