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

Туториал McShop v2 [Гайд]

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем Chilly, 6 дек 2012.

  1. agentik007

    agentik007 Старожил Пользователь

    Баллы:
    153
    Имя в Minecraft:
    agentik007
    1. Использовать старую версию pex
    2. Сделать кодировку в UUID, @alexandrage даже где-то скрипт на форуме выкладывал
     
  2. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Не просто выкладывал, в сашке юзается.
     
  3. Demon.Sochi

    Demon.Sochi Активный участник Пользователь

    Баллы:
    68
    Имя в Minecraft:
    Admin
    К сожалению старый pex не тянет несколько плаинов, а альтернативы я не могу найти...
    Саша, как можно оставить новый pex, но при этом сделать так чтоб uuid распознавал кабинет?
     
  4. agentik007

    agentik007 Старожил Пользователь

    Баллы:
    153
    Имя в Minecraft:
    agentik007
    https://github.com/alexandrage/Fix-Sashok/blob/master/site/uuid.php
     
  5. Demon.Sochi

    Demon.Sochi Активный участник Пользователь

    Баллы:
    68
    Имя в Minecraft:
    Admin
    Как мне его запихнуть в кабинет? я так понял нужно его вставить в buy?
    Вот buy.php

    Код:
    <?php
    if(!defined('INCLUDE_CHECK')) die('У вас нет прав на выполнение данного файла!');
    if(!defined('GLI')) die('Проверка лицензии удалена глобально! Необходимо загрузить оригинальные файлы!');
    $query = mysql_query("SELECT `group` FROM `{$db_users}` WHERE `{$db_users_name}`='{$username}';",$sql);
    $group_id = mysql_result($query,0);
    //Покупка группы
    if(!isset($_POST['grp_id'])) {
        if($group_id != "0") {
            $query = mysql_query("SELECT * FROM `groups` WHERE `id`={$group_id};",$sql);
            $i = 1;
            while($result = mysql_fetch_assoc($query)) {
            foreach($result as $key=>$value) {
                $group[$i][$key] = $value;
            }
        }
        $tpl->assign("group", $group);
        $tpl->assign('next','1');
        $tpl->assign('content', 'buy_list.tpl');
        } else {
        $query = mysql_query("SELECT * FROM `groups`;",$sql);
        $i = 1;
        while($result = mysql_fetch_assoc($query)) {
            foreach($result as $key=>$value) {
                $group[$i][$key] = $value;
            }
            $i++;
        }
        $tpl->assign("group", $group);
        $tpl->assign('next','');
        $tpl->assign('content', 'buy_list.tpl');
        }
    } else {
        if(!isset($_POST['confirm'])) {
        $id = mysql_real_escape_string($_POST['grp_id']);
        $query = mysql_query("SELECT * FROM `groups` WHERE `id`='{$id}';",$sql);
        $group = mysql_fetch_assoc($query);
        $time = mysql_real_escape_string($_POST['time']);
        $percent = $time/$group['days']*100;
        $pay = round($group['sale']/100*$percent);
        $tpl->assign('status', $group['name']);
        $tpl->assign('days', $_POST['time']);
        $tpl->assign('id', $group['id']);
        $tpl->assign('pay', $pay);
        } else {
        $time = mysql_real_escape_string($_POST['time']);
            $id = mysql_real_escape_string($_POST['grp_id']);
            $query = mysql_query("SELECT * FROM groups WHERE id='{$id}';",$sql);
            $group = mysql_fetch_assoc($query);
            if(isset($group['pex_name'])) $pex_name = $group['pex_name'];
            else $pex_name = false;
            $query = mysql_query("SELECT * FROM `{$db_users}` WHERE `{$db_users_name}`='{$username}';",$sql);
            foreach($result = mysql_fetch_assoc($query) as $key=>$value) {
                $user[$key] = $value;
            }
            $query = mysql_query("SELECT * FROM groups WHERE id='{$id}';",$sql);
            $group = mysql_fetch_assoc($query);
            if($pex_name) {
                $percent = mysql_real_escape_string($time)/$group['days']*100;
                $prepay = round($group['sale']/100*$percent);
            }
            if(@$prepay>$user['money']) {
                $message = "Недостаточно средств для проведения покупки<br>Для того, чтобы провести операцию, Вам необходимо сперва пополнить счет на <b>".($prepay-$user['money'])."</b> руб.";
            } else {
                // Повторим расчет стоимости на случай если стоимость попытаются подменить
                $query = mysql_query("SELECT * FROM `groups` WHERE id='{$id}';",$sql);
                $group = mysql_fetch_assoc($query);
                @$percent = $time/$group['days']*100;
                $pay = round($group['sale']/100*$percent);
                // Конец расчетов
                if($group_id != "0") $prolong = true;
                if(isValidPAN($time)) {
                if($pex_name) {
                if(!$prolong) {
                    $duration = time() + ($time*24*60*60);
                    mysql_query("INSERT INTO `permissions_inheritance` (`id`, `child`, `parent`, `type`, `world`) VALUES (NULL, '{$username}', '{$pex_name}', '1', NULL)",$sql);
                    mysql_query("UPDATE `{$db_users}` SET `money`=money - {$pay}, `group`='{$id}', `duration`='{$duration}' WHERE `{$db_users_name}`='{$username}';",$sql);
                    $date = date("d-m-Y H:i", $duration);
                    $logger->WriteLine($log_date . "Пользователь {$username} купил статус {$group['name']} на срок {$time} суток.");
                } else {
                    //Продление
                    $duration = $time*24*60*60;
                    $query = mysql_query("SELECT `duration` FROM {$db_users} WHERE {$db_users_name}='{$username}';",$sql);
                    $res = mysql_result($query,0);
                    mysql_query("UPDATE `{$db_users}` SET `money`=money - {$pay}, `group`='{$id}', `duration`=duration+{$duration} WHERE `{$db_users_name}`='{$username}';",$sql);
                    $prolong_date = $res + $duration;
                    $date = date("d-m-Y H:i", $prolong_date);
                    $logger->WriteLine($log_date . "Пользователь {$username} продлил статус {$group['name']} на срок {$time} суток.");
                }
                $message = "Поздравляем!<br />
                Вы приобрели статус <b>{$group['name']}</b> на <b>{$time}</b> дней(дня). Услуга будет активна до <b>{$date}</b>.<br />
                С вашего счета было списано <b>{$pay}</b> руб."; } else {
                    $message = "С вашей стороны была зафиксированна попытка взлома!";
                    $logger->WriteLine($log_date . "Зафиксированна попытка взлома пользователем {$username}. Несуществующий id статуса. IP: {$_SERVER['REMOTE_ADDR']}");
                }
                } else {
                    $message = "С вашей стороны была зафиксированна попытка взлома!";
                    $logger->WriteLine($log_date . "Зафиксированна попытка взлома пользователем {$username}. Неправильный формат полученных данных. IP: {$_SERVER['REMOTE_ADDR']}");
                }
            }
            $tpl->assign('message', $message);
        }
        $tpl->assign('content', 'buy.tpl');
    }
    //Купили группу
     
  6. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    uuidConvert($username); чтоб записать uuid игрока. И вообще структура пекса с uuid заметно изменилась.
    1) Префиксы и суфиксы в табле permissions теперь, name -> uuid permissions ->prefix или suffix , type 1 , value - > значение.
    2) По мимо записи uud в табле permissions пишется еще одна запись, name -> uuid , type 1 и value -> username
    3) в табле permissions_entity теперь пишется uuid и value 1.
     
    Последнее редактирование: 19 ноя 2014
  7. MrTrojan

    MrTrojan Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    BlackTrojan
    да
     
  8. Demon.Sochi

    Demon.Sochi Активный участник Пользователь

    Баллы:
    68
    Имя в Minecraft:
    Admin
    Тааааакккк:eek: Как мне это всё записать? и куда?
     
  9. SounD

    SounD Активный участник Пользователь

    Баллы:
    68
    Имя в Minecraft:
    SounD
    [22:43:11] [Launcher thread/WARN]: Ключ шифрование не совпадает или больше 16 символов, или полученна ошибка от launcher.php
    [22:43:11] [Launcher thread/WARN]: Проверьте настройку в Settings.java или connect.php

    50 раз проверил это 16 значный код и другие тоже
     
  10. Demon.Sochi

    Demon.Sochi Активный участник Пользователь

    Баллы:
    68
    Имя в Minecraft:
    Admin
    Проверяй название папок, их путь и тд.
     
  11. vladF

    vladF Старожил Пользователь

    Баллы:
    103
    Перезалейте, плиз!
     
  12. Zoom4ikDan4ik

    Zoom4ikDan4ik Активный участник Пользователь

    Баллы:
    78
    Как изменить здесь время? Разница 5 часов
     
  13. SyperStroitel

    SyperStroitel Активный участник Пользователь

    Баллы:
    68
    Имя в Minecraft:
    SyperStroitel
    дай пожалуйста рабочую версию скрипта
     
  14. SounD

    SounD Активный участник Пользователь

    Баллы:
    68
    Имя в Minecraft:
    SounD
    Вот держите . Раньше хотел себе поставить , но увы руки не дошли =)
    Вот это версия взаимодействует с Interkassa 2.0 .
    Особую благодарность хочу выразить "Semen4ik" за скрипт .
    Вот сам шоп.
    https://yadi.sk/d/DaWAMY1ldntvx
    Вот SQL запросы в базу и плагин для работы шопа .
    https://yadi.sk/d/QlfX9QrCdnvX7
     
    Последнее редактирование: 6 янв 2015
  15. TAIFUN

    TAIFUN Активный участник Пользователь

    Баллы:
    76
    Спасибо , посмотрим. Не подскажете тут закрыты дырки как были в предыдущих версиях? такие как sql инъекции
     
  16. corndan

    corndan Активный участник Пользователь

    Баллы:
    88
    Skype:
    oneadm
    Имя в Minecraft:
    corndan
    Нет конечно
     
  17. SounD

    SounD Активный участник Пользователь

    Баллы:
    68
    Имя в Minecraft:
    SounD
    Эт уж сами .
     
  18. TAIFUN

    TAIFUN Активный участник Пользователь

    Баллы:
    76
    Кто поделится фиксом с группами и sql инъекцией ? :)
     
  19. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Листай посты, я там указывал на вся дыры, последним были префиксы.
     
  20. viktor211112

    viktor211112 Новичок

    Баллы:
    16
    Ребят, помогите: Вы дает вот такую ошибку при авторизации пользователя Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at Z:\home\domen\www\shop\include\connect.php:1) in Z:\home\domen\www\shop\auth.php on line 4

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\domen\www\shop\include\connect.php:1) in Z:\home\domen\www\shop\auth.php on line 4

    Warning: Cannot modify header information - headers already sent by (output started at Z:\home\domen\www\shop\include\connect.php:1) in Z:\home\domen\www\shop\auth.php on line 251
     

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