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 :: Авторизациz на PHP

 PHP.SU

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


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

> Без описания
vanya_sl
Отправлено: 11 Июля, 2013 - 23:14:21
Post Id



Частый гость


Покинул форум
Сообщений всего: 131
Дата рег-ции: Июль 2013  


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




Вот изучаю уже неделю пхп и мускул, и хочу попрактиковаться. Решил написать простую админку, с добавлением записей и т.д.
Но не могу кое-что понять. Авторизацию писал точно как на Хабре - http://habrahabr[dot]ru/post/13726/
Все получилось, все осознал, только ... вот например я зарегистрировался (как админ) зашел в админку (check.php-проверка) увидел "Привет, admin. Все работает!" Но не понимаю, как дальше подключать нужные страницы в админку. То есть если админ авторизовался, он там делать различные действия в админке. Как правельно их подключить (например страницу "добавление записи") что бы не авторизован пользователь не видел ее, а авторизованный видел.
Как-то так ... Подмигивание

----
Впринципе в check.php файле уже есть проверка, и если пользователь авторизован, то ему выводится сообщение "Привет, admin. Все работает!", если нет, то нет. Но как мне подсоединить правельно страницы с проверкой такой же. Если авторизованный, то мы видим поле "Добавить запись". Нажимаем и перенаправление на страницу добавления записи.

(Отредактировано автором: 11 Июля, 2013 - 23:19:54)

 
 Top
stas0
Отправлено: 11 Июля, 2013 - 23:23:52
Post Id



Частый гость


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


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

[+][+][+]


если вы хотите создать страницу доступную только для админа - делайте ее для админа, а если для обычных пользователей - создайте для них отдельные доступные страницы.
Создайте правильные выражение для этого(адимн: супер засекреченный пароль(md5))
 
 Top
vanya_sl
Отправлено: 11 Июля, 2013 - 23:31:11
Post Id



Частый гость


Покинул форум
Сообщений всего: 131
Дата рег-ции: Июль 2013  


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




stas0 пишет:
если вы хотите создать страницу доступную только для админа - делайте ее для админа, а если для обычных пользователей - создайте для них отдельные доступные страницы.
Создайте правильные выражение для этого(адимн: супер засекреченный пароль(md5))


не понимаю..
я как раз ищу способы как сделать доступными страницы в админке для админа .. ориентируясь по этому примеру с авторизацией
 
 Top
teddy
Отправлено: 11 Июля, 2013 - 23:33:42
Post Id


Участник


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


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




vanya_sl
Самое время начать изучение сессий
 
 Top
vanya_sl
Отправлено: 11 Июля, 2013 - 23:36:56
Post Id



Частый гость


Покинул форум
Сообщений всего: 131
Дата рег-ции: Июль 2013  


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




teddy пишет:
vanya_sl
Самое время начать изучение сессий


ну в примере с Хабра авторизация основана на cookies
 
 Top
teddy
Отправлено: 11 Июля, 2013 - 23:41:26
Post Id


Участник


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


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




vanya_sl
Причем тут примеры на хабре... сессии вам нужны будут, сессии... Так на пальцах не объяснишь, вам нужно просто изучить их и понять чем данное полезно... Если авторизация сделана на куках, это не мешает вам использовать сессии для определения ролей пользователя в вашем приложении
 
 Top
vanya_sl
Отправлено: 11 Июля, 2013 - 23:47:57
Post Id



Частый гость


Покинул форум
Сообщений всего: 131
Дата рег-ции: Июль 2013  


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




teddy пишет:
vanya_sl
Причем тут примеры на хабре... сессии вам нужны будут, сессии... Так на пальцах не объяснишь, вам нужно просто изучить их и понять чем данное полезно... Если авторизация сделана на куках, это не мешает вам использовать сессии для определения ролей пользователя в вашем приложении

ну это понятно .. но можно же обойтись в етом примере без сессий ... у меня поставлена ​​конкретная задача ... и авторизация проходит через куки.. как мне здесь поступить?
 
 Top
stas0
Отправлено: 11 Июля, 2013 - 23:49:00
Post Id



Частый гость


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


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

[+][+][+]


Цитата:
teddy: вам нужно просто изучить их

согласен с вами. Нужно выучить сначала.
как говорят: "Кто спешит, тот людей рассмешит".
так что, учите

(Отредактировано автором: 11 Июля, 2013 - 23:49:15)

 
 Top
teddy
Отправлено: 11 Июля, 2013 - 23:51:46
Post Id


Участник


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


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




vanya_sl
На здоровье, пусть через куки. Попробуйте сделать так - при авторизации из БД выбирайте так же поле role, которое определяет роль пользователя в приложении. Если нет role, то создайте. Далее при успешной авторизации записывайте результат выборки для авторизованного пользователя в сессию. А потом уже проверяйте при помощи if else сессию. Если в сессии роль админа, показываем то, что должен видеть админ. Как то так
 
 Top
vanya_sl
Отправлено: 12 Июля, 2013 - 00:00:12
Post Id



Частый гость


Покинул форум
Сообщений всего: 131
Дата рег-ции: Июль 2013  


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




teddy пишет:
vanya_sl
На здоровье, пусть через куки. Попробуйте сделать так - при авторизации из БД выбирайте так же поле role, которое определяет роль пользователя в приложении. Если нет role, то создайте. Далее при успешной авторизации записывайте результат выборки для авторизованного пользователя в сессию. А потом уже проверяйте при помощи if else сессию. Если в сессии роль админа, показываем то, что должен видеть админ. Как то так


ну в принципе этот функционал уже сделан ... т.е. если админ авторизованный он видит
PHP:
скопировать код в буфер обмена
  1. print "Привет, ".$userdata['user_login'].". Всё работает!";

если нет то
PHP:
скопировать код в буфер обмена
  1. print "Хм, что-то не получилось";

вопрос в том как мне авторизованном админу подсовывать страницы другие, с полями управления и редактирования в админке. (он зашел в админку-нажал добавить запись-перенаправление на страницу "добавляет запись") вопрос стоит в том как правельно подключить страницы добавления записи, чтобы они были видны только авторизованном админу а не всем пользователям которые зайдут по http://сайт[dot]ру/admin/add_n.php
 
 Top
stas0
Отправлено: 12 Июля, 2013 - 00:05:35
Post Id



Частый гость


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


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

[+][+][+]


1: добавлять вручную(что не очень удобно).
2: делать спец формы для добавления записи и прочего(но над этим надо помучиться Радость )
 
 Top
DelphinPRO
Отправлено: 12 Июля, 2013 - 00:06:31
Post Id



Активный участник


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


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




проверку авторизации оформите в виде функции

PHP:
скопировать код в буфер обмена
  1. function is_auth()
  2. {
  3.     if (isset($_COOKIE['id']) and isset($_COOKIE['hash']))
  4.     {  
  5.         $query = mysql_query("
  6.            SELECT *,INET_NTOA(user_ip)
  7.            FROM users
  8.            WHERE user_id = '".intval($_COOKIE['id'])."'
  9.            LIMIT 1
  10.        ");
  11.         $userdata = mysql_fetch_assoc($query);
  12.  
  13.         if(($userdata['user_hash'] !== $_COOKIE['hash'])
  14.           or ($userdata['user_id'] !== $_COOKIE['id'])
  15.           or (($userdata['user_ip'] !== $_SERVER['REMOTE_ADDR'])
  16.             and ($userdata['user_ip'] !== "0"))
  17.         ){
  18.             setcookie("id", "", time() - 3600*24*30*12, "/");
  19.             setcookie("hash", "", time() - 3600*24*30*12, "/");
  20.             //print "Хм, что-то не получилось";
  21.         }
  22.         else
  23.         {
  24.             //print "Привет, ".$userdata['user_login'].". Всё работает!";
  25.             return true;
  26.         }
  27.     }
  28.     else
  29.     {
  30.         //print "Включите куки";
  31.     }
  32.     return false;
  33. }

поместите ее в отдельный файл.
Потом на всех страницах, где требуется авторизация, подключайте этот файл и вызывайте функцию
PHP:
скопировать код в буфер обмена
  1. include 'check_auth.func.php';
  2. if (is_auth()) {
  3.   // Действия для авторизованного пользователя
  4. }
  5. else {
  6.   // Действия для неавторизованного пользователя
  7.   // или просто редирект на форму логина или главную страницу
  8. }


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
teddy
Отправлено: 12 Июля, 2013 - 00:17:20
Post Id


Участник


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


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




vanya_sl
В файле, где находится код админки, во первых сделайте проверку на наличие авторизации пользователя. Если есть авторизация(по ролям смотрите) и текущее значение роли == роли админа, то в условный блок пишем код, который должен видеть админ. Иначе редирект на главную страницу сайта.

По поводу отображения, можно конечно по разному, тут главное идею понять, например вот так:

PHP:
скопировать код в буфер обмена
  1. if($_SESSION['role'] == "admin")
  2. {
  3.     include "admin.php";
  4. }


или вместо include;

echo "<a href='addnews.php'>Добавить заметку</a>";

а в addnews.php проверяем на наличие роли админа, если ее нет, то соответственно исключаем попадение в админку при помощи редиректа, например...

Надеюсь идея понятна
 
 Top
DelphinPRO
Отправлено: 12 Июля, 2013 - 00:23:09
Post Id



Активный участник


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


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




ну что вы в самом деле про роли ему втираете? Улыбка человек только начал изучать принципы авторизации. у него задача показывать страницы авторизованному пользователю, и не показывать неавторизованному.
Для этого вполне достаточно проверки из его check.php. А чтобы было удобнее - засунуть всю эту проверку в функцию.


— Научите ездить на велосипеде!
— Фигня, учись сразу на автомобиле!


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
teddy
Отправлено: 12 Июля, 2013 - 00:26:45
Post Id


Участник


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


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




DelphinPRO
vanya_sl пишет:
вопрос в том как мне авторизованном админу подсовывать страницы другие, с полями управления и редактирования в админке. (он зашел в админку-нажал добавить запись-перенаправление на страницу "добавляет запись") вопрос стоит в том как правельно подключить страницы добавления записи, чтобы они были видны только авторизованном админу а не всем пользователям которые зайдут по



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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB