2016-11-25 51 views
-1

我有兩個.php文件。所有的HTML和PHP,沒有SQL,不會需要/使用它。一個是登錄頁面,另一個是目的地。當我在日誌中記錄我設置的詳細信息時,我無法到達目的地。正如你所看到的,session_start();顯然是最高的。我甚至把它放在與開放的php標籤相同的行上,沒有任何區別。下面是這兩個頁面的代碼:PHP登錄身份驗證不起作用

登錄:

<?php 
session_start(); 

$username="testu"; 
$password="testp"; 
$_SESSION['logged_in']=false; 

if (isset($_SESSION['logged_in']) && $_SESSION['logged_in'] == true) { 
    header("Location: dest.php"); 
    exit; 
} 

if (isset($_POST['user']) && isset($_POST['pass'])) { 
    if ($_POST['user'] == $username && $_POST['pass'] == $password) { 
     $_SESSION['logged_in'] = true; 
     header("Location: dest.php"); 
     exit; 
    } 
} 
?> 

<!DOCTYPE html> 

<html lang="en"> 

<head> 
    <title>A title</title> 
</head> 

<body> 
    <form action="dest.php" method="post" style="font- family:calibri;position:absolute;top:40%;left:35%;"> 
     Username: <input type="text" name="user"/><br><br> 
     Password: <input type="password" name="pass"  style="position:relative;left:5px;"/><br><br><br> 
    <input type="submit" value="Submit" style="position:relative;left:115px;"/> 
    </form> 

</body> 

</html> 

目的地:

(php tag here) 
session_start(); 

if (!isset($_SESSION['logged_in']) || $_SESSION['logged_in'] == false) { 
    header("Location: login.php"); 
    exit; 
} 
?> 

<!DOCTYPE html> 

<html lang="en"> 

<head> 
    <title>A title</title> 
</head> 

<body> 
    <a href="login.php">Log out</a> 
</body> 

</html> 

我注意到,當我註釋掉的PHP代碼的目標文件,我可以訪問DEST。 PHP。問題是,我可以訪問任何登錄詳細信息,或根本沒有。這要麼沒有用,要麼有效。我怎樣才能獲得我已經開始工作的細節?我覺得這個問題在登錄頁面腳本中。非常感謝任何能夠幫助我解決問題的人。

注意:我必須重新發布,因爲我的最後一個問題被標記爲與我的問題完全無關的事情的副本,謝謝。

+0

將'

Sean

+0

@Sean謝謝,有人真的關注我的代碼,並得到這個權利。它也非常有意義。請張貼這個答案,以便我可以提供更多的合法信用。 – H3ll0

回答

1

@Sean打我吧,不錯:-)

如果除去action="dest.php"它應該工作。現在您將表單發送到不檢查用戶名和密碼值的頁面,因此會話變量未設置。

<form method="post"> 
Username: <input type="text" name="user"/> 
.... 
</form> 
1
action="dest.php" 

您必須低於一定的代碼是文件dest.php中,並從login.php刪除。

<?php 
session_start(); 
$username="testu"; 
$password="testp"; 
$_SESSION['logged_in']=false; 

if (isset($_SESSION['logged_in']) && $_SESSION['logged_in'] == true) { 
    header("Location: dest.php"); 
    exit; 
} 

if (isset($_POST['user']) && isset($_POST['pass'])) { 
    if ($_POST['user'] == $username && $_POST['pass'] == $password) { 
     $_SESSION['logged_in'] = true; 
     header("Location: dest.php"); 
     exit; 
    } 
} 
?>