[help]Проблема с голосованием

Тема в разделе "DLE", создана пользователем Artem_007, 18 июн 2008.

Информация :
Актуальная версия DataLife Engine 12.0
( Final Release v.12.0 | Скачать DataLife Engine | Скачать 12.0 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.3 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. Artem_007

    Artem_007 Постоялец

    Регистр.:
    13 апр 2008
    Сообщения:
    81
    Симпатии:
    13
    Есть такая проблема, она присутствует во многих версиях дле, даже в 7.0.Проголосуешь, обновляешь страницу и можно опяить голосовать, как профиксить?Помню был старый фикc? но у меня что-то он не работает, есть предложения как решить?:)
    ПС.Извиняюсь, если тема уже поднималась, что-то ее не нашел...:nezn:
     
  2. Shotlandec

    Shotlandec

    Регистр.:
    17 сен 2007
    Сообщения:
    728
    Симпатии:
    162
    пиши подробнее, что у тебя стоит, какая dle, какие модули... в самой dle такого ни когда не наблюдал, что-то у тебя проблема.
     
  3. Artem_007

    Artem_007 Постоялец

    Регистр.:
    13 апр 2008
    Сообщения:
    81
    Симпатии:
    13
    Ну она не только у меня была.По делу:
    Версия дле - 7.0
    Есть голосование на главной странице сайта, например я проголосовал, обновляю страницу, выглядит как будто можно еще раз проголосовать, а мне нужно что бы выводились результаты:)
    ПС.Не правильно задал вопрос...
     
  4. Jeison

    Jeison Создатель

    Регистр.:
    6 май 2007
    Сообщения:
    48
    Симпатии:
    1
    угу, ща проверил у меня тож самое.. я раньше как то даж не замечал ;)
    подскажите как это поправить?
     
  5. glam

    glam

    Регистр.:
    12 апр 2007
    Сообщения:
    734
    Симпатии:
    217
    флудерасты! ТС описывай подробнее свою проблему, если можно так выразиться! Не все тут шаманы с бубнами! И учись юзать поиск прежде чем создавать тему. помогает:smmne:

    _http://4dle.ru/2008/01/13/fiks_baga_golosovanijj.html
     
  6. Shinji-kun

    Shinji-kun Постоялец

    Регистр.:
    28 авг 2007
    Сообщения:
    59
    Симпатии:
    15
    Там корявый кто-то копировал мой пост с офф форума... вот нормальное:
    http://forum.dle-news.ru/index.php?showtopic=30431&view=findpost&p=166095
     
    Jeison и Artem_007 нравится это.
  7. Artem_007

    Artem_007 Постоялец

    Регистр.:
    13 апр 2008
    Сообщения:
    81
    Симпатии:
    13
    Я же сказал, там фикс старый, уже не катит...

    А вот тебе спасибо!!! Все работает!:)
     
  8. Jeison

    Jeison Создатель

    Регистр.:
    6 май 2007
    Сообщения:
    48
    Симпатии:
    1
    ой, а выложите суда кто-н, та мрегится надо.. безумно впадлу ;)
     
  9. Artem_007

    Artem_007 Постоялец

    Регистр.:
    13 апр 2008
    Сообщения:
    81
    Симпатии:
    13
    Решение проблемы:

    Открыть файл /engine/modules/vote.php и найти и удалить:

    PHP:
      /////////////////////////////////////////////////////////////////////////////
      //  Проверяем проголосовал ли текущий пользователь
      /////////////////////////////////////////////////////////////////////////////
      
    $_IP $db->safesql($_SERVER['REMOTE_ADDR']);

      if (isset(
    $member_id['name'])) $nick $member_id['name']; else $nick '';

      if (
    $is_logged)
      
    $row  $db->super_query("SELECT count(*) as count FROM ".PREFIX."_vote_result WHERE vote_id='$rid' AND name='$nick'");
      else
      
    $row  $db->super_query("SELECT count(*) as count FROM ".PREFIX."_vote_result WHERE vote_id='$rid' AND ip='$_IP'");

      if (
    $row['count'] == 0$is_voted false;
      else 
    $is_voted true;

          
    $flag 1;
    Найти строку
    PHP:
    $max   $vote_info[$rid]['vote_num'];
    и после нее вставить:
    PHP:
     /////////////////////////////////////////////////////////////////////////////
      //  Проверяем проголосовал ли текущий пользователь
      /////////////////////////////////////////////////////////////////////////////
      
    $_IP $db->safesql($_SERVER['REMOTE_ADDR']);

      if (isset(
    $member_id['name'])) $nick $member_id['name']; else $nick '';

      if (
    $is_logged)
      
    $row  $db->super_query("SELECT count(*) as count FROM ".PREFIX."_vote_result WHERE vote_id='$rid' AND name='$nick'");
      else
      
    $row  $db->super_query("SELECT count(*) as count FROM ".PREFIX."_vote_result WHERE vote_id='$rid' AND ip='$_IP'");

      if (
    $row['count'] == 0)
          {
            
    $is_voted false;
            
    $flag 0;
        }
      else
        {
            
    $is_voted true;
            
    $flag 1;
        }
    Этим мы вынесли проверку голоса за пределы голосования (т.е. она производится ВСЕГДА [при включенном голосовании] т.е. + 1 запрос)
     
    Jeison нравится это.
Статус темы:
Закрыта.