Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Определения администратора сайта с общей таблицы регистрации на сайте

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Требуется профессиональная консультация бывалых!
phphtmlcss
Отправлено: 26 Января, 2013 - 12:40:57
Post Id


Новичок


Покинул форум
Сообщений всего: 47
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)

[+][+][+]


Привет всем!

Есть таблица `users`, в ней регистрируются обыкновенные пользователи, но так же и есть модераторы и администраторы.
Как можно их обозначить или назначить таковыми???

регистрация

PHP:
скопировать код в буфер обмена
  1.  
  2. $du = "INSERT INTO `users`(`name`, `login`, `email`, `password`, `capha`)
  3.               VALUE('$name', '$login', '$email', '$pass', '$capha')" or die(mysql_error());
  4.                   $res = mysql_query($du);
  5.                  if(mysql_affected_rows() > 0){
  6.                   $_SESSION['open']['user'] = $name;
  7.                   $_SESSION['login'] = $login;
  8.                   $_SESSION['foot']['error'] = "<p style='color:green;'>Вы успешно зарегистрированные на сайте</p>";
  9.                  
  10.                  }else{
  11.                  
  12.         $_SESSION['foot']['error'] = "<p><b>Ошибка при заполнении формы</b></p>".$error;
  13.         $_SESSION['foot']['name'] = $name;
  14.         //$_SESSION['foot']['login'] = $login;
  15.         $_SESSION['foot']['email'] = $email;
  16.  


авторизация
PHP:
скопировать код в буфер обмена
  1.  
  2. if($_POST['boom']){
  3. avtorization();
  4. redirect($site_url);
  5. }
  6. function avtorization(){
  7. $login = mysql_real_escape_string(trim($_POST['login']));
  8. $pass = mysql_real_escape_string(trim($_POST['pass']));
  9.  
  10. if(empty($login) OR empty($pass)){
  11. $_SESSION['boot']['tack'] = "<p class='error_sibar'>Не верный логин/пароль</p>";
  12. }else{
  13. $pass = md5($pass);
  14. $du = mysql_query("SELECT `name` FROM `users` WHERE `login`='$login' AND `password`='$pass'") or die(mysql_error());
  15. $row = mysql_fetch_row($du);
  16. if(mysql_num_rows($du) == 1){
  17. $_SESSION['open']['user'] = $row[0];
  18. $_SESSION['login'] = $login;
  19.  
  20.  
  21. }else{
  22. $_SESSION['boot']['tack'] = "<p class='error_sibar'>Не верный логин/пароль</p>";
  23. }
  24. }
  25.  
  26. }
  27.  


Спасибо заранее всем кто окажет реальную помощь в решении данной проблемы! Победа
 
 Top
etoYA
Отправлено: 26 Января, 2013 - 21:29:19
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


Помог: 21 раз(а)




1) Создаешь таблицу groups

2) Добавляешь в таблице users поле group (тут будет указыватся id группы)
3) При авторизации записываешь в сессию разрешенные действия для этой группы (т.е поле access

Примерно так будет выглядеть таблица groups

CODE (SQL):
скопировать код в буфер обмена
  1. id | name  | access
  2. ---------------------
  3. 1  | Users | add_comments,etc
  4. 2  | Admin | add_comments,add_news,ban_users,etc


В поле access разрешенные действия для группы пользователей (через запятую)

Вот код, разбирайся.
PHP:
скопировать код в буфер обмена
  1.  
  2. // Запускаем сессию
  3.  
  4. // В эту сессию нужно записывать данные из базы
  5. $_SESSION['user']['access'] = 'add_comments,add_news,ban_user';
  6.  
  7. // Функция на проверку прав доступа, в качестве аргумента принимает действие (к примеру добавить новость и.т.д)
  8. function checkPermission($action){
  9.         // Разбиваем действия, которые может делать пользователь на массив
  10.         $permission = explode(',', $_SESSION['user']['access']);
  11.         // Проверяем на наличие действия в массиве, если есть, вернем true
  12.         if (in_array($action, $permission)) return true;
  13.         // Иначе вернем false
  14.         else return false;
  15. }
  16.  
  17. // Пример использования
  18. if (checkPermission('add_comments')){
  19.         // Доступ открыт, в данном случае выводим форму добавления комментариев, ну и остальные действия
  20.         echo 'Access granted';
  21. }
  22. // Доступ закрыт, сообщаем об этом пользователю
  23. else echo 'Access denied';
  24.  

(Отредактировано автором: 26 Января, 2013 - 21:30:10)

 
 Top
Fetis
Отправлено: 26 Января, 2013 - 21:40:44
Post Id



Частый гость


Покинул форум
Сообщений всего: 153
Дата рег-ции: Дек. 2012  
Откуда: Киров, Россия


Помог: 0 раз(а)




Либо же можно создать в этой таблице `users` пару столбцов в БД(например admin, moder) и назначать 1 или 0.
SQL: Если 1, то подгружай то-то админское или модерское
Если пусто или 0, то обычный юзер.

Но опять же, с новом таблицей получается понятнее и рациональней
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB