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 :: Авторизация [2]

 PHP.SU

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


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

> Описание: Авторизация админа (сессии, куки и еще пару вопросов) - посмотрите код
caballero
Отправлено: 15 Июня, 2013 - 19:48:39
Post Id


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


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




Цитата:
Хм а почему?

потому что этого более чем достаточно

Цитата:
ну файл с данными же останется на сервере, или нет?

какой файл с какими данными


чего всем чешутся руки прибивать сессию?
в сессии могут быть нужные данные не относящиеся к авторизации.

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



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Hapson
Отправлено: 15 Июня, 2013 - 19:48:54
Post Id



Посетитель


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


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

[+]


Короче чета я намутил с авторизацией... кучу файлов понаподключал, теперь что-то сам ничего не пойму...
(Добавление)
Как оно вообще должно быть?

пользователь открывает файл site.ru/admin/index.php
сразу идет проверка на присутствие в сессии id
если он есть и статус юзера с этим id равен 1, то показываем админку
если id есть но статус пользователя с этим id не равен 1, то редирект на главную
если id в сессии нет, то идем дальше и проверяем ввел ли пользователь логин-пароль в форму
если ввел, то проверяем, есть ли эта пара в базе
если есть, то смотрим какой статус у юзера с данной парой логин-пароль
если статус 1, то показываем админку
если статус не 1, то редирект на главную

в шаблоне админки сделать ссылку на файл exit.php, в котором будет unset($_SESSION['id']) и редирект на... форму авторизации например.

Правильно?

То есть нужны 4 файла:
index.php - через него вход и к нему подключаются остальные
auth.php - файл где проверяется наличие id в сессии и логин-пароль из формы
index_adm.php - шаблон админки
exit.php - удаление id из сессии


-----
ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
 
 Top
AlexAnder
Отправлено: 15 Июня, 2013 - 20:24:04
Post Id



Частый посетитель


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


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




Цитата:
в сессии могут быть нужные данные не относящиеся к авторизации

например?
(Добавление)
Цитата:
какой файл

sess_tv3scdo636865pu2ks4mmuca46
Цитата:
с какими данными

user_id|i:1:1;


-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
caballero
Отправлено: 15 Июня, 2013 - 20:28:14
Post Id


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


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




Цитата:
например?

по вашему мкханизм сессий в PHP служит исключительно для того чтобы туда записывать id юзера?
(Добавление)
Цитата:
sess_tv3scdo636865pu2ks4mmuca46

И?


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
AlexAnder
Отправлено: 15 Июня, 2013 - 20:31:45
Post Id



Частый посетитель


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


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




caballero пишет:
по вашему мкханизм сессий в PHP служит исключительно для того чтобы туда записывать id юзера?

нет конечно, а что можно там оставить/хранить, после того как пользователь выполнит логаут?

(Отредактировано автором: 15 Июня, 2013 - 20:32:10)



-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
Hapson
Отправлено: 15 Июня, 2013 - 20:33:29
Post Id



Посетитель


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


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

[+]


Я может не до конца понял принцип работы сессии...
А что есть в сессии, после того как она создана, но в нее еще ничего не передали?


-----
ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
 
 Top
caballero
Отправлено: 15 Июня, 2013 - 20:38:00
Post Id


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


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




Цитата:
нет конечно, а что можно там оставить/хранить, после того как пользователь выполнит логаут?

все остальное не касающееся авторизации

Цитата:
А что есть в сессии, после того как она создана, но в нее еще ничего не передали?

сессия ничего не знает ни о каких передачах


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
teddy
Отправлено: 15 Июня, 2013 - 20:44:13
Post Id


Участник


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


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




Hapson пишет:
Я может не до конца понял принцип работы сессии...

Похоже на то Улыбка почитайте про сессии, попрактируйтесь отдельно по сессиям...

Например встретил у вас такой код(весь не читал, в алгоритм не вникал):
PHP:
скопировать код в буфер обмена
  1. unset($_SESSION['id']);
  2. unset($_SESSION['login']);
  3. unset($_SESSION['password']);
  4. unset($_SESSION['status']);
  5.  

Какой смысл делать unset первые три сессии, если в итоге у вас вызывается session_destroy который удалит полюбому все что есть выше?
Цитата:
session_destroy - разрушает все данные, зарегистрированные в сессии.
 
 Top
AlexAnder
Отправлено: 15 Июня, 2013 - 20:48:59
Post Id



Частый посетитель


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


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




caballero пишет:
все остальное не касающееся авторизации

Вот мне и интересно, что это может быть. Ответьте, если Вас не затруднит Улыбка

(Отредактировано автором: 15 Июня, 2013 - 20:50:10)



-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
teddy
Отправлено: 15 Июня, 2013 - 20:58:24
Post Id


Участник


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


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




AlexAnder пишет:
Вот мне и интересно, что это может быть.

Ну сессии же используются не только для авторизации. Лежать в них может и многое другое... DeepVarvar уже привел пример )

Ну или например на сайте есть другие сессионные данные. Тесты какие нибудь к примеру, пошаговые... которые не требуют авторизации. Вы же не будете записывать каждый шаг в БД? А вдруг пользователи на половину прервут тест? Нужно записать только итоговое значение... И вот.. если сессия уничтожится, то как пользователь пройдет тест, если сессию вырубили? )

Цитата:
session_destroy() разрушает все данные, ассоциированные с текущей сессией

Открыть/закрыть браузер? ) Не факт что каждый пользователь интернета знает об этом...

Ну или может я ошибаюсь? Подскажите, если я что то сказал не так... Растерялся
 
 Top
caballero
Отправлено: 15 Июня, 2013 - 21:01:59
Post Id


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


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




Цитата:
Вот мне и интересно, что это может быть. Ответьте, если Вас не затруднит

попробуйте начать програмировать - сразу узнаете и это и много другого интересного.

это все равно что спросить сколько будет дважды два четыре


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
AlexAnder
Отправлено: 15 Июня, 2013 - 21:04:45
Post Id



Частый посетитель


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


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




caballero пишет:
Цитата:
Вот мне и интересно, что это может быть. Ответьте, если Вас не затруднит

попробуйте начать програмировать - сразу узнаете и это и много другого интересного.

это все равно что спросить сколько будет дважды два четыре

ясно
(Добавление)
Спойлер (Отобразить)


-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
caballero
Отправлено: 15 Июня, 2013 - 21:07:32
Post Id


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


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




Цитата:
на php сложно программировать

а кто вас заставляет делать такую непосильную работу
(Добавление)
Цитата:
Какой смысл делать unset первые три сессии, если в итоге у вас вызывается session_destroy который удалит полюбому все что есть выше?

писать глупые посты тоже нет смысла но ты это делаешь с завидной регулярностью


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
teddy
Отправлено: 15 Июня, 2013 - 21:12:46
Post Id


Участник


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


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




caballero пишет:
писать глупые посты тоже нет смысла но ты это делаешь с завидной регулярностью

А в чем конкретно глупость? Улыбка ТС удаляет сессии по отделности а потом разом ломает всю сессию, вот мне и стало интересно, в чем прикол? Ведь последняя функция и так все удалит, или я ошибаюсь? если да, то в чем?
 
 Top
caballero
Отправлено: 15 Июня, 2013 - 21:24:55
Post Id


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


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




Цитата:
Ведь последняя функция и так все удалит, или я ошибаюсь? если да, то в чем?

в том что не надо вызывать такие функции.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Страниц (4): « 1 [2] 3 4 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB