За последние 24 часа нас посетили 19105 программистов и 1640 роботов. Сейчас ищут 933 программиста ...

Счетчик лайков, подскажите с чего начать

Тема в разделе "PHP для новичков", создана пользователем ivnphp, 19 ноя 2015.

  1. ivnphp

    ivnphp Новичок

    С нами с:
    11 окт 2015
    Сообщения:
    33
    Симпатии:
    0
    Добрый день.
    Подскажите с чего начать, единственное могу сказать, что хотел бы по начало, то бы лайки только ставили один раз в сутки с одного и того же ip.
    Авторизации ни какой нет и пока не будет. Поэтому думаю об уникальности, как быть?
    Если есть варианты кода, был бы благодарен.
    Думаю с чего начать.
    Спасибо.
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Лучше уж суперкуки
     
  3. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Можно ещё брать плату за лайк
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Авторизация есть?
     
  5. ivnphp

    ivnphp Новичок

    С нами с:
    11 окт 2015
    Сообщения:
    33
    Симпатии:
    0
    Делать думаю с помощью AJAX, но как организовать уникальность, хотя бы временную?!

    Добавлено спустя 39 минут 23 секунды:
    для начало думаю посмотреть:
    array('HTTP_X_REAL_IP','HTTP_CLIENT_IP','HTTP_X_FORWARDED_FOR','REMOTE_ADDR')
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Авторизация?
     
  7. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  8. ivnphp

    ivnphp Новичок

    С нами с:
    11 окт 2015
    Сообщения:
    33
    Симпатии:
    0
    авторизации нет!
     
  9. ivnphp

    ivnphp Новичок

    С нами с:
    11 окт 2015
    Сообщения:
    33
    Симпатии:
    0
    кончено авторизация снимает все вопросы, но хотелось бы, что бы счетчик работал для гостей.
    думаю сделать например так:
    зашел на страницу, получил куки.
    Если есть куки (уникальный), то голос можно поставить только один в течение например суток.
    Если нет куки, то голос можно поставить при условии, если нет, что то из
    Код (PHP):
    1. array('HTTP_X_REAL_IP','HTTP_CLIENT_IP','HTTP_X_FORWARDED_FOR','REMOTE_ADDR') 
    Если уже есть, что то из array('HTTP_X_REAL_IP','HTTP_CLIENT_IP','HTTP_X_FORWARDED_FOR','REMOTE_ADDR'), то есть вероятность, что кто то сидит на одном и том же ip или ломится через тот же прокси, таким например можно давать еще несколько шансов поставить голос.
    Т.е. например можно сравнивать REMOTE_ADDR с HTTP_USER_AGENT и HTTP_X_FORWARDED_FOR с HTTP_USER_AGENT, если есть разница, то давать шанс.
    Если REMOTE_ADDR и HTTP_X_FORWARDED_FOR пустые, то отклонять на право голоса.

    Добавлено спустя 19 минут 43 секунды:
    вобщем думаю по началу работать с REMOTE_ADDR и HTTP_USER_AGENT, остальное хранить для справочной информации, мб позже, что станет ясно, что делать с этим.
    Если не сложно прошу подсказать каким типом данных определить в базе REMOTE_ADDR??
     
  10. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Суперкуки решают проблему, тебе уже ссылку дали
     
  11. ivnphp

    ivnphp Новичок

    С нами с:
    11 окт 2015
    Сообщения:
    33
    Симпатии:
    0
    вобщем пока HTTP_USER_AGENT тоже в справочную информацию -))
    адрес добавляю пока, что вот так: INET_ATON(REMOTE_ADDR)

    как мне выделить сутки??? т.е. добавлял бы сразу, сколько секунд прошло с 1970
     
  12. Barbos

    Barbos Новичок

    С нами с:
    19 ноя 2015
    Сообщения:
    6
    Симпатии:
    0
    И прибавить 86400 (секунд в сутках)
     
  13. ivnphp

    ivnphp Новичок

    С нами с:
    11 окт 2015
    Сообщения:
    33
    Симпатии:
    0
    т.е. в базу добавлять сразу сколько прошло секунд с 1970.

    например
    $date = date('Y-m-d H:i:s');
    тип данных datetime.
    вот теперь как вытащить из базы сразу в секундах?
    strtotime($row['date']);
    разобрался спасибо.
    вобщем есть смысл делать на куки и адресе.

    прошу прощение, что бы не плодить не сколько тем, подскажите, как в при выполнение скрипта, в определенный момент, на определенной строчке, сделать так, что бы он заново начала выполняться.
     
  14. iNEEdhLw

    iNEEdhLw Новичок

    С нами с:
    22 окт 2014
    Сообщения:
    414
    Симпатии:
    0
  15. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Зачем? Какая там задача?
     
  16. ivnphp

    ivnphp Новичок

    С нами с:
    11 окт 2015
    Сообщения:
    33
    Симпатии:
    0
    ну думаю, что при выполнение кода, в определенный момент, хочу затереть данные и выполнить код еще раз.
    пробую искать куки и адрес после добавления голоса.
    Подскажите как искать за последние 24 часа, пробую вот так, но пока нет результата:
    Код (PHP):
    1. SELECT cookielike, INET_NTOA(addrs), date FROM db_addrslike WHERE id='$id' AND cookielike='$cookielike' AND date > NOW() - INTERVAL 1 DAY
    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  17. ivnphp

    ivnphp Новичок

    С нами с:
    11 окт 2015
    Сообщения:
    33
    Симпатии:
    0
    WHERE UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(date) <= 86400
     
  18. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    date > date_add(NOW(), INTERVAL -1 DAY)

    плохо называть поле date и использовать его без обратных кавычек. надо писать `date`
     
  19. ivnphp

    ivnphp Новичок

    С нами с:
    11 окт 2015
    Сообщения:
    33
    Симпатии:
    0
    спасибо за ответ, а какие последствия, если без кавычек например?
     
  20. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    бабайка может прилететь
     
  21. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Есть функция date() в мускуле. Ты называешь поле date. Мускул напргяается. Он в большинстве случаев может понять, что это поле. А иногда - может решить, что ты не поле имеешь в виду, а служебное слово употребил по назначению. И сделает что-то не то. Будешь чесать репу.

    Вообще кавычки дают возможность называть поля хоть с пробелами. Это удобно.
     
  22. ivnphp

    ivnphp Новичок

    С нами с:
    11 окт 2015
    Сообщения:
    33
    Симпатии:
    0
    Спасибо, буду смотреть.
    Сорри, что уже не по теме пошло.
    INTERVAL -1 DAY
    он вычтет ровно сутки, или просто текущий день?
     
  23. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    такие вещи быстрее выяснить в консоли чем спрашивать в интернетах )))

    Добавлено спустя 24 секунды:
    ты ж не в слепую программируешь. надеюсь.