![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
gta4kv |
|
|||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: 21 Всего: 91 |
Всем привет!
Есть задача - ограничить кол-во пользователей на сайте. Например 5 пользователей одновременно максимум, причем "сессия" пользователя длиться 12 часов а не 15 минут. Есть вариант как реализовать это без базы? заранее благодарен Это сообщение отредактировал(а) gta4kv - 18.4.2008, 23:03 |
|||
|
||||
awers |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: 21 Всего: 31 |
gta4kv, собственно пара вопросов:
1) Почему без базы (ведь сериализованный массив или текстовый файл тоже можно использовать как базу) 2) Твое понимание слова "Одновременно". Вот смотри, ведь физически к одному ресурсу невозможно обращение более чем 1го клиента ))) 3) Почему сессия на 12 часов? Т.е. получается очень некрасиво, ведь человек не закрывший сессию и ушедший с сайта через 15 минут после того как ушел с него - блокирует свое место на 11 часов! ) |
|||
|
||||
gta4kv |
|
|||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: 21 Всего: 91 |
1) можно вообщем то и с базой
2) Одновременное нахождение человеков на сайте ![]() 3) так надо ![]() |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Тупо влоб!
5 файлов с именами user1... user5. Вместо (вместе с) идентификатором юзера передаем еще и индекс файла. Если юзер активизировался - делаем touch на этот файл. Если юзер новый - пытаемся найти файл со временем, старше чем 12 часов, не нашли - облом... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
awers |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: 21 Всего: 31 |
Ну тогда теория.
Проверяем кол-во записей в таблице, если < 5 - показываем страницу авторизации, иначе отсылаем на страницу с ошибкой. При успешной авторизации в массив добавляем запись: SESSION ID, TIME START ... Тут же все просто |
|||
|
||||
gta4kv |
|
||||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: 21 Всего: 91 |
Решил сделать как предложил ksnk. Но что-то с этим временем запутался...
Это проходит при логинации
Это при каждом заходе:
В файле записано время когда создавался файл, а т.е зашел юзер. Как сделать что бы когда прошло $x часов - файл удалялся? |
||||
|
|||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Эта проверка у тебя должна стоять при заходе любого пользователя. Т.е. смотришь какой из файлов имеет дату <= сейчас - $x часов и удаляешь все. Это сообщение отредактировал(а) Fortop - 19.4.2008, 16:07 -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
gta4kv |
|
|||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: 21 Всего: 91 |
Кошмар, ваще мозг на время не варит.
Добавлено через 10 секунд правильно ли это? Добавлено через 13 минут и 25 секунд maxTime = 1 |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
В общем-то да, только тебе надо это для всех 5ти файлов делать сразу.
Т.е. все которые попали в это условие - убить. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
gta4kv |
|
|||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: 21 Всего: 91 |
Fortop, ок. спасибо.
опять со временем проблема, не могу вычислить:
$this->maxTime = 1; как вычислить нормально сколько осталось до конца сессии? |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
-------------------- Мир это Я. Живее всех живых. |
|||
|
||||
gta4kv |
|
|||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: 21 Всего: 91 |
Fortop, нет. "сессия" образное говорил.. просто "сеанс" пользователя, который не прекращается $x часов
Это сообщение отредактировал(а) gta4kv - 19.4.2008, 20:38 |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Да, какая разница образно или нет
![]() -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
gta4kv |
|
||||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: 21 Всего: 91 |
Fortop, ну и когда остается час, выдает:
Честно туплю :( скину щас весь код...
Это сообщение отредактировал(а) gta4kv - 19.4.2008, 21:42 |
||||
|
|||||
Fortop |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
gta4kv, Тебе время надо в часах? или минутах?
Это что?
Минуты ты просто игнорируешь я так понимаю Так зачем ты их потом выводишь? Это раз. Два. Сделай вместо этого
вот это, и посмотри.
Три Правильный код расчета оставшегося времени.
Это сообщение отредактировал(а) Fortop - 19.4.2008, 23:31 -------------------- Мир это Я. Живее всех живых. |
||||||||
|
|||||||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |