我實現了一個網站,託管在某個目錄的學校文件,索引頁面只是一個登錄頁面。當我使用谷歌瀏覽器訪問這個網站時,它會不斷給我一個「重定向循環錯誤」,但是,如果我使用任何其他瀏覽器,那麼該網站正常加載。谷歌瀏覽器「重定向循環」,但不在其他網絡瀏覽器
我的站點代碼爲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">
© 2011 Fixnode Computer Services. All rights reserved.</a>
</footer>
</body>
</html>
我刪除了安全中的.htaccess文件。子目錄中,我只有一個重定向腳本,用於將用戶重定向到https,如果他在http上。刪除腳本(.htaccess文件)後,我仍然繼續有重定向循環錯誤 – fixnode 2013-02-22 22:32:01
然後它必須是一個配置設置其他地方(Apache配置也許),導致重定向。爲什麼我上面發佈的URL會重定向到任何地方,而不是僅僅以404返回? – 2013-02-22 22:36:37
我調查了我的apache指令,它們與我的其他子目錄https://storage.fixnode.ca/(與chrome一起使用)完全相同。在做了一些更多的調查之後,我意識到如果我將我的子目錄更改爲其他的其他東西,然後secure.fixnode.ca(如login.fixnode.ca),那麼它可以與谷歌瀏覽器一起使用。所以它似乎有一個谷歌瀏覽器不喜歡使用安全的錯誤。對於子目錄 – fixnode 2013-02-22 23:46:57