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

Лаунчер FMXL3+Fix (исправления для лаунчера)

неплохо. раньше бы эту тему)
 
@synthetic, объясни мне.
Для Wordperss, нужно:
- В settings.php нужно установить значение:
$playersTableName на wp_users
$playersColumnName на user_login

4511d2c3e874477d8f4edac2a73b129b.png
- В dbUtils.php нужно установить значение:
const CMS_TYPE = DatabaseWorker::CMS_WORDPRESS;​

Так?
-----------------------------------------------
Я поставил все так, идем дальше.
ae757b6e6e10437c9995b7d82aaa8e2f.png
В auth.php все обламывается на ~40 строке.
В responense.txt и toresponense.txt вообще пусто.
Java:
    // Расшифровываем запрос:
        Response.SaveToFile('C:\responense.txt');
    EncryptDecryptVerrnam(Response.Memory, Response.Size, PAnsiChar(FEncryptionKey), Length(FEncryptionKey));
    UTF8Convert(Response);

    // Преобразовываем запрос в JSON:
         Response.SaveToFile('C:\toresponense.txt');
    FAuthResponse^ := JSONStringToJSONObject(Response.DataString);
servers.json проверялся парсером ошибок нету.
Ключ шифрования совпадает. (Только что специально ещё раз проверил)
Версия php 7.0, пробовал и 5.6.
 
Последнее редактирование модератором:
demkom, самое главное: проверь, что версия PHP которую ты используешь 5.6 или новее.
в самом начале файла dbutils нужно раскомментировать одну строчку, специально для wordpress.

щас буду думать дальше
 
demkom, самое главное: проверь, что версия PHP которую ты используешь 5.6 или новее.
в самом начале файла dbutils нужно раскомментировать одну строчку, специально для wordpress.

щас буду думать дальше
Раскомментировал. Версия php 7.0, пробовал и 5.6.
 
Вот здесь все дохнет.
(40) $authStatus = $dbWorker->IsPlayerInBase($playersTableName, $login, $password);

Ну значит нужно лезть в тело функции IsPlayerInBase, в файл WordPress.php и применять метод поиска льва в пустыне уже там. Внимательно посмотри, возможно у тебя по-другому называются таблицы или столбцы в них.

А логи веб-сервера на всякий случай почитай.
Ещё желательно проверить наличие расширения PDO в PHP-движке, выполнив функцию phpinfo();
 
Ну значит нужно лезть в тело функции IsPlayerInBase, в файл WordPress.php и применять метод поиска льва в пустыне уже там. Внимательно посмотри, возможно у тебя по-другому называются таблицы или столбцы в них.

А логи веб-сервера на всякий случай почитай.
Ещё желательно проверить наличие расширения PDO в PHP-движке, выполнив функцию phpinfo();
PDO включил.
Собсна логи:
YAML:
[Mon Feb 20 00:17:32.674575 2017] [:error] [pid 608769:tid 139626819704576] PHP Fatal error:  Uncaught Error: Class 'PasswordHash' not found in /home/nrabftei/domains/мой домен/public_html/websys/webUtils/CMS/WordPress.php:14
[Mon Feb 20 00:17:32.674586 2017] [:error] [pid 608769:tid 139626819704576] Stack trace:
[Mon Feb 20 00:17:32.674605 2017] [:error] [pid 608769:tid 139626819704576] #0 /home/nrabftei/domains/мой домен/public_html/websys/webUtils/dbUtils.php(139): include()
[Mon Feb 20 00:17:32.674632 2017] [:error] [pid 608769:tid 139626819704576] #1 /home/nrabftei/domains/мой домен/public_html/websys/auth.php(41): DatabaseWorker->IsPlayerInBase('wp_users', 'demkom', '21432')
[Mon Feb 20 00:17:32.674636 2017] [:error] [pid 608769:tid 139626819704576] #2 {main}
[Mon Feb 20 00:17:32.674656 2017] [:error] [pid 608769:tid 139626819704576]  thrown in /home/nrabftei/domains/мой домен/public_html/websys/webUtils/CMS/WordPress.php on line 14
[Mon Feb 20 00:29:20.159557 2017] [:error] [pid 608871:tid 139627029423872] PHP Warning:  include_once(WordPressPasswordHash.php): failed to open stream: No such file or directory in /home/nrabftei/domains/мой домен/public_html/websys/webUtils/dbUtils.php on line 4
[Mon Feb 20 00:29:20.159622 2017] [:error] [pid 608871:tid 139627029423872] PHP Warning:  include_once(): Failed opening 'WordPressPasswordHash.php' for inclusion (include_path='.:/opt/alt/php70/usr/share/pear') in /home/nrabftei/domains/мой домен/public_html/websys/webUtils/dbUtils.php on line 4
[Mon Feb 20 00:29:20.163407 2017] [:error] [pid 608871:tid 139627029423872] PHP Fatal error:  Uncaught Error: Class 'PasswordHash' not found in /home/nrabftei/domains/мой домен/public_html/websys/webUtils/CMS/WordPress.php:14
[Mon Feb 20 00:29:20.163422 2017] [:error] [pid 608871:tid 139627029423872] Stack trace:
[Mon Feb 20 00:29:20.163439 2017] [:error] [pid 608871:tid 139627029423872] #0 /home/nrabftei/domains/мой домен/public_html/websys/webUtils/dbUtils.php(139): include()
[Mon Feb 20 00:29:20.163461 2017] [:error] [pid 608871:tid 139627029423872] #1 /home/nrabftei/domains/мой домен/public_html/websys/auth.php(42): DatabaseWorker->IsPlayerInBase('wp_users', 'demkom', '2351')
[Mon Feb 20 00:29:20.163465 2017] [:error] [pid 608871:tid 139627029423872] #2 {main}
[Mon Feb 20 00:29:20.163483 2017] [:error] [pid 608871:tid 139627029423872]  thrown in /home/nrabftei/domains/мой домен/public_html/websys/webUtils/CMS/WordPress.php on line 14
 
