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
Форумы портала PHP.SU :: Версия для печати :: Авторизация в в течение заданного количества дней подряд
Форумы портала PHP.SU » PHP » Программирование на PHP » Авторизация в в течение заданного количества дней подряд

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

1. dreamfactor - 05 Декабря, 2014 - 11:09:12 - перейти к сообщению
Не могу правильно продумать как все реализовать.
Нужно сохранять пользователя в базе, если он допустим производил авторизацию на сайте 3 дня подряд. С чего начать вообще ?
p.s пишу на Phalcon фреймворке
2. Viper - 05 Декабря, 2014 - 11:17:00 - перейти к сообщению
dreamfactor пишет:
Нужно сохранять пользователя в базе, если он допустим производил авторизацию на сайте 3 дня подряд.
подробнее с этого места.
Если авторизация через сторонние системы, то в чем проблема? Считаем кол-во авторизаций юзера за нужный период и при превышении лимита(минимума) выполняем какие-то действия.

Если через собственную систему авторизации, то не понятно что нужно вообще.
3. dreamfactor - 05 Декабря, 2014 - 11:28:46 - перейти к сообщению
Viper пишет:
dreamfactor пишет:
Нужно сохранять пользователя в базе, если он допустим производил авторизацию на сайте 3 дня подряд.
подробнее с этого места.
Если авторизация через сторонние системы, то в чем проблема? Считаем кол-во авторизаций юзера за нужный период и при превышении лимита(минимума) выполняем какие-то действия.

Если через собственную систему авторизации, то не понятно что нужно вообще.


Нет, авторизация через собственную систему, то есть пользователь заходит на сайт 3 дня подряд и после этого только сможет принят участие в турнире ( то есть сохранить его в бд).
4. IGORtrue - 05 Декабря, 2014 - 11:34:14 - перейти к сообщению
Может записывать дату, например
22.12.2014
23.12.2014
24.12.2014
Каждый раз при заходе проверять даты (условие, если текущая и последняя совпадают, то не записываем), если три последние отличаются на один день, то
flag = 1
5. dreamfactor - 05 Декабря, 2014 - 11:40:45 - перейти к сообщению
IGORtrue пишет:
Может записывать дату, например
22.12.2014
23.12.2014
24.12.2014
Каждый раз при заходе проверять даты (условие, если текущая и последняя совпадают, то не записываем), если три последние отличаются на один день, то
flag = 1


а даты в базу чтоли записывать ? не вариант мне кажется
6. Viper - 05 Декабря, 2014 - 15:09:48 - перейти к сообщению
dreamfactor у вас есть id юзера. При первом заходе сохраняете когда он первый раз вошел(дату) и ставите счетчик +1. Далее сверяете если текущая дата равна "начальная +2" и счетчик равен 3, выполняете нужные действия.
7. Dastor - 05 Декабря, 2014 - 15:20:03 - перейти к сообщению
dreamfactor, а логи авторизации не пишутся в бд?
8. dreamfactor - 05 Декабря, 2014 - 16:45:46 - перейти к сообщению
Viper пишет:
dreamfactor у вас есть id юзера. При первом заходе сохраняете когда он первый раз вошел(дату) и ставите счетчик +1. Далее сверяете если текущая дата равна "начальная +2" и счетчик равен 3, выполняете нужные действия.


ок, это я понял, а как сделать если допустим у меня указывается дата там с 05.12.14 по 08.12.14 , то как тогда ? нужно именно в этот период считывать
9. Viper - 05 Декабря, 2014 - 16:56:09 - перейти к сообщению
dreamfactor изначально вы спрашивали про 3 дня. А это константа.
То что вы хотите сделать сейчас(за период) без логирования будет сложновато. Ну или на SQL делать выборку за период по юзеру.
10. IGORtrue - 05 Декабря, 2014 - 19:18:46 - перейти к сообщению
Viper пишет:
dreamfactor у вас есть id юзера. При первом заходе сохраняете когда он первый раз вошел(дату) и ставите счетчик +1. Далее сверяете если текущая дата равна "начальная +2" и счетчик равен 3, выполняете нужные действия.

Интересное решение, спасибку тыкнул.
11. dreamfactor - 05 Декабря, 2014 - 19:32:52 - перейти к сообщению
Viper пишет:
dreamfactor изначально вы спрашивали про 3 дня. А это константа.
То что вы хотите сделать сейчас(за период) без логирования будет сложновато. Ну или на SQL делать выборку за период по юзеру.


можно поподробней ? Улыбка
12. Viper - 05 Декабря, 2014 - 20:42:22 - перейти к сообщению
dreamfactor
как пример:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT blabla
  2. FROM bloblo
  3. WHERE (bleble BETWEEN start_date AND end_date) AND counter = 3
13. dreamfactor - 05 Декабря, 2014 - 22:22:25 - перейти к сообщению
Viper пишет:
dreamfactor
как пример:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT blabla
  2. FROM bloblo
  3. WHERE (bleble BETWEEN start_date AND end_date) AND counter = 3


у меня есть таблица с событиями

CODE (SQL):
скопировать код в буфер обмена
  1. CREATE TABLE lucky (
  2.   id int(11) NOT NULL AUTO_INCREMENT,
  3.   start_date date NOT NULL,
  4.   end_date date NOT NULL,
  5.   winning text NOT NULL,
  6.   PRIMARY KEY (id)
  7. )


то есть есть только дата начала и дата окончания, как можно сделать учет авторизаций за этот промежуток ?
дата последнего посещения уже записывается в таблицу users.
14. Viper - 05 Декабря, 2014 - 22:43:05 - перейти к сообщению
dreamfactor пишет:
у меня есть таблица с событиями
мне это ни о чем не говорит.

А зачем вы усложнили себе жизнь с полем end_date? Можно было 1-но поле, а уже в запросе прибавлять нужное кол-во дней(месяцев/недель/лет...).
15. dreamfactor - 05 Декабря, 2014 - 22:51:52 - перейти к сообщению
Viper пишет:
dreamfactor пишет:
у меня есть таблица с событиями
мне это ни о чем не говорит.

А зачем вы усложнили себе жизнь с полем end_date? Можно было 1-но поле, а уже в запросе прибавлять нужное кол-во дней(месяцев/недель/лет...).


так в тз указано Ниндзя

 

Powered by ExBB FM 1.0 RC1