2016-11-25 49 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; 
    } 
} 
?>