Я создал страницу в php, которая позволяет пользователям обновлять, создавать и удалять список. Существует два типа пользователей: администратор и студент. Я хочу разрешить студентам только просматривать список и позволить администратору выполнять другие операции. Я создал таблицу для просмотра действий. Как я могу отделить его для разных пользователей? Я не могу перенаправить пользователей в зависимости от их роли, потому что пользователю нужно нажать кнопку, чтобы выполнить действие.
<?php
include 'Database.php';
$query=mysqli_query($con,"SELECT * FROM student");
while ($res=mysqli_fetch_array($query)) {
?>
<tr>
<td><?php echo $res['id']; ?></td>
<td><?php echo $res['Username']; ?></td>
<td><?php echo $res['Email']; ?></td>
<td><?php echo $res['Course']; ?></td>
<td> <button class="w3-btn w3-red"> <a href="delete.php?id=<?php echo $res['id']; ?>"> Delete </a> </button>
<button class="w3-btn w3-blue"> <a href="update.php?id=<?php echo $res['id']; ?>"> Update </a> </button> </td>
</tr>
<?php
}
?>
</table>
</body>
</html>
Давайте сначала создадим таблицу для пользователей:
CREATE TABLE `users` (
`ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`user_email` varchar(100) NOT NULL DEFAULT '',
`user_pass` varchar(255) NOT NULL DEFAULT '',
`user_role` ENUM('admin', 'student') NOT NULL DEFAULT `student`,
`user_registered` datetime NULL DEFAULT NULL,
`user_status` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`ID`),
KEY `user_email` (`user_email`)
);
Тогда страница входа:
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$email = $_POST['email'];
$pass = $_POST['pass'];
...
// Save user into $_SESSION
$_SESSION['user'] = $user;
}
Просмотр страницы пользователей:
<tr>
<td><?php echo $res['id']; ?></td>
<td><?php echo $res['Username']; ?></td>
<td><?php echo $res['Email']; ?></td>
<td><?php echo $res['Course']; ?></td>
<td>
<?php if($_SESSION['user']['role'] == 'admin'): ?>
<button class="w3-btn w3-red"><a href="delete.php?id=<?php echo $res['id']; ?>">Delete</a></button>
<button class="w3-btn w3-blue"><a href="update.php?id=<?php echo $res['id']; ?>">Update</a></button>
<?php elseif($_SESSION['user']['role'] == 'student'): ?>
...
<?php endif; ?>
</td>
</tr>
При обновлении & удалить страницу добавить этот код:
if($_SESSION['user']['role'] != 'admin'){
die("You're not allowed to do this action!");
}
Других решений пока нет …