2013-02-22 160 views
0

我實現了一個網站,託管在某個目錄的學校文件,索引頁面只是一個登錄頁面。當我使用谷歌瀏覽器訪問這個網站時,它會不斷給我一個「重定向循環錯誤」,但是,如果我使用任何其他瀏覽器,那麼該網站正常加載。谷歌瀏覽器「重定向循環」,但不在其他網絡瀏覽器

我的站點代碼爲index.php以下,任何建議表示讚賞。

該網站的網址是:https://secure.fixnode.ca/

感謝, 菲利普ķ

<?php 
session_start(); 

function loggedin() 
{ 
if (isset($_SESSION['myusername']) || isset($_COOKIE['myusername'])) 
{ 
    $loggedin = TRUE; 
    return $loggedin; 
} 
} 

if (loggedin()) 
{ 
header("Location: /login_success.php"); 
die(); 
} 

if(isset($_POST['submit'])) 
{ 

$host="localhost"; // Host name 
$username="user"; // Mysql username 
$password="password"; // Mysql password 
$db_name="database_name"; // Database name 
$tbl_name="table_name"; // Table name 

// Connect to server and select databse. 
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 

// username and password sent from form 
$myusername=$_POST['username']; 
$mypassword=$_POST['password']; 
$rememberme=$_POST['rememberme']; 

// To protect MySQL injection (more detail about MySQL injection) 
$myusername = stripslashes($myusername); 
$mypassword = stripslashes($mypassword); 
$myusername = mysql_real_escape_string($myusername); 
$mypassword = mysql_real_escape_string($mypassword); 

$encrypted_mypassword=md5($mypassword); 
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$encrypted_mypassword'"; 
$result=mysql_query($sql); 
mysql_close(); 
// Mysql_num_row is counting table row 
if(mysql_num_rows($result) == 1) //user exists 
{ 
    if ($rememberme=="on"){ 
     setcookie("myusername", $myusername, time()+7200); 
    } 
elseif ($rememberme==""){ 
     $_SESSION['myusername'] = $myusername; 
    } 

header("Location: /login_success.php"); 
exit(); 
} 
else { 
echo '<div class="alert">Incorrect Username or Password!</div>'; 
} 
} 
?> 


<?php 
// DETECT MOBILE DEVICE 
//session_start(); 
$user_agent=$_SERVER['HTTP_USER_AGENT']; 
$iphone = strpos($user_agent,"iPhone"); 
$android = strpos($user_agent,"Android"); 
$palmpre = strpos($user_agent,"webOS"); 
$berry = strpos($user_agent,"BlackBerry"); 
$ipod = strpos($user_agent,"iPod"); 

if($_GET['mobile_site']) 
{ 
    if (strcmp($_GET['mobile_site'],"false")==0) 
    $_SESSION['mobile_site']=false; 
    if (strcmp($_GET['mobile_site'],"true")==0) 
    $_SESSION['mobile_site']=true; 
} 
if ($iphone || $android || $palmpre || $ipod || $berry == true) 
{ 
$_SESSION['mobile_device']=true; // 

if (isset($_SESSION['mobile_site'])) 
    { 
    } 
else 
    $_SESSION['mobile_site']=true; 
} 
else 
{ 
$_SESSION['mobile_site']=false; 
$_SESSION['mobile_device']=false; 
} 
?> 

<!DOCTYPE HTML> 
<html> 
<head> 
<title>Secure Customer Login</title> 
<meta charset="UTF-8" /> 
<script type="application/javascript" src="scripts/bubble_bookmark.js" charset="utf-></script> 
<link rel="apple-touch-icon" href="/images/apple-touch-icon.png"> 
<meta http-equiv="X-UA-Compatible" content="IE=9" /> 
<?php if($_SESSION['mobile_site']==true){ ?> 
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0" /> 
<meta name="apple-mobile-web-app-capable" content="yes" /> 
<meta name="apple-mobile-web-app-status-bar-style" content="black" /> 
<?php } ?> 
<script type='text/javascript'> 
    function navigator_Go(url) { 
    window.location.assign(url); 
    } 
    </script> 
<script type="text/javascript"> 

var addToHomeConfig = { 
touchIcon: true, 
}; 
</script> 
<link rel="stylesheet" type="text/css" href="css/reset.css"> 
<link rel="stylesheet" type="text/css" href="css/structure.css"> 
<script>document.createElement('footer');</script> 
</head> 
<body> 
<center><img src="/images/logo.png"></center> 
<form class="box login" name="login" method="post" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>"> 
<fieldset class="boxBody"> 
    <label>Username</label> 
    <input type="email" name="username" tabindex="1" placeholder="Email" required="required"> 
    <label><?php if($_SESSION['mobile_site']==true){ ?><a href="javascript:navigator_Go('recovery.php');" class="rLink" tabindex="5">Forget your password?</a><?php } ?><?php if($_SESSION['mobile_site']==false){ ?><a href="recovery.php" class="rLink" tabindex="5">Forget your password?</a><?php } ?>Password</label> 
    <input type="password" name="password" tabindex="2" placeholder="Password" required="required"> 
</fieldset> 
<footer> 
    <label><input type="checkbox" tabindex="3" name="rememberme">Keep me logged in</label> 
    <input type="submit" name="submit" value="Login" class="btnLogin" tabindex="4"> 
</footer> 
</form> 
<footer id="main"> 
    &copy; 2011 Fixnode Computer Services. All rights reserved.</a> 
</footer> 
</body> 
</html> 

回答

0

在該子網域的任何URL發送到瀏覽器重定向循環檢查功能。例如:

https://secure.fixnode.ca/loops-are-cool 

看來還有別的做重定向。也許在.htaccess文件中?

+0

我刪除了安全中的.htaccess文件。子目錄中,我只有一個重定向腳本,用於將用戶重定向到https,如果他在http上。刪除腳本(.htaccess文件)後,我仍然繼續有重定向循環錯誤 – fixnode 2013-02-22 22:32:01

+0

然後它必須是一個配置設置其他地方(Apache配置也許),導致重定向。爲什麼我上面發佈的URL會重定向到任何地方,而不是僅僅以404返回? – 2013-02-22 22:36:37

+0

我調查了我的apache指令,它們與我的其他子目錄https://storage.fixnode.ca/(與chrome一起使用)完全相同。在做了一些更多的調查之後,我意識到如果我將我的子目錄更改爲其他的其他東西,然後secure.fixnode.ca(如login.fixnode.ca),那麼它可以與谷歌瀏覽器一起使用。所以它似乎有一個谷歌瀏覽器不喜歡使用安全的錯誤。對於子目錄 – fixnode 2013-02-22 23:46:57

0

讓你的函數的loggedIn()return true;return false登錄時; 當沒有登錄並與if(loggedin() == true) ,而是die()使用exit;

+0

我做了你所建議的所有事情,並且在google chrome中仍然存在重定向錯誤。 – fixnode 2013-02-22 18:21:52

相關問題