PHP登录身份验证不起作用
问题描述:
我有两个.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。问题是,我可以访问任何登录详细信息,或根本没有。这要么没有用,要么有效。我怎样才能获得我已经开始工作的细节?我觉得这个问题在登录页面脚本中。非常感谢任何能够帮助我解决问题的人。
注意:我必须重新发布,因为我的最后一个问题被标记为与我的问题完全无关的事情的副本,谢谢。
答
@Sean打我吧,不错:-)
如果除去action="dest.php"
它应该工作。现在您将表单发送到不检查用户名和密码值的页面,因此会话变量未设置。
<form method="post">
Username: <input type="text" name="user"/>
....
</form>
答
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;
}
}
?>
将'
@Sean谢谢,有人真的关注我的代码,并得到这个权利。它也非常有意义。请张贴这个答案,以便我可以提供更多的合法信用。 – H3ll0