Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Туториал Интеграция FMXLauncher с разными CMS

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем Starr, 15 авг 2015.

  1. Автор темы
    Starr

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

    Баллы:
    98
    Имя в Minecraft:
    _Starr_
    Здравствуйте.
    В этой теме я буду выкладывать скрипты для привязки вебчасти FMXLauncher к вашему серверу.
    Кидайте свои CMS, структуру их таблиц (обязательно) и метод хеширования.
    Буду помогать и добавлять сюда ;)

    DLE:

    PHP:
    <?php
        
    include_once('settings.php');

        
    define('USER_EXISTS'    0);
        
    define('USER_NOT_EXISTS'1);
        
    define('SQL_ERROR'      2);

        function 
    IsPlayerInBase($db_handle$login$password) {

            global 
    $players_table_name;

            
    $user = array(
                
    'login'    => $login,
                
    'password' => md5(md5($password))
            );

            
    $sql $db_handle->prepare("SELECT COUNT(1) FROM `{$players_table_name}` WHERE `name`=:login AND BINARY `password`=:password");

            if (
    $sql->execute($user)) {
                if (
    $sql->fetchColumn()) {
                    return 
    USER_EXISTS;
                } else {
                    return 
    USER_NOT_EXISTS;
                }

            } else {
                return 
    SQL_ERROR;
            }

        }
    ?>

    WebMCR:

    PHP:
    <?php
        
    include_once('settings.php');

        
    define('USER_EXISTS'    0);
        
    define('USER_NOT_EXISTS'1);
        
    define('SQL_ERROR'      2);

        function 
    IsPlayerInBase($db_handle$login$password) {

            global 
    $players_table_name;

            
    $user = array(
                
    'login'    => $login,
                
    'password' => md5($password)
            );

            
    $sql $db_handle->prepare("SELECT COUNT(1) FROM `{$players_table_name}` WHERE `login`=:login AND BINARY `password`=:password");

            if (
    $sql->execute($user)) {
                if (
    $sql->fetchColumn()) {
                    return 
    USER_EXISTS;
                } else {
                    return 
    USER_NOT_EXISTS;
                }

            } else {
                return 
    SQL_ERROR;
            }

        }
    ?>

    WordPress:

    PHP:
    <?php
        
    include_once('settings.php');
        include_once(
    'class-phpass.php');

        
    define('USER_EXISTS'    0);
        
    define('USER_NOT_EXISTS'1);
        
    define('SQL_ERROR'      2);

        function 
    IsPlayerInBase($db_handle$login$password) {

            global 
    $players_table_name;

            
    $wp_hasher = new PasswordHash(8TRUE);

            
    $user = array(
                
    'login'    => $login,
                
    'password' => $password
            
    );

            
    $sql $db_handle->prepare("SELECT `user_pass` FROM `{$players_table_name}` WHERE `user_login`=:login");

            if (
    $sql->execute(array('login' => $login))) {
                
    $password_hashed $sql->fetchColumn();
                if(
    $wp_hasher->CheckPassword($password$password_hashed)) {
                    return 
    USER_EXISTS;
                } else {
                    return 
    USER_NOT_EXISTS;
                }

            } else {
                return 
    SQL_ERROR;
            }

        }
    ?>
    + Добавить в корень со скриптами файлик из WordPress /wp_includes/class-phpass.php

    PunBB:

    PHP:
    <?php
        
    include_once('settings.php');

        
    define('USER_EXISTS'    0);
        
    define('USER_NOT_EXISTS'1);
        
    define('SQL_ERROR'      2);

        function 
    IsPlayerInBase($db_handle$login$password) {

            global 
    $players_table_name;

            
    $sth $db_handle->prepare("SELECT salt FROM `{$players_table_name}` WHERE `username`=:username");

            
    $sth->execute(array(
                
    'username' => $login,
            ));

            
    $getsalt=$sth->fetch(PDO::FETCH_ASSOC);
            
    $salt $getsalt['salt'];

            
    $user = array(
                
    'login'    => $login,
                
    'password' => sha1($salt.sha1($password))
            );

            
    $sql $db_handle->prepare("SELECT COUNT(1) FROM `{$players_table_name}` WHERE `login`=:login AND BINARY `password`=:password");

            if (
    $sql->execute($user)) {
                if (
    $sql->fetchColumn()) {
                    return 
    USER_EXISTS;
                } else {
                    return 
    USER_NOT_EXISTS;
                }

            } else {
                return 
    SQL_ERROR;
            }

       }
    ?>

    AuthMe:

    PHP:
    <?php
        
    include_once('settings.php');

        
    define('USER_EXISTS'    0);
        
    define('USER_NOT_EXISTS'1);
        
    define('SQL_ERROR'      2);

        function 
    IsPlayerInBase($db_handle$login$password) {

            global 
    $players_table_name;

            
    $sth $db_handle->prepare("SELECT `password` FROM `{$players_table_name}` WHERE `username`=:login");

            if (
    $sth->execute(array('login' => $login))) {
                
    $gethash=$sth->fetch(PDO::FETCH_ASSOC);
                
    $hash $gethash['password'];

                
    $exp preg_split('/\\$/'$hash);
                
    $salt $exp[2];

                
    $rpass '$SHA$'.$salt.'$'.hash('sha256',hash('sha256',$password).$salt);
            } else {
                return 
    USER_NOT_EXISTS;
            }

            
    $user = array(
                
    'login'    => $login,
                
    'password' => $rpass
            
    );

            
    $sql $db_handle->prepare("SELECT COUNT(1) FROM `{$players_table_name}` WHERE `username`=:login AND BINARY `password`=:password");

            if (
    $sql->execute($user)) {
                if (
    $sql->fetchColumn()) {
                    return 
    USER_EXISTS;
                } else {
                    return 
    USER_NOT_EXISTS;
                }

            } else {
                return 
    SQL_ERROR;
            }

        }
    ?>

    VBulletin:

    PHP:
    <?php
        
    include_once('settings.php');

        
    define('USER_EXISTS'    0);
        
    define('USER_NOT_EXISTS'1);
        
    define('SQL_ERROR'      2);

        function 
    IsPlayerInBase($db_handle$login$password) {

            global 
    $players_table_name;

            
    $sth $db_handle->prepare("SELECT salt FROM `{$players_table_name}` WHERE `username`=:username");

            
    $sth->execute(array(
                
    'username' => $login,
            ));

            
    $getsalt=$sth->fetch(PDO::FETCH_ASSOC);
            
    $salt $getsalt['salt'];

            
    $user = array(
                
    'login'    => $login,
                
    'password' => md5(md5($password).$salt)
            );

            
    $sql $db_handle->prepare("SELECT COUNT(1) FROM `{$players_table_name}` WHERE `username`=:login AND BINARY `password`=:password");

            if (
    $sql->execute($user)) {
                if (
    $sql->fetchColumn()) {
                    return 
    USER_EXISTS;
                } else {
                    return 
    USER_NOT_EXISTS;
                }

            } else {
                return 
    SQL_ERROR;
            }

       }
    ?>

    IP.Board:

    Версия 3.x
    PHP:
    <?php
        
    include_once('settings.php');

        
    define('USER_EXISTS'    0);
        
    define('USER_NOT_EXISTS'1);
        
    define('SQL_ERROR'      2);

        function 
    IsPlayerInBase($db_handle$login$password) {

            global 
    $players_table_name;

            
    $sth $db_handle->prepare("SELECT members_pass_salt FROM `{$players_table_name}` WHERE `name`=:username");

            
    $sth->execute(array(
                
    'username' => $login,
            ));

            
    $getsalt=$sth->fetch(PDO::FETCH_ASSOC);
            
    $salt $getsalt['members_pass_salt'];

            
    $user = array(
                
    'login'    => $login,
                
    'password' => md5(md5($salt).md5($password))
            );

            
    $sql $db_handle->prepare("SELECT COUNT(1) FROM `{$players_table_name}` WHERE `name`=:login AND BINARY `members_pass_hash`=:password");

            if (
    $sql->execute($user)) {
                if (
    $sql->fetchColumn()) {
                    return 
    USER_EXISTS;
                } else {
                    return 
    USER_NOT_EXISTS;
                }

            } else {
                return 
    SQL_ERROR;
            }

       }
    ?>
    Версия 4.x
    PHP:
    <?php
        
    include_once('settings.php');

        
    define('USER_EXISTS'    0);
        
    define('USER_NOT_EXISTS'1);
        
    define('SQL_ERROR'      2);

        function 
    IsPlayerInBase($db_handle$login$password) {

            global 
    $players_table_name;

            
    $sth $db_handle->prepare("SELECT members_pass_salt FROM `{$players_table_name}` WHERE `name`=:username");

            
    $sth->execute(array(
                
    'username' => $login,
            ));

            
    $getsalt=$sth->fetch(PDO::FETCH_ASSOC);
            
    $salt $getsalt['members_pass_salt'];

            if (
    mb_strlen($salt) === 22) {
                
    $user = array(
                    
    'login'    => $login,
                    
    'password' => crypt($password'$2a$13$' $salt)
                );
            }

            
    $sql $db_handle->prepare("SELECT COUNT(1) FROM `{$players_table_name}` WHERE `name`=:login AND BINARY `members_pass_hash`=:password");

            if (
    $sql->execute($user)) {
                if (
    $sql->fetchColumn()) {
                    return 
    USER_EXISTS;
                } else {
                    return 
    USER_NOT_EXISTS;
                }

            } else {
                return 
    SQL_ERROR;
            }

       }
    ?>

    XenForo (1.1 и ниже):

    PHP:
    <?php
        
    include_once('settings.php');

        
    define('USER_EXISTS'    0);
        
    define('USER_NOT_EXISTS'1);
        
    define('SQL_ERROR'      2);

        function 
    IsPlayerInBase($db_handle$login$password) {

            global 
    $players_table_name;

            
    $sth $db_handle->prepare("SELECT `salt` FROM `{$players_table_name}` WHERE `login`=:login");

            
    $sth->execute(array(
                
    'login' => $login,
            ));

            
    $getsalt=$sth->fetch(PDO::FETCH_ASSOC);
            
    $salt $getsalt['salt'];

            
    $rpass hash('sha256',hash('sha256',$password).$salt);

            
    $user = array(
                
    'login'    => $login,
                
    'password' => $rpass
            
    );

            
    $sql $db_handle->prepare("SELECT COUNT(1) FROM `{$players_table_name}` WHERE `login`=:login AND BINARY `password`=:password");

            if (
    $sql->execute($user)) {
                if (
    $sql->fetchColumn()) {
                    return 
    USER_EXISTS;
                } else {
                    return 
    USER_NOT_EXISTS;
                }

            } else {
                return 
    SQL_ERROR;
            }

        }
    ?>

    Помогайте дополнять тему, буду признателен :)
     
    Последнее редактирование: 23 фев 2016
  2. Хостинг MineCraft
    <
  3. Plasticable

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

    Баллы:
    173
    Skype:
    plasticable
    Имя в Minecraft:
    Plasticable
  4. 11dimonchik22

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

    Баллы:
    76
    Как я вижу в отдельном скрипте будет настроена авторизация под несколько cms?
     
  5. Автор темы
    Starr

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

    Баллы:
    98
    Имя в Minecraft:
    _Starr_
    Ну вот, только создаешь тему, а тут уже за тебя все делают.. :(
    Но это хорошо, наконец у тебя время нашлось!
     
  6. MrTrojan

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

    Баллы:
    98
    Skype:
    mrtrojan.ru
    Имя в Minecraft:
    MrTrojan
    что за среда разработки на php?
     
  7. 11dimonchik22

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

    Баллы:
    76
    Joomla это хорошо, еще ворд пресс бы[DOUBLEPOST=1439662796,1439662687][/DOUBLEPOST]А че с ВП так не заладилось, ты же начинал под него делать в том куске кода...
     
  8. Автор темы
    Starr

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

    Баллы:
    98
    Имя в Minecraft:
    _Starr_
    Там ничего сложного, просто в вебчасть добавить class-phpass.php и юзать код который у меня в шапке (переделать)
     
  9. 11dimonchik22

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

    Баллы:
    76
  10. Автор темы
    Starr

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

    Баллы:
    98
    Имя в Minecraft:
    _Starr_
    Там много депендов и придется переносить очень много кода. Легче заюзать импорт.
     
  11. 11dimonchik22

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

    Баллы:
    76
    Когда я читал мне так не показалось :oops: В прочем я чайник в этом деле
     
  12. Автор темы
    Starr

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

    Баллы:
    98
    Имя в Minecraft:
    _Starr_
    Да реально легче. Я конечно не кодер на пыхе, это чисто субъективное мнение (простой способ но мб не самый лучший).
     
  13. 11dimonchik22

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

    Баллы:
    76
    Сейчас ты меня запутал:confused: что именно легче, то что предложил я или ты?[DOUBLEPOST=1439664191,1439664159][/DOUBLEPOST]:D
     
  14. Автор темы
    Starr

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

    Баллы:
    98
    Имя в Minecraft:
    _Starr_
    Сам туплю)
    Импорт мой легче))
     
  15. 11dimonchik22

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

    Баллы:
    76
    Я знаю о чем ты думаешь:lol:
    [​IMG]
     
  16. Автор темы
    Starr

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

    Баллы:
    98
    Имя в Minecraft:
    _Starr_
    Завтра закажу :D
     
  17. 11dimonchik22

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

    Баллы:
    76
    Ахаха
     
  18. 11dimonchik22

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

    Баллы:
    76
    маладец
    [​IMG]
     
  19. Автор темы
    Starr

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

    Баллы:
    98
    Имя в Minecraft:
    _Starr_
    Разве в phpass не генерируется хеш? Тогда зачем я импортил?)
     
  20. 11dimonchik22

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

    Баллы:
    76
    ааааа я понял как ты золотой сертификат получил :D нагибатор фигов, и зачем я на atpiska нажал :( :D
     
  21. RespectDDD

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

    Баллы:
    76
    Skype:
    netu_logina3
    У меня есть накручивалка для этого сайта))00
     

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