За последние 24 часа нас посетили 19088 программистов и 1635 роботов. Сейчас ищут 868 программистов ...

Рейтинг материала - задать напрвление

Тема в разделе "Прочие вопросы по PHP", создана пользователем gritsyuk, 20 янв 2014.

  1. gritsyuk

    gritsyuk Новичок

    С нами с:
    20 янв 2014
    Сообщения:
    5
    Симпатии:
    0
    Здравствуйте форумчане! Хочу реализовать рейтинг материала типа (+) и (-), но с условиями, что пользователь голосует за id материала один раз. Есть таблица с МАТЕРИАЛ (id, title, text и т.д.).
    Рассуждения таковы:
    застрял на одной идеи:
    - создаем таблицу РЕЙТИНГ (`id`,` id_МАТЕРИАЛА(связь)`,` plus`, `minus`, `ip`)
    1) В поле `ip` записывать через запятую все ip-адреса проголосовавших за данный id-материал и при голосовании проверять наличие.?
    понимаю, что должно быть иное решение.
    Задайте правильное направление к размышлению. Спасибо.
     
  2. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Если по IP хотите ограничить, нужно IP писать не в ту же таблицу, через запятую, поскольку будет неудобно делать выборку. Нужно создать ещё одну таблицу rang_IP(id, IP).
     
  3. gritsyuk

    gritsyuk Новичок

    С нами с:
    20 янв 2014
    Сообщения:
    5
    Симпатии:
    0
    Спасибо. Выборку я предполагал, что сделает функция
    Код (Text):
    1. (preg_match("/\b127.0.0.13\b/i", $voteresult['ip']))
    ,подозреваю правда, что с точки производительности не самая лучшая идея. А вот как добавить ip через запятую в поле таблицы - вопрос?
     
  4. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    вы читаете что вам пишут?
    ненадо добавлять через запятую!
    храните в отдельной таблице.
     
  5. gritsyuk

    gritsyuk Новичок

    С нами с:
    20 янв 2014
    Сообщения:
    5
    Симпатии:
    0
    Я читаю что мне пишут, за что и поблагодарил человека.
     
  6. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    У меня динамика и я буду на первом месте =), так - как вы проверяете проголосовавшего по ip.
    Тем - более к тому же - это будет так просто, всего - то сбросить соединение, 1 секунда и новый ip.
     
  7. gritsyuk

    gritsyuk Новичок

    С нами с:
    20 янв 2014
    Сообщения:
    5
    Симпатии:
    0
    Я не осведомлен в этом вопросе, но прежде немного гуглил, что бы узнать каким образом меняется динамический ip, нашел что он может и годами не меняться, все зависит от провайдера (когда ему задумается сбросить что-то там). Если вы правы, какой вариант устройства рейтинга по вашему будет наиболее правильным?
     
  8. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    правильного нет. но можно сохранять идентификатор в куках, в хранилище, во флеше, короче заюзайте evercookie
     
  9. gritsyuk

    gritsyuk Новичок

    С нами с:
    20 янв 2014
    Сообщения:
    5
    Симпатии:
    0
    Я правильно понял: если пользователь нажимает кнопку "+" или "-" проверяем наличие куки с "id" материала и если ее нет, то учитываем голос(запись в базу данных) и добавляем куку с id материала.
     
  10. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    я думаю, стоит учитывать и запоминать на стороне сервера. а на клиенте держать идентификатор клиента.
     
  11. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Что?! :D
    Слышали о модеме хоть раз?
    Есть, если сайт осмыслен активацией gold аккаунта, не всем захочется платить бабло ради накрутки.
    В прочем также более правильный будет после входа голосовать только по аккаунту, то есть этот акк не сможет голосовать много раз за одно и тоже. А если ты подумаешь о множественных регистрациях и накрутке акками, то это легко вычислить "твинка".
     
  12. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    даже на платном хабре усё нормально с покупкой акков для голосования. ташто в наше время бесполезно об этом переживать.