Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Снова об авторизации
 
 автор: burgui   (19.11.2005 в 22:17)   письмо автору
 
 

У меня такой вопрос. Создаю небольшую базу данных, частично использую примери кода приведенные в этом форуме, за что Вам очень благодарен. А теперь по сути создаю базу которую будут использовать несколько людей наборщиков, при том доступ к отдельным разделам базы я запаролил индентификация с помощью простой формы. И тут у меня возник небольшой вопрос, как сделать чтоб при индентификации права пользователю присвоить те что выставлены в MySQL, то есть например есть пользователь Гость он может только использовать команду SELECT на выборку информации, пользователь Наборщик 1 имеет доступ к таблице 1 может редактировать поля и тд. Суть я думаю ясна. Подскажите в каком направлении двигаться.
Спасибо Роман

   
 
 автор: Саня.   (20.11.2005 в 01:01)
 
   для: burgui   (19.11.2005 в 22:17)
 

Есть много способов:
Сделать запись в таблице с пользователями, к примеру, "Aae245;N1;M;". "A" - обозначает доступ к разделу "Статьи", "ae" - права (add, edit), "245" - id подразделов в разделе, ";" - разделитель. "N" - новости, "M" - главная страница, и т. п.
Можно булевыми флагами:

<?php
define
(CREATE1);
define(DELETE2);
define(EDIT4);
define(ADMIN8);
$user_premission CREATE EDIT;
echo((
$user_premission CREATE) ? "Ты можешь добавлять записи" "Ты не можешь добавлять записи");
echo((
$user_premission DELETE) ? "Ты можешь удалять записи" "Ты не можешь удалять записи");
echo((
$user_premission EDIT) ? "Ты можешь редактировать записи" "Ты не можешь редактировать записи");
echo((
$user_premission ADMIN) ? "Ты админ" "");
?>

В двоичном виде числа 1, 2, 4 и 8 это 0001, 0010, 0100, 1000 соответственно. Затем при помощи оператора "|" и этих чисел мы определили права пользователя равному результату "1|4", что в двоичном виде соответствует 1010 (т. е. 5). Таким образом мы наделили пользователя правами добавления и редактирования. Потом при помощи оператора "&" последовательно присоеденяем значения констант к переменной $user_premission. Если применение этой поразрядной конъюнкции даст ненулевое значение - выведестя соответствующая строка. в противном случае ничего не выведется.
(из самоучителя PHP5 Симдянова и Кузнецова)
http://php.rinet.ru/manual/ru/language.operators.bitwise.php

   
 
 автор: cheops   (20.11.2005 в 03:18)   письмо автору
 
   для: burgui   (19.11.2005 в 22:17)
 

А вам учётные записи MySQL доступны?

   
 
 автор: burgui   (20.11.2005 в 21:07)   письмо автору
 
   для: cheops   (20.11.2005 в 03:18)
 

Да конечно доступны. Я сам создаю пользователей по мери необходимости и наделяю их учетные записи правами. У себя на роботе я и админ, и немного веб-програмист в одном лице :-((

   
 
 автор: cheops   (20.11.2005 в 21:40)   письмо автору
 
   для: burgui   (20.11.2005 в 21:07)
 

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

http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=6015

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования