0

user_id、user_name、user_password の 3 つのテーブルを持つ MySQL データベースを使用して、基本的なメンバーシップ システムをセットアップしました。私のphpコードベローは、私がphpを初めて使用するため単純であり、知識が進むにつれてさらに開発します。現在、メンバー、管理者、およびグローバル管理者という異なるロールを作成しようとしています。私はこれまでの経験からどのように前進するかについて少し迷っています。アドバイスや提案をいただければ幸いです。

私の基本会員コード

    <?php
session_start();

$errorMessage = '';
if (!empty($_POST['user_name']) && !empty($_POST['user_password'])){
    include 'library/connect.php';

    $user_name = $_POST['user_name'];
    $user_password = $_POST['user_password'];

    $sql = "SELECT user_id FROM Login WHERE user_name = '$user_name' AND user_password = '$user_password'";

    $result = mysql_query($sql) or die('Query failed. ' . mysql_error());
    $row = mysql_fetch_array($result);

    if (mysql_num_rows($result) == 1) {
    $_SESSION['user_logged_in'] = true;
    $_SESSION['id'] = "$row[user_id]";
    header("Location: user/user.php");
    }
        else {
            $errorMessage = 'Sorry, wrong username / password';
            }
                include 'library/close.php';
}
?>
<html>
<head>
</head>
<body>
<?php
if ($errorMessage != '') {
?>
<p align="center"><strong><font color="998000"><?php echo $errorMessage; ?></font></strong></p>
<?php
}
?>

<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post" name="formLogin" id="formLogin">
<table width="400" border="1" align="center" cellpadding="2" cellspacing="2">
<tr>
    <td width="150">User name</td>
    <td><input name="user_name" type="text" id="user_name"></td>
</tr>
<tr>
    <td width="150">Password</td>
    <td><input name="user_password" type="password" id="user_password"></td>
</tr>
<tr>
    <td width="150"></td>
    <td><input name="btnLogin" type="submit" id="btnLogin" value="Login"></td>
</tr>
</table>
</form>
</body>
</html>

概要 私は基本的なメンバーシップ システムを構築しました。これを拡張して、2 レベルのセキュリティ管理者とグローバル管理者のロールを含めたいと考えています。

4

1 に答える 1

3

たとえば、テーブルにフィールドを簡単に追加できます。

level

1 (基本ユーザー) 2 (管理者) 3 (グローバル管理者) などの値を追加します。

たとえば、管理者のみが実行できる操作がある場合は、次のように確認します。

if ($user_level >= 2) {

echo 'You can do this...';

}
于 2014-01-05T21:25:07.917 に答える