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 :: Хранение данных пользователя [6]

 PHP.SU

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


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

> Описание: оцените вариант
Hapson
Отправлено: 20 Августа, 2013 - 18:06:59
Post Id



Посетитель


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


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

[+]


LIME пишет:
Vinyl пишет:
Или все же ТС пишет авторизацию на веримегахайлоад
нет ...он пишет авторизацию в учебных целях
и правильно делает
и так полно тех кто пишет "лишь бы работало"

Да да Улыбка
Vinyl
Никто не отрицает ваш вариант Улыбка
Просто я хочу избавиться от лишнего запроса. Он действительно лишний. Зачем каждый раз проверять некий токен и делать выборку полей, если можно держать их в сессии. Токен тоже в сессии - рядом со свойствами юзера. Токен состоит из какого-то свойства, плюс ip и например юзер-агент.

ваш вариант тоже нормальный. Может и я так сделаю - кто знает. Пока хочу сделать без запросов и выборок при каждом старте скрипта. Один раз выбрали и все, пишем это в свойства объекта и кидаем объект в сессию. Дальше проверяем наш токен в свойствах юзера и заполняем свойства из сессии.

А уж если надо удалить пользователя, то лезем в БД за его session_id и обнуляем его сессию


-----
ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
 
 Top
Vinyl
Отправлено: 20 Августа, 2013 - 18:13:39
Post Id



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


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


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




Hapson, а Вы думаете, сессии не дают нагрузку? Нате!


-----
Пессимисты пользуются die(), оптимисты - exit()
 
 Top
Hapson
Отправлено: 20 Августа, 2013 - 18:21:46
Post Id



Посетитель


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


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

[+]


Vinyl
Да, я читал об этом. В самом начале (когда начал писать свой блог) я стартовал сессию только для тех юзеров, которые входят на сайт.
Однако потом озадачился вопросом передачи данных между скриптами. Чтобы не плодить везде session_start, я просто один раз стартую сессию для всех.
Но теперь я опять об этом думаю. Стартовать сессию для всех - не есть хорошо. Но ведь сессия нужна не только пользователям, но и самому движку, для передачи данных между перезагрузками страниц. Я уже думал сделать передачу данных через запись/чтение/удаление ini файлов. Но и это говорят не оптимальный вариант...


-----
ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
 
 Top
Squirrel
Отправлено: 20 Августа, 2013 - 20:54:39
Post Id


Забанен


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


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

[+]


Саныч пишет:
К тому же, что вы так этих двух запросов к базе при удалении пользователя боитесь, что готовы на каждый запрос дергать файл и искать в нем айдишник?

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

Саныч пишет:
Передаем только userID. Получили, зачитали sessID, запустили сессию, очистили ее, удалили юзера из БД. Два запроса, где вы третий выкопали, я не понимаю.
А из самой базы кто удалять/(помечать, что удаленный) будет?

Саныч пишет:
Так что ж вы с нами, рукожопыми, тут возитесь, а?!

Да жалко мне вас рукожопых просто.

Hapson пишет:
Товарищи, ну тема так и не раскрыта. Как поддерживать авторизацию и корректно удалять/банить пользователя? При этом не трогая БД при простой навигации по сайту.

Ну ты определись. При простой навигации, считай что это гость, и проблемы не будет.
А вот когда пользователь запросит что-то секретное, вот тогда и дерни БД, и проверь его статус. Не бойся ты этих запросов. И при "простой навигации" сессии - это зло.

Hapson пишет:
При следующем входе обновляем поле session. Если пользователь входит по куке, то делаем тоже самое - обновляем session_id в базе.

Что значит "входит по куке"? Типа ты пользователю вешаешь куку позволяющую его опознать в твоей БД, как это сделано на этом форуме например?
То есть он входит, кука пользователя есть, а куки сессии нет, я правильно поняла?
Тогда, да, ты прав. Подумай еще о такой фигне, что пользователь одновременно зашел с сразу с браузеров/с различных профилей. Будет две сессии на одного пользователя.

Hapson пишет:
Неужели нет иного способа реализации статуса кроме записи и сравнения времени? Ведь это опять запрос к БД при каждом запуске скрипта.

А как ты еще определишь? Есть время запроса чего-либо пользователем. Что дальше делает пользователь, без телепата ты никак не узнаешь. По этому и единственный вариант, хранить время последнего действия. И если оно меньше определенного значения, то считаешь, что пользователь в онлане, хотя он может давно и компьютер то выключил и мирно пьет пиво у подъезда.

Hapson пишет:
В базу пишется session_id, в базу пишутся сессионные данные... так? Зачем? А как удалять данные при выходе пользователя, если он просто закрыл окно?

Никак. Или писать собственный сборщик мусора. Но для этого как минимум Shell нужен.
Да и не стоит тебе этим заморачиваться.

(Отредактировано автором: 20 Августа, 2013 - 20:57:00)

 
 Top
Hapson
Отправлено: 20 Августа, 2013 - 21:17:00
Post Id



Посетитель


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


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

[+]


Squirrel
Squirrel пишет:
Ну ты определись. При простой навигации, считай что это гость, и проблемы не будет.
А вот когда пользователь запросит что-то секретное, вот тогда и дерни БД, и проверь его статус. Не бойся ты этих запросов. И при "простой навигации" сессии - это зло.

Цель этой темы - реализация поддержки авторизации пользователя при его серфинге по сайту без необходимости выборок из БД при каждом запуске скрипта.

Я не боюсь запросов, я стараюсь их минимизировать или максимально ускорить.

С куками да, все верно. Есть кука, она правильная - welcome, нет куки или она неправильная - юзер гость.

Squirrel пишет:
И при "простой навигации" сессии - это зло.

Что вы поняли под "простой навигацией"? Я имею ввиду, что юзер авторизовался и бродит по сайту. Я хочу поддерживать его авторизацию, но не хочу ради этого дергать БД при каждом действии юзера.


-----
ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
 
 Top
Страниц (6): « 1 2 3 4 5 [6]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB