Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

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

Там ничего сложного, просто в вебчасть добавить class-phpass.php и юзать код который у меня в шапке (переделать)
Неее, мне нужна сама генерация хеша, а не проверка.
Копался я там.
скачанные файлы (3).jpg
 
Неее, мне нужна сама генерация хеша, а не проверка.

Копался я там.
Посмотреть вложение 35327
маладец
donaldduck.gif
 
Разве в phpass не генерируется хеш? Тогда зачем я импортил?)
Он просто чекает, но не выводишь хеш. Или wp будет такой индивидуальный что для него нужен будет другой контролер.
 
Блин при привязке к wordpress выдало вона что... все по инструкшан.. в сеттингс префикс к таблице пользователей поменял вроде как
Код:
<br />
<b>Parse error</b>:  syntax error, unexpected '{' in <b>/home/host1254047/tyha.ru/htdocs/mc/sql_utils.php</b> on line <b>22</b><br />

Ну помогите :) @Vladlen_198 @Starr Пожалуйста :) Starr у тебя вроде для WP рабочая, может подскажешь что изменить нужно ?)
 
@FakeOff, Даже не знаю. Точно правильно скопировал?
Посмотрел по синтаксису, все норм.
 
@FakeOff, Даже не знаю. Точно правильно скопировал?
Посмотрел по синтаксису, все норм.
Код:
<?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(8, TRUE);
      
        $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;
            }
          
            }
    ?>

и set
Код:
<?php
    $dbhost = 'localhost';
    $dbname = 'что';
    $dbuser = 'здесь';
    $dbpass = 'было';
    $players_table_name = 'wp_users'; // Имя таблицы с данными игроков (для DLE = dle_users)
    $tokens_table_name  = 'Tokens'; // Имя таблицы с данными для авторизации (запрос на создание в Tokens.sql)
  
    $main_folder = 'http://чтоооо/'; // Путь к рабочей папке на хостинге
  
    $servers_list    = 'servers.json'; // Название файла с настройками клиентов
    $skins_folder    = 'MinecraftSkins'; // Папка со скинами
    $cloaks_folder   = 'MinecraftCloaks'; // Папка с плащами
    $previews_folder = 'Previews'; // Папка с превью-картинками серверов
  
    $key = 'patato'; // Ключ для шифрования запросов
?>

Все как с первой страницы + залил файл в корень как написано
 
Код:
<?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(8, TRUE);
     
        $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;
            }
         
            }
    ?>

и set
Код:
<?php
    $dbhost = 'localhost';
    $dbname = 'что';
    $dbuser = 'здесь';
    $dbpass = 'было';
    $players_table_name = 'wp_users'; // Имя таблицы с данными игроков (для DLE = dle_users)
    $tokens_table_name  = 'Tokens'; // Имя таблицы с данными для авторизации (запрос на создание в Tokens.sql)
 
    $main_folder = 'http://чтоооо/'; // Путь к рабочей папке на хостинге
 
    $servers_list    = 'servers.json'; // Название файла с настройками клиентов
    $skins_folder    = 'MinecraftSkins'; // Папка со скинами
    $cloaks_folder   = 'MinecraftCloaks'; // Папка с плащами
    $previews_folder = 'Previews'; // Папка с превью-картинками серверов
 
    $key = 'patato'; // Ключ для шифрования запросов
?>

Все как с первой страницы + залил файл в корень как написано
А, всё, затупил. Забыл там одну ")" поставить.
Скопируй скрипт заново и проверь.
 
Здравствуйте.
В этой теме я буду выкладывать скрипты для привязки вебчасти 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(8, TRUE);
 
        $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;
        }

   }
?>

Помогайте дополнять тему, буду признателен :)
А для xenforo адаптации не найдется? Я знаю, что это есть в веб-части от @Vladlen_198 , но полностью менять движок ради одной функции не хочется.
 
А для xenforo адаптации не найдется? Я знаю, что это есть в веб-части от @Vladlen_198 , но полностью менять движок ради одной функции не хочется.
@Sirse кидал.
http://rubukkit.org/threads/fm-pdo-jni-fmlite-4-free-2-0.103416/page-57#post-1213111
Я у себя не пробовал, поэтому не выкладывал.
 
UP!

Добавлена интеграция с AuthMe.
Добавлена интеграция с Xenforo (by @Sirse)
 
Последнее редактирование:
UP!

Добавлена интеграция с AuthMe.
Добавлена интеграция с Xenforo (by @Sirse)
Поторопился с выводом, скины некорректно работают, при входе в любом случае стандартный скин. @Sirse, молю помоги. Именно само превью скина дефолтное, при этом скин скачивается, тот который нужен и на сайте лежит, тот который нужен, удаляет сикн тоже из нужного места, а вот превью дефолтное при входе.

Починил, путем замены в auth.php $username на $userinfo в 53 строчке
 
Последнее редактирование:

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

Назад
Верх