mysql — основанный на роли вход в систему в переполнении стека

Я создал страницу в 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>

-2

Решение

Давайте сначала создадим таблицу для пользователей:

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!");
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector