一部の PHP ページに特定のユーザーがアクセスできるようにしたいと考えています。「user_privilege」属性の「super_user」として、ユーザー テーブルでこれらのユーザーにフラグを立てます。とても太っていて、ログインとセッションが機能しています。しかし、「super_user」のみのページについてはわかりません。基本的に、これは私がスーパーユーザーのみにアクセスできるようにしたいページです:
<?php
require_once('../includes/su_permission.inc.php');
require_once('../includes/session_timeout_db.inc.php');
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Secret page</title>
</head>
<body>
<h1>Restricted area</h1>
<p><a href="menu_db.php">Back to restricted menu</a> </p>
<?php include('../includes/logout_db.inc.php'); ?>
</body>
</html>
session_timeout_db.inc.php ドキュメントは、ユーザーのセッションが期限切れになっているかどうかを確認し、正常に動作します。これも追加しました:require_once('../includes/su_permission.inc.php'); コード内で、ユーザーがスーパー ユーザーかどうかを確認します。これはコードでの私の試みです:
<?php
require_once 'login.php';
$conn = new mysqli ($host, $user, $password, $database) or die("Connection Failed");
$sql = 'SELECT user_role FROM users WHERE user_email = ?';
$stmt = $conn->stmt_init();
$stmt->prepare($sql);
$stmt->bind_param('s', $user_email);
$stmt->bind_result($user_role);
$stmt->execute();
$stmt->fetch();
if ($user_role='SU') {
$_SESSION['privilege_level'] = $user_role;
// some other code needed here
exit;
} else {
echo 'No permission to visit this page';
}
私はそれが貧弱な試みであることを知っていますが、ここから他に何をすべきかわかりません. 誰かが私がこれを行うことができる最善の方法をアドバイスしてもらえますか?
ありがとう