2015-06-13 23 views
-1

我想在用戶使用PHP頭函數登錄後將頁面重定向到另一個頁面,但它會一直重定向到一個甚至不存在的頁面。讓我來解釋更多:PHP頭函數重定向到不存在的頁面

我稱之爲「admin_login.php」,它具有以下形式的PHP腳本:

<form class="form-horizontal" action="admin_login.php" method="post"> 
       <div class="form-group"> 
        <label class="col-md-2 control-label">Username</label> 
       <div class="col-md-10"> 
        <input type="text" class="form-control" id="admin_login_username" name="username" placeholder="Username"> 
       </div> 
      </div> 
      <div class="form-group"> 
       <label class="col-md-2 control-label">Password</label> 
       <div class="col-md-10"> 
        <input type="password" class="form-control" id="admin_login_password" name="password" placeholder="Password"> 
       </div> 
      </div> 
      <div class="form-group"> 
       <div class="col-md-offset-2 col-md-10"> 
        <input type="submit" name="submit" value="Sign In" class="btn btn-default"> 
       </div> 
      </div> 
     </form> 

所以,當用戶點擊「提交」相同的腳本「admin_login.php」是所謂的和所需要的用戶登錄腳本運行:

<?php 
error_reporting(E_ALL & ~E_NOTICE); 

if($_POST["submit"]) 
{ 

$db_host = "localhost"; 
$db_user = "root"; 
$db_password = ""; 
$db_name = "global_electronics"; 

$connection = mysqli_connect($db_host,$db_user,$db_password,$db_name); 

$username = $_POST['username']; 
$password = $_POST['password']; 

$query = "SELECT * FROM admin WHERE admin_username='$username' AND admin_password='$password'"; 
$result = mysqli_query($connection,$query); 

if($result->num_rows > 0) 
{ 
    $row = mysqli_fetch_assoc($result); 

    if($username === $row['admin_username'] && $password === $row["admin_password"]) 
    { 
     session_start(); 
     $_SESSION["admin_ID"] = $row["admin_id"]; 
     $_SESSION["admin_username"] = $username; 

     header("Location:admin_home.php"); 
     exit(); 
    } 
    else 
    { 
     echo "Incorrect Username or Password!"; 
    } 

} 
} 
?> 

如果你看到前面的腳本頭功能,它應該重定向的頁面爲「admin_home.php」 相反,瀏覽器重定向到「的index.php」它甚至不存在於我的項目文件夾中。

當 「admin_login.php」 在瀏覽器中加載:

http://localhost:63342/Global%20Electronics/admin_login.php 

點擊後提交:

http://localhost:63342/index.php 

這也說明了一個404錯誤

什麼是錯的代碼?我是否正確使用標題功能?我錯過了什麼嗎?

我也用的,而不是頭功能:

echo "<script type='text/javascript'>window.top.location='../admin_home.php';</script>"; 

這也重定向我 「的index.php」

注: 我使用PhpStorm 8.0.3 最新的MySQL Workbench中運行wamp MySql數據庫 我的項目不在Wamp它位於其他地方

那麼這裏可能有什麼問題?

回答

1

我假設你的admin_login.php與腳本位於同一個文件夾中。此代碼可能是一個問題。兩個點表示上一個目錄,因此在文件路徑中使用一個點。

echo "<script type='text/javascript'>window.top.location='./admin_home.php';</script>"; 

此外,在標題重定向位置包含一個空格,以查看是否有效。

header("Location:admin_home.php");

header("Location: admin_home.php");

+0

這並沒有幫助,但它仍然重定向到 「的index.php」(這顯然不存在) – ahmedbatty

+0

我懷疑是腳本查找TE admin_home .php它不能找到,所以它默認爲DOCUMENT_ROOT。嘗試改成'''header(「Location:Global%20Electronics/admin_login.php」)''' – pbu