如何创建一个只有两个人在PHP中使用会话的登录系统?
我想创建一个只有两个用户可以登录的登录系统。我真的不想出于自己的原因使用数据库。真正的问题是网站上有多个登录,如果你在网站的另一部分登录另一个帐户并进入“管理面板”管理员面板将打开,让任何用户创建具有管理员权限的新用户。
我的代码:
的index.php
<?php
session_start();
define('DS', TRUE);
define('USERNAME', $_SESSION['username']);
define('SELF', $_SERVER['PHP_SELF'] );
$userx = $_SESSION['username'];
if (!USERNAME or isset($_GET['logout']))
include('login/login.php');
?>
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>ADMIN PANEL</title>
<meta name="author" content="INTmAker" />
<meta name="author" content="Leonx">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
</head>
<body>
You are logged in as <?php echo($userx); ?> | <a href="?logout=1">Logout</a>
<br>
<?php
if($userx != "Leonx" || $userx != "INT"){
echo 'You are not an Admin.';
return false;
} else {
echo ' <div>
<input type="text" id="username" name="username" placeholder="Username" value=""/>
<input type="password" id="password" name="password" placeholder="Password" value=""/>
<input type="submit" id="postform" onclick="post()" value="Submit">
</div>
<input type="checkbox" onclick="admin()">Admin access?
<input type="checkbox" onclick="password()">Pokaži lozinku';
}
?>
<script>
function post() {
var username = $('#username').val();
var password = $('#password').val();
$.post('multipass.php', {postuser:username, postpass:password},
function(data)
{
alert("Uspjesno dodan korisnik!");
});
}
function post2() {
var username = $('#username').val();
var password = $('#password').val();
$.post('adminpass.php', {postuser:username, postpass:password},
function(data)
{
alert("Uspjesno dodan admin!");
});
}
function password() {
var x = document.getElementById("password");
if (x.type === "password") {
x.type = "text";
} else {
x.type = "password";
}
}
function admin(){
document.getElementById('postform').setAttribute('onclick','post2()');
}
</script>
</body>
</html>
的login.php
<?php defined('DS') OR die('No direct access allowed.');
include('users.php');
if(isset($_GET['logout'])) {
$_SESSION['username'] = '';
header('Location: ' . $_SERVER['PHP_SELF']);
}
if(isset($_POST['username'])) {
if($users[$_POST['username']] !== NULL && $users[$_POST['username']] == $_POST['password']) {
$_SESSION['username'] = $_POST['username'];
header('Location: ' . $_SERVER['PHP_SELF']);
}else {
//invalid login
echo "<p>Korisničko ime ili lozinka su krivi!</p>";
}
}
echo '<!DOCTYPE html>
<html>
<head>
<title>EDITOR LOGIN</title>
<link rel="stylesheet" type="text/css" href="login/style.css">
</head>
<body>
<div class="header">
<h2>Admin</h2>
</div>
<form method="post" action="'.SELF.'">
<div class="input-group">
<label for="username">Korisničko ime</label> <input type="text" id="username" name="username" value=""/>
</div>
<div class="input-group">
<label for="password">Lozinka</label> <input type="password" id="password" name="password" value="" />
</div>
<input type="submit" class="btn" name="submit" value="Login" class="button"/>
</form>
</body>
</html>';
exit;
?>
我的期望:如果登录用户的名字不是Leonx或INT,那么我希望用户只收到一条消息“你不是管理员”。如果用户名是Leonx或INT,那么我想要显示from的输入字段。
发布于 2019-05-17 09:43:51
如果你只需要Leonx或INT。像这样更改你的过滤器
if($userx != "Leonx" AND $userx != "INT")
你只需要更换你||
的AND
https://stackoverflow.com/questions/-100009033
复制相似问题