Последнее редактирование модератором:
demkom, добавь в начало файла dbutils.php

Код:
include_once('settings.php');
include_once('class-phpass.php');

а WordPress.php попробуй изменить на вот этот:

Код:
global $playersTableName;

$wp_hasher = new PasswordHash(8, TRUE);

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

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

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

} else {
    return $this::STATUS_DB_OBJECT_NOT_PRESENT;
}

И добавь файлы, как рекомендует STARR вот в этой инструкции.
Похоже, что FMXL3 разучился работать с новыми версиями БД для WordPress, нужно будет потанцевать с бубном.
 
demkom, добавь в начало файла dbutils.php

Код:
include_once('settings.php');
include_once('class-phpass.php');

а WordPress.php попробуй изменить на вот этот:

Код:
global $playersTableName;

$wp_hasher = new PasswordHash(8, TRUE);

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

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

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

} else {
    return $this::STATUS_DB_OBJECT_NOT_PRESENT;
}

И добавь файлы, как рекомендует STARR вот в этой инструкции.
Похоже, что FMXL3 разучился работать с новыми версиями БД для WordPress, нужно будет потанцевать с бубном.
Ладненько, буду ждать фикса.
 
demkom, Я сам с WordPress дел не имею, так что вся надежда на тебя =) Попробуй сам потанцевать с бубном, я могу подсказывать в случае чего...
 
demkom, Я сам с WordPress дел не имею, так что вся надежда на тебя =) Попробуй сам потанцевать с бубном, я могу подсказывать в случае чего...
Эхххх. Ладно что то буду пробовать, но лучше не надеяться на меня...
P.S. А я так не хотел ставить этот DLE. Если не получится исправить придется его ставить.
 
Как сделать авторизацию через, офицальный сайт
 
Ребят, помогите, в общем, всё сделал, скомпилировал Delphi Berlin (Если не ошибаюсь, то это 10.1), пробую запустит (Всё настроил) и в итоге у меня ошибка "Неверный логин или пароль"
Забыл добавить, что во время компиляции появляются варнинги (Warnings) ~ 21 шт.
 
RussiaCraft, 1. Проверь ключи шифрования в лаунчере и веб-части. 2. Скачай свежую версию исходников веб-части и лаунчера из GitHub. 3. Убедись, что на WEB-сервере установлен PHP 5.6+ и есть расширение PDO. 4. Выведи логи из веб-части вот этим способом.
 
RussiaCraft, 1. Проверь ключи шифрования в лаунчере и веб-части. 2. Скачай свежую версию исходников веб-части и лаунчера из GitHub. 3. Убедись, что на WEB-сервере установлен PHP 5.6+ и есть расширение PDO. 4. Выведи логи из веб-части вот этим способом.
Вроде всё проверил, кроме последнего пункта, т. к. не создаётся файл mylog.txt, остальное всё нормально, и PDO есть и PHP 7.1 (Была 7.0)
+ Вопрос, что тут писать
// Ключ шифрования пароля в реестре:
 
+ Вопрос, что тут писать
// Ключ шифрования пароля в реестре:

Случайную последовательность букв и цифр впиши.

Попробуй сам создать файл mylog.txt, может он не создаётся из-за нехватки прав на каталог.
 
Попробуй сам создать файл mylog.txt, может он не создаётся из-за нехватки прав на каталог.
Не помогает, размер всё-равно 0 бит + Как его полноценно к DLE привязать? (В спец. файле DLE указал, но может надо, что-то подправить?)
 
Не помогает, размер всё-равно 0 бит + Как его полноценно к DLE привязать? (В спец. файле DLE указал, но может надо, что-то подправить?)

Надо проверить какое шифрование паролей использует твоя версия DLE (погуглить это).
Если md5(md5(пароль)) то ничего менять не надо. А если другое - надо танцевать с бубном и чуть подправить код. Я могу помочь с этим. Скажи какая версия DLE у тебя сейчас стоит и желательно скинь ссылку на исходный код.

Если файл 0 бит значит до момента записи mylog.txt программа в файле auth.php даже не доходит. Тебе надо применять поиск ошибки методом поиска льва в пустыне.
 
Последнее редактирование:

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

Назад
Верх