我的登录页面工作正常。
它不使用用户数据库,它在代码中使用预定义的用户名和密码。我唯一无法做的就是在index.php之前首先显示登录页面。任何人都可以输入index.php
并打开网站,这样就不会使用登录页面了。
这是我的login.php
<?php
ob_start();
session_start();
?>
<html lang = "en">
<head>
<title>Alpine VW Extension List</title>
<link href = "css/bootstrap.min.css" rel = "stylesheet">
<style>
body {
padding-top: 40px;
padding-bottom: 40px;
background-color: #ADABAB;
}
.form-signin {
max-width: 330px;
padding: 15px;
margin: 0 auto;
color: #017572;
}
.form-signin .form-signin-heading,
.form-signin .checkbox {
margin-bottom: 10px;
}
.form-signin .checkbox {
font-weight: normal;
}
.form-signin .form-control {
position: relative;
height: auto;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 10px;
font-size: 16px;
}
.form-signin .form-control:focus {
z-index: 2;
}
.form-signin input[type="email"] {
margin-bottom: -1px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
border-color:#017572;
}
.form-signin input[type="password"] {
margin-bottom: 10px;
border-top-left-radius: 0;
border-top-right-radius: 0;
border-color:#017572;
}
h2{
text-align: center;
color: #017572;
}
</style>
</head>
<body>
<h2>Welcome, Please Login</h2>
<div class = "container form-signin">
<?php
$msg = '';
if (isset($_POST["login"]) && !empty($_POST["username"])
&& !empty($_POST['password'])) {
if ($_POST["username"] == "admin" &&
$_POST["password"] == "admin") {
$_SESSION["valid"] = true;
$_SESSION["timeout"] = time();
$_SESSION["username"] = "admin";
header("location:index.php");
}else {
$msg = 'Wrong username or password';
}
}
?>
</div> <!-- /container -->
<div class = "container">
<form class = "form-signin" role = "form"
action = "<?php echo htmlspecialchars($_SERVER['PHP_SELF']);
?>" method = "post">
<h4 class = "form-signin-heading"><?php echo $msg; ?></h4>
<input type = "text" class = "form-control"
name = "username" placeholder = "username = tutorialspoint"
required autofocus></br>
<input type = "password" class = "form-control"
name = "password" placeholder = "password = 1234" required>
<button class = "btn btn-lg btn-primary btn-block" type = "submit"
name = "login">Login</button>
</form>
</div>
</body>
</html>
答案 0 :(得分:1)
您需要设置会话变量,就像您在上面的代码中所做的一样。
$_SESSION["valid"] = true;
然后在index.php页面上,您需要启动会话并检查有效会话变量是否设置为true,如果没有重定向回登录页面
session_start();
if($_SESSION["valid"] != true){
header("location: login.php");
}
要从评论中清除这一点,您只需将它放在index.php文件的顶部(显然在PHP标记中),并且每次加载索引页时都会检查它。