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]   

> Без описания
товарищ Саахов
Отправлено: 23 Декабря, 2012 - 11:25:11
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Нояб. 2012  


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




Привет подскажите, хочу сделать авторизацию, что бы администратор имел доступ ко всем страницам, а обычные пользователи нет.
создал три таблицы:

users:user_id,user_login,user_pass
groups: id,name
user_groups:users_id,groups_id в ней данные из первой и второй таблицы.

далее идет login.php

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. // подключение к БД
  4.  
  5. if(isset($_POST['submit']))
  6. {   $query = mysql_query("SELECT user_id, user_pass FROM users WHERE    user_login='".mysql_real_escape_string($_POST['login'])."' LIMIT 1");
  7.     $data = mysql_fetch_assoc($query);
  8.        if($data['user_pass'] === md5(md5($_POST['password'])))
  9.     {     $hash = md5(generateCode(10));
  10.            
  11.  
  12.         mysql_query("UPDATE users SET user_hash='".$hash."' WHERE user_id='".$data['user_id']."'");
  13.  
  14.        
  15.  
  16. header('Location:\cards\cards_pr\scripts\bridge.php');
  17.        
  18.                 exit();
  19.  
  20.     }
  21.  
  22.     else
  23.  
  24.     {
  25.  
  26.         print "Вы ввели неправильный логин/пароль";
  27.  
  28.     }
  29.  
  30. }
  31.  
  32. ?>
  33.  
  34. <form method="POST">
  35.  
  36. Логин <input name="login" type="text"><br>
  37.  
  38. Пароль <input name="password" type="password"><br>
  39.  
  40. <input name="submit" type="submit" value="Войти">
  41.  
  42. </form>
  43. ?>
  44.  


после того как пользователь залогинился он переходит на bridge.php

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. require '\database_connection.php';
  4.  
  5. mysql_query("SELECT groups_id FROM user_groups WHERE users_id=".mysql_real_escape_string($_SESSION['user_id']));
  6. $query = mysql_query("SELECT groups_id FROM user_groups WHERE users_id= mysql_real_escape_string($_SESSION['user_id'])");
  7.   $auto_gr = mysql_fetch_assoc($query);
  8.    if($auto_gr['groups_id'] ==1){
  9.    header('Location:\show_error.php');
  10. exit();
  11. }else{
  12. header('Location:\show_all.php');
  13. exit();
  14. }
  15.  
  16. ?>
  17.  

где по идее должна проходить сверка id пользователя с группой, и если он относится к группе администратор, то получает доступ к одной странице, если он в группе пользователи, то перенаправляется на другую.
проблема в том, что ничего из этого не работает.
Подскажите в чем ошибка? спс
 
 Top
SkaN
Отправлено: 23 Декабря, 2012 - 11:50:23
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Март 2011  


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




Не уверен, конечно, но почему у вас бекслеш в путях? заголовок Location по-моему понимает обычные слеши.
Также можете проверить, где вообще скрипт обрывается (повставляйте где-нибудь print("123") и посмотрите, где они закончат выводиться или установите профилировщик).
А еще я бы посоветовал вам немного изменить структуру БД: группу пользователя можно писать прям в записи юзера, тогда можно группу запрашивать одним запросом вместе с логином и паролем.
 
 Top
товарищ Саахов
Отправлено: 23 Декабря, 2012 - 22:40:52
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Нояб. 2012  


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




ок учту спс, по поводу Location вроде нормально понимает, хотя у меня еще есть подозрения на запрос.
 
 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