Пользовательские привилегии с базой данных MySQL и PHP - PullRequest
0 голосов
/ 29 января 2012

Я хорошо делаю страницу входа, я фактически завершил вход, но как бы я сделал так, чтобы веб-страница отображала разные вещи, основанные на привилегиях пользователей, и как мне установить привилегии в моей базе данных mysql? а затем использовать их в моем php-коде?

Ответы [ 2 ]

3 голосов
/ 29 января 2012

Я обычно делаю поле в таблице users с именем admin или в этом случае может быть privilege_level, затем в своем php вы определяете, какие значения этого поля соответствуют каким уровням привилегий.

РЕДАКТИРОВАТЬ (пример):

// start session on every page using $_SESSION array
session_start();
session_name("Your Site Name");
header("Cache-control: private");

// in login file:
$q = mysql_query("SELECT uid, privilege_level FROM users WHERE pw = 'escaped_and_preferrably_hashed_password' AND username = 'escaped_username' LIMIT 0,1");

// if row found:
if($q && mysql_num_rows($q) > 0){

    // get associative array
    $array = mysql_fetch_assoc($q);

    // set session vars
    $_SESSION['privilege_level'] = $array['privilege_level'];

}

Затем на страницах, где вы хотите проверить уровень привилегий, вы можете использовать переключатель или другую структуру управления / шаблон проектирования для динамической загрузки контента, например:

switch($_SESSION['privilege_level']){
    default:
        echo 'you have no privileges';
    break;
    case "1":
        echo 'you have some privileges';
    break;
    case "2":
        echo 'you have lots of privileges';
    break;
}
0 голосов
/ 29 января 2012

Когда пользователь входит в систему, он дает имя пользователя / пароль.База данных должна хранить это имя пользователя и хэш пароля.Например. md5($password).Сначала вы делаете запрос, подобный "SELECT privilege_level FROM table WHERE username = ".mysql_real_escape_string ($_POST["username"])." AND password=".md5($_POST["password"])

Затем сохраняете этот привилегированный уровень в сеансе.$_SESSION["privilege_level"] = $privilege_level

Теперь, когда они загружают следующую страницу, эта страница должна ссылаться на уровень привилегий в переменной сеанса для создания страницы.

...