1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Поощрения за голосования на MCTOP

Тема в разделе "[Архив] Помощь", создана пользователем Mr.herobrin, 3 авг 2013.

  1. Автор темы
    Mr.herobrin

    Mr.herobrin Старожил Пользователь

    Баллы:
    103
    Вот тут скрипт скачал, покулутал, но он не работает. Оригинальная тема ТЫЦ.
    Проблема: человек голосует, голос в рейтинге засчитывается, данные о голосовании пишутся в БД (самые активные), а награда не выдается :(
    Может кто нибудь поможет или кто сталкивался с такой проблемой и как вы ее решили?
    А вот сам файл (это не реклама, ибо не знаю как добавить вложения :D )
     
    Vedroyder нравится это.
  2. Автор темы
    Mr.herobrin

    Mr.herobrin Старожил Пользователь

    Баллы:
    103
  3. max--2

    max--2 Старожил Пользователь

    Баллы:
    173
    У тебя что таблица iConomy называется accounts??
     
  4. Автор темы
    Mr.herobrin

    Mr.herobrin Старожил Пользователь

    Баллы:
    103
    да
    У меня стоит iMonies. Свойства таблицы у обоих плагинов одинаковые, только название разное.
     
  5. Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Ох, набыдлокодил тут автор скрипта (числа заносит в базу как стринги текст) :)
    А ещё вот такой нюанс удивил:​
    А не AUTO_INCREMENT ли там часом?​

    Вот, начиркал. Код годен для испытания:​
    PHP:
    <?php
    $db_host 
    '5.178.87.102';   
    $db_user '********';   
    $db_pass '******';
    $db_base '********';   
    $secret    'test';   
    $iconomy 'accounts';
    $tabmc    'mctop';   
    $walut  'корсов';
    $pay    400;   
     
    $username $member_id['name'];
    mysql_connect($db_host$db_user$db_pass);
    mysql_select_db($db_base);
     
    $player trim($_GET['player']);
    if (
    $player != ''){
    $link mysql_connect($db_host$db_user$db_pass) or die('error:1.1');
     
    mysql_select_db($db_base) or die('error:1.2');
     
    switch (
    $iconomy) {
    default: die(
    'error:2.1'); break;
     
    case 
    $iconomy:
    $sql 'UPDATE `'.trim($iconomy).'` SET `balance`=`balance`+'.intval($pay).' WHERE `username`=\''.strtolower($player).'\'';
    $sql2 'UPDATE `'.trim($tabmc).'` SET `golos`=`golos`+1 WHERE `username`=\''.$player.'\'';
    $sql3 'UPDATE `'.trim($tabmc).'` SET `time`=CURRENT_TIMESTAMP WHERE `username`=\''.$player.'\'';
    $sql4 'INSERT INTO `'.trim($tabmc).'` (`username`, `golos`, `time`) VALUES (\''.$player.'\', 1, CURRENT_TIMESTAMP);';
    mysql_query($sql);
    mysql_query($sql2);
    mysql_query($sql3);
    mysql_query($sql4);
    break;
    }
     
    mysql_close($link);
     
    echo 
    'Вам начислена награда '$pay,' '$walut;
    }
    else{
    echo 
    '<b>Вы забыли ввести логин.</b><br/>
    Голос не будет зачислен в таблицу голосов.<br/>
    Вам не будет начислена награда.<br/>
    В следующий раз будьте повнимательнее.'
    ;
    }
    ?>
    <link rel="stylesheet" href="Styles.css" type="text/css" />
     
  6. Автор темы
    Mr.herobrin

    Mr.herobrin Старожил Пользователь

    Баллы:
    103


    Не понял....
    Где именно?
     
  7. Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Это просто так сказал :)
    Но можете и проверить (открываете таблицу, куда это всё засчитывается, и выбираете в меню "Структура", там справа от столбца id должно быть написано это). А лучше скрин структуры.
     
  8. Автор темы
    Mr.herobrin

    Mr.herobrin Старожил Пользователь

    Баллы:
    103
     

    Вложения:

    • mctop.png
      mctop.png
      Размер файла:
      208,4 КБ
      Просмотров:
      34
  9. Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Всё хорошо, пробуйте мой код. Автор реально криворукий :D
     
  10. Автор темы
    Mr.herobrin

    Mr.herobrin Старожил Пользователь

    Баллы:
    103
    Не работает ;(
     
  11. Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Ну, значит эхом надо искать локацию ашыпки в коде.
     
  12. Автор темы
    Mr.herobrin

    Mr.herobrin Старожил Пользователь

    Баллы:
    103
    $sql4 = 'INSERT INTO `'.trim($tabmc).'` (`username`, `golos`, `time`) VALUES (\''.$player.'\', 1, CURRENT_TIMESTAMP);';
    Погоди, это же запись в таблицу ТОПа голосующих...
     
    МиднайтЖелаетВамДобра и Bars нравится это.
  13. Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Всё равно рекомендую оставить мой вариант :)
     
  14. Автор темы
    Mr.herobrin

    Mr.herobrin Старожил Пользователь

    Баллы:
    103
    окей. Вот только что же делать с поощрением?
     
  15. Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Вы сами же ответили на свой вопрос:
    Что мешает сменить trim($tabmc) на trim("имя таблицы")?
     
  16. Автор темы
    Mr.herobrin

    Mr.herobrin Старожил Пользователь

    Баллы:
    103
    Я что-то не вкуриваю... Сменить на accounts ?
     
  17. Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Ну ведь Вы сами сказали, что добавляется не в ту таблицу, в которую надо. Вот и исправьте на нужную
     
    ВремяПриключений нравится это.

Поделиться этой страницей