我创建了一个登录系统,我可以作为管理员或作为用户(雇主)登录。如果我以管理员身份登录,则可以在下一页上更新,删除或创建新雇主,如果我以雇主身份登录,则没有该选项。这工作正常,但今天当我作为管理员登录一个没有该权限,我收到一条消息:你不能创建一个新的用户(这是我在其他声明中发布的消息)。我无法以管理员身份登录
这是我的homepage.php脚本。任何帮助?
<?php
require_once("connection.php");
$user_id = $_SESSION['userid'];
$role = $_SESSION['role'];
$sql = "SELECT * FROM login";
$stmt = $conn->query($sql);
?>
<html>
<head>
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
<nav class="navbar navbar-default">
<div class="navbar-header">
<a class="navbar-brand" href="#"><?php echo $role ?></a>
</div>
<div class="container">
<?php if($role == 'admin') { ?>
<a href="new_emp.php"><button type="button" class="btn btn-default navbar-btn">New Employee</button></a>
<?php } else { }?>
<a href="info.php"><button type="button" class="btn btn-default navbar-btn">Employee</button></a>
<a href="logout.php"><button type="button" class="btn btn-default navbar-btn">Sign Out</button></a>
</div>
</nav>
<div class="box">
<div class="col-sm-4 col-md-6 col-md-offset-2">
<table class="table table-hover table-striped table bordered" border="1">
<thead>
<tr>
<th style="width:250px">UserName</th>
<th style="width:250px">User Password</th>
<th style="width:250px">User Role</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php foreach($stmt as $row){ ?>
<tr>
<td><?php echo $row['user_name'] ?></td>
<td>*******</td>
<td><?php echo $row['user_role'] ?></td>
<?php if($role == "admin"){ ?>
<td>
<form action="delete.php" name="deleteForm" method="post">
<input type="hidden" name="delete_id" value="<?php echo $row['user_id'] ?>"/>
<button type="submit" name="delete_user" class="btn btn-info">Delete</button>
</form>
</td>
<td>
<form action="update.php" name="updForm" method="post">
<input type="hidden" name="update_id" value="<?php echo $row['user_id'] ?>"/>
<button type="submit" name="update_user" class="btn btn-info">Update</button>
</form>
</td>
<?php } ?>
</tr>
<?php } ?>
<?php if($role == "admin"){ ?>
<form action="add_user.php" method="POST" name="add_user">
<tr>
<td><input type="text" name="username" class="form-control"/></td>
<td><input type="text" name="password" class="form-control"/></td>
<td>
<select name="select_role" class="form-control">
<option value="admin">Admin</option>
<option value="emp">Employee</option>
</selet>
</td>
<td>
<button type="submit" name="sub_user" class="btn btn-danger">Add User</button>
</td>
</tr>
<?php } else{ ?>
<tr>
You can't add a new user!
</tr>
<?php } ?>
</form>
</tbody>
</table>
</div>
</div>
</body>
</html>
如果您的'else'语句中的代码正在执行,那么'if'语句中的条件显然是错误的。你的调试揭示了什么? – David
那么'$ role'实际上包含了什么? – arkascha
您只能从会话中设置'$ role'。如果$ _SESSION ['role']'是包含错误值的那个,我们需要看看你在哪里以及如何设置它。这就是你在使用它之后已经包含了错误的值。 –