Помогите Бонус за голосование

  • Автор темы Автор темы Suzka
  • Дата начала Дата начала

Suzka

Активный участник
Пользователь
Баллы
88
Имя в Minecraft
Suzka
Добрый день, форумчане. Простите за не правильно обращение. Я недавно занимаюсь сервером, но достиг уже довольно таки приятной высоты ( 80 место в топе McTop )
С названия темы ясно, что мне требуется подключить McTop к базе данных таким образом, что игрок, проголосовал, должен получить бонус в виде денег. Я морочился, морочился над этим, да так ничего и не вышло. Десятки раз перечитывал тему о бонусе, наслышался о PHP запросах. Ну что делать если баран.. В общем, спасайте.
За работу я выдам вознаграждение.

P.S Iconomy я подключил к БД, это было не трудно)
Выручайте, ребят. Я знаю вы гении.
Мой скайп suzanskiy_sergey
 

Cпасибо за отзыв. Но я не понимаю этого. Я ж говорю, перчитал очень много. Везде играет вот этот скрипт
Код:
<?php
 
$config = array(
    'db' => array(
        'driver' => 'mysql',
        'host' => 'sr1.firolab.org.ua',
        'username' => 'rootty',
        'password' => 'ug0.jpg',
        'database' => 'minecraft',
    ),
    'security-code' => 'GkvPzrnA',
    'jobs' => array(
        array(
            'active' => true,
            'table-name' => 'w2v_bonus',
            'type' => 4,
            /*
* # ДОБАВЛЕНИЕ К ЧИСЛЕННОМУ ЗНАЧЕНИЮ
* 0 - только обновление (пополнение).
* 1 - вставка нового параметра если нет такой записи (поле user-column дожно быть уникально в схеме (уникальный индекс)).
* # ВЫСТАВЛЕНИЕ ЗНАЧЕНИЯ
* 2 - выставления значения
* 3 - вставка или выставление значения (поле user-column дожно быть уникально в схеме (уникальный индекс)).
* 4 - Моя дорисовка. Которая записывает в таблицу w2v_bonus 4 алмаза(id=264) проголосовавшему игроку.
* */
            'change-column' => 'item_amount',
            'item_amountfromtable' => 'item_amount',
            'item_count' => 4,
            'item_id' => 264,
            'user-column' => 'player',
            'nicknamefromtable' => 'nickname',
            'item_idfromtable' => 'item_id',
 
            'default' => 30, // Стандартный баланс
            'change' => 1 // Бонус или значение
        )
    )
);
 
if (isset($_GET['hash']) && isset($_GET['player']) && strlen($_GET['hash']) == 32 && strlen($_GET['player']) >= 3 && $_GET['hash'] == md5($config['security-code'] . $_GET['player'])) {
    try {
  $player=mysql_escape_string($_GET['player']);
  $player=mysql_real_escape_string($player);
        $db = new PDO($config['db']['driver'] . ':host=' . $config['db']['host'] . ';dbname=' . $config['db']['database'], $config['db']['username'], $config['db']['password']);
 
        foreach ($config['jobs'] as $item) {
            if ($item['active'] == true) {
                switch ($item['type']) {
                    case 0:
                    {
                        $query = $db->prepare("UPDATE " . $item['table-name'] . " SET `" . $item['change-column'] . "`=`" . $item['change-column'] . "`+" . $item['change'] . " WHERE `" . $item['user-column'] . "`=?");
                        $query->execute(array($_GET['player']));
                        break;
                    }
                    case 1:
                    {
                        $query = $db->prepare("INSERT INTO " . $item['table-name'] . " (`" . $item['user-column'] . "`,`" . $item['change-column'] . "`) VALUES (?, " . $item['default'] + $item['change'] . ") ON duplicate KEY UPDATE `" . $item['change-column'] . "`=`" . $item['change-column'] . "`+" . $item['change']);
                        $query->execute(array($_GET['player']));
                        break;
                    }
                    case 2:
                    {
                        $query = $db->prepare("UPDATE " . $item['table-name'] . " SET `" . $item['change-column'] . "`=`? WHERE `" . $item['user-column'] . "`=?");
                        $query->execute(array($item['change'], $_GET['player']));
                        break;
                    }
                    case 3:
                    {
                        $query = $db->prepare("INSERT INTO " . $item['table-name'] . " (`" . $item['user-column'] . "`,`" . $item['change-column'] . "`) VALUES (?, ?) ON duplicate KEY UPDATE `" . $item['change-column'] . "`=?");
                        $query->execute(array($_GET['player'], $item['change'], $item['change']));
                        break;
                        }
                    case 4:
                    {
                    //var_dump($item);
                        $query = $db->prepare("INSERT INTO " . $item['table-name'] . " (`".$item['nicknamefromtable'] . " `,`" . $item['item_idfromtable'] . "`, `" . $item['item_amountfromtable'] . "`) VALUES (`". $item['user-column'] ."`, `". $item['item_id'] ."`, `". $item['change-column'] ."`");
                        $query->execute(array($_GET['player']));
                        break;
 
                    }
                    //Добавил кейс 4. Посмотри плз соответствие в названиях и правильно ли они тут приведены. Спс.
 
 
                if ($db->errorCode() != 0000) {
                    $error_array = $db->errorInfo();
                    die("SQL error: " . $error_array[2] . '');
                }
            }
        }
 
        echo 'ok';
    } catch (PDOException $e) {
        die('Error: ' . $e->getMessage());
    }
} else {
  die('DO NOT HACK ME!');
}


А куда его вставлять, или что с ним делать я не понимаю. Хоть убей.
 
Хм.
В настройках mctop должно быть свойство - путь до этого файла.
кидаешь куда хочешь на сайт, и прописываешь путь...
 
Хм.
В настройках mctop должно быть свойство - путь до этого файла.
кидаешь куда хочешь на сайт, и прописываешь путь...
Да, есть. Так этот скрипт сохранять как Script.php, кидать на сайт, на Mctop указывать адресс? Я правильно вас понял?
 
Да, есть. Так этот скрипт сохранять как Script.php, кидать на сайт, на Mctop указывать адресс? Я правильно вас понял?
Да, называйте как хотите, и указываете адрес вместе со скриптом(http://ваш_сайт/ainosg.php)
Желательно, чтобы никто не знал, как называется файл(усложнит взлом)
 
Назад
Верх