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 :: Хранение данных пользователя [3]
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
Ну навскидку - писать идентификатор сессии в табличку при отрытии, а при надобности дернуть его оттуда и удлаить\модифицировать непосредственно файл сессии
----- Чем больше узнаю, тем больше я не знаю.
Саныч
Отправлено: 19 Августа, 2013 - 00:21:30
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Помог: 62 раз(а)
DelphinPRO, а если такая схема. Пользователь авторизовуется, пишем в БД его sess_id. В саму сессию нужные данные. Потом, когда нам приспичит удалить пользовател, читаем это sess_id запускаем сессию с таким id и грохаем все данные в сессии, удаляем юзера из БД. Юзер заходит, сессия "пустая", авторизация не подтверждена. Все счастилвы...
----- Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
DelphinPRO
Отправлено: 19 Августа, 2013 - 01:03:05
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
Если мы запустим чужую сессию, своя не отвалится?
----- Чем больше узнаю, тем больше я не знаю.
Саныч
Отправлено: 19 Августа, 2013 - 01:37:16
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Помог: 62 раз(а)
DelphinPRO, потестил малость. Если нужно грохнуть данные в чужой сессии:
Вот такой костыль у меня получился. Все работает, как ожидалось, но почему-то мне такое решение не нравится
----- Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
Squirrel
Отправлено: 19 Августа, 2013 - 01:47:41
Забанен
Покинул форум
Сообщений всего: 147
Дата рег-ции: Авг. 2013
Помог: 4 раз(а)
[+]
DelphinPRO пишет:
Ну не так уж и просто ее подменить, не нагнетайте..
Легко. Достаточно обычно в ручную поставить всего 1 куку, или ручками поменять запись запроса. (Добавление) Саныч А заем тебе вообще грохать чужую сессию?
"Юзер заходит", проверяем, а существует ли такой юзер в BD, и если нет далее по тексту.
Если считаешь, что это слишком медленно, то создай еще одну BD с удаленными пользователями. Эта BD будет мизерная.
Саныч
Отправлено: 19 Августа, 2013 - 02:13:34
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Помог: 62 раз(а)
Squirrel пишет:
"Юзер заходит", проверяем, а существует ли такой юзер в BD, и если нет далее по тексту.
Так в этом и есть суть вопроса. Так нужно каждый раз делать запрос к БД. А мы тут обсуждаем, чтоб хранить данные пользователя в сессии, а в БД лезть только, когда он входит через форму или куки.
И встал вопрос, а что если пользователь авторизован и в этот момент админ его удаляет. Сессия то у него уже открыта, а в базу не лазит, т.е. не узнает что его уже нет...
----- Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
DelphinPRO
Отправлено: 19 Августа, 2013 - 02:31:44
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
Squirrel пишет:
Легко. Достаточно обычно в ручную поставить всего 1 куку, или ручками поменять запись запроса.
куку сначала скоммуниздить нужно
Саныч пишет:
Вот такой костыль у меня получился.
а я полез файл сессии удалять )
Так, наверное, можно и модифицировать данные, не завершая сессию? Например, админ повысил\понизил пользака в правах.
----- Чем больше узнаю, тем больше я не знаю.
Squirrel
Отправлено: 19 Августа, 2013 - 02:43:38
Забанен
Покинул форум
Сообщений всего: 147
Дата рег-ции: Авг. 2013
Помог: 4 раз(а)
[+]
Саныч пишет:
Так нужно каждый раз делать запрос к БД.
Squirrel пишет:
Если считаешь, что это слишком медленно, то создай еще одну BD с удаленными пользователями. Эта BD будет мизерная.
Причем под BD я понимаю именно BD, а не только то, что создают MySql или прочие.
Хоть массив в файле. Размер то МИЗЕРНЫЙ.
DeepVarvar
Отправлено: 19 Августа, 2013 - 02:49:01
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Помог: 62 раз(а)
DelphinPRO пишет:
Так, наверное, можно и модифицировать данные, не завершая сессию? Например, админ повысил\понизил пользака в правах.
А почему нет. Мы ж ее стартуем, а дальше делаем что хотим. При следующем запросе у пользователя будут новые права, без всяких перезаходов и дергания БД.
Squirrel пишет:
Причем под BD я понимаю именно BD, а не только то, что создают MySql или прочие.
То ли я дурак, то ли лыжи не едут. Т.е. вы мне предлагаете создать еще одну, отдельную, базу для пользователей? Зачем?! И чем это будет быстрее?..
----- Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
DelphinPRO
Отправлено: 19 Августа, 2013 - 03:02:35
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
А если серьезно, то я не понял, что именно вы подразумеваете под "базой данных", если это не только "база данных". Я правильно перефразировал ваше высказывание?
Покинул форум
Сообщений всего: 147
Дата рег-ции: Авг. 2013
Помог: 4 раз(а)
[+]
DelphinPRO пишет:
А если серьезно, то я не понял, что именно вы подразумеваете под "базой данных", если это не только "база данных".
Squirrel пишет:
оть массив в файле. Размер то МИЗЕРНЫЙ.
DelphinPRO
Отправлено: 19 Августа, 2013 - 06:46:38
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
Squirrel пишет:
оть массив в файле
Перечитайте весь топик. От начала.
----- Чем больше узнаю, тем больше я не знаю.
Squirrel
Отправлено: 19 Августа, 2013 - 08:24:34
Забанен
Покинул форум
Сообщений всего: 147
Дата рег-ции: Авг. 2013
Помог: 4 раз(а)
[+]
DelphinPRO пишет:
Перечитайте весь топик. От начала.
Тонко намекни, что именно я пропустила, и почему мой совет тебе не подходит.
Саныч пишет:
То ли я дурак, то ли лыжи не едут. Т.е. вы мне предлагаете создать еще одну, отдельную, базу для пользователей?
Наверное первое. Создавать отдельную базу для пользователей, я не предлагаю.
Squirrel пишет:
Если считаешь, что это слишком медленно, то создай еще одну BD с удаленными пользователями. Эта BD будет мизерная.
В этой базе ты будешь хранить только некий ID только удаленных пользователей за очень короткий период. Остальные данные там тупо не нужны, это же очевидно.
В сессии ты этот ID и так хранишь,
В основной BD этот ID у тебя уже есть.
И что-то мне подсказывает, что ты и про сессии опять не до конца. На что тебе уже тонко намекали. Сессия имеет некий период жизни, после чего сама закрывается, и все данные из нее удаляются. Первая ссылка из гугля: http://habrahabr.ru/post/28418/
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
Squirrel пишет:
Сессия имеет некий период жизни, после чего сама закрывается, и все данные из нее удаляются.
нет ...это не так
сохрани SID и подделав его зайдешь хоть через месяц после закрытия браузера(зависит от GC)
физически данные удаляются сборщиком мусора(GC)
эхехех...ну что за воинствующая амазонка)) (Добавление)
Squirrel пишет:
Если считаешь, что это слишком медленно, то создай еще одну BD с удаленными пользователями. Эта BD будет мизерная.
и чем это не сессия? ))
и кстати очень многие реализуют свой механизм сессий...в базе например
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.