2016-01-07 67 views
0

我面臨我的登錄系統的問題。 主頁(index2.php)無法從登錄頁面(index.php)重定向。雖然我輸入了正確的ID和密碼,但當點擊「登錄」按鈕時,登錄頁面不會重定向到主頁。PHP - 無法從登錄頁面重定向到主頁

這裏是我的代碼:

的index.php

<?php 
    session_start(); 
?> 

<form action="checklogin.php" method="POST"> 
<div align="center"> 
    <table style="background-color:#9FF781" width="285" border="1"> 
     <tr> 
      <td width="130"><div align="right"><strong>ID :</strong></div></td> 
      <td width="159"><label for="admid"></label> 
       <input type="text" name="admid" id="admid"></td> 
     </tr> 
     <tr> 
      <td><div align="right"><strong>PASSWORD :</strong></div></td> 
      <td><label for="admpwd"></label> 
       <input type="password" name="admpwd" id="admpwd"></td> 
     </tr> 
     <tr> 
      <td colspan="2"><div align="center"> 
       <button type="submit" name="login">Login</button> 
      </div></td> 
     </tr> 
    </table> 
</div> 
</form> 

checklogin.php

<?php 
    include('../../../Connections/fyp.php'); 
    session_start(); 
    $admid = $_POST["admid"]; 
    $admpwd = $_POST["admpwd"]; 
    $result = mysql_query("SELECT * FROM acc_login WHERE id = '$admid' AND pwd = '$admpwd'"); 
    $row = mysql_num_rows($result); 

    if($admid != "" && $admpwd != "") 
    { 
     if ($row != "") 
     { 
      $_SESSION['loggedin'] = $admid; 
      header("Location: index2.php"); 
     } 
     else 
     { 
      echo "<script type='text/javascript'>alert('Invalid ID or Password! Please try again!')</script>"; 
      exit('<a href="index.php"><strong>Go Back</strong></a> to Login Page'); 
     } 
    } 
    else 
    { 
     echo "<script type='text/javascript'>alert('ID or Password field cannot be blank! Please try again!')</script>"; 
     exit('<a href="index.php"><strong>Go Back</strong></a> to Login Page'); 
    } 
?> 

index2.php

<?php 
    include("session.php"); //check whether user was logged in. 
?> 

session.php文件

<?php 
    include('../../../Connections/fyp.php'); 
    session_start(); 
    $verify = $_SESSION['loggedin']; 
    $session = mysql_query("SELECT * FROM acc_login WHERE id = '$verify'"); 
    $row = mysql_fetch_array($session); 
    $login_session = $row['id']; 

    if(!isset($login_session)) 
    { 
     header("Location: index.php"); 
    } 
?> 
+0

嘗試給完整路徑例如。 http://abcd.com/login.php – amoeba

+0

謝謝..如果是本地網絡,我只需將路徑名更改爲「localhost/smth/smth/index.php」? –

+0

這是來自session.php的所有代碼嗎? PHP部分之後的任何其他輸出? –

回答

0

修改文件目錄如下:

在checklogin.php

include('fyp.php'); 

2 - 1 - 你session.php文件

include('fyp.php'); 

並刪除您的PHP文件中的最後一個?> PHP結束標記(這是一個好習慣),爲了避免頭文件的問題,然後將所有PHP文件放在同一個文件夾中,如果問題解決了,這意味着您需要根據您的項目文件夾結構仔細檢查您傳遞的URL。

+0

謝謝你的解決方案。我遵循你的指示,把所有的PHP文件放到同一個文件夾中,它工作的很好! –

+0

不客氣 –

1

如果頭部已經發送,然後頭功能無法正常工作。所以它會發生使用這個。

<?php 
include('../../../Connections/fyp.php'); 
session_start(); 
$verify = $_SESSION['loggedin']; 
$session = mysql_query("SELECT * FROM acc_login WHERE id = '$verify'"); 
$row = mysql_fetch_array($session); 
$login_session = $row['id']; 

if(!isset($login_session)) 
{ 
    echo "<script>location.href='index.php'</script>"; 
} 
?> 

這是我做什麼,當我需要發送頭甚至ob_end_flush()函數後重定向;已被調用。

+0

它仍然無法重定向到index2.php –

+0

而不是頭(「Location:FileName.php」);使用回聲「」;在整個項目中,因爲一旦你從服務器發送頭到客戶端,它不能被改變。 Best Luck –

+0

謝謝你的解決方案。 // echo「」;當ID或密碼錯誤,並重定向到index.php自動:) –

1

您是否嘗試了絕對網址到您的主頁?

checklogin.php

header("Location: http://www.example.com/index2.php"); 
+0

我已經嘗試過,但它仍然不能重定向到index2.php –

+1

關於yatinadra裁縫職位,你應該總是把'退出;'後面的標題()以確保下面的代碼在我們重定向時不會被執行。 –

0

您是否嘗試調試您的代碼,請在header("Location: index2.php");之前將die('debug');(或任何東西放在die()函數中)並檢查輸出,這將幫助您解決實際問題。 或在header()後面加上exit(1);;