我創建了一個登錄系統,我可以作爲管理員或作爲用戶(僱主)登錄。如果我以管理員身份登錄,則可以在下一頁上更新,刪除或創建新僱主,如果我以僱主身份登錄,則沒有該選項。這工作正常,但今天當我作爲管理員登錄一個沒有該權限,我收到一條消息:你不能創建一個新的用戶(這是我在其他聲明中發佈的消息)。我無法以管理員身份登錄
這是我的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']'是包含錯誤值的那個,我們需要看看你在哪裏以及如何設置它。這就是你在使用它之後已經包含了錯誤的值。 –