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

Помогите с авторизацией на своем сервере.

Тема в разделе "[Архив] Помощь", создана пользователем Kwasti, 23 авг 2013.

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

    Kwasti Активный участник

    Баллы:
    63
    Вот часть скрипта логина выдающего номер сессии:
    PHP:
     printf($gamebuild.':'.$dlticket.':'.$loginName.':'.$sessid);
    Вот скрипт проверки.
    PHP:
    <?php
    include ("connect.php");
    $user$mysqli->real_escape_string($_GET['user']);
    $serverid$mysqli->real_escape_string($_GET['serverId']);
    $sessionid$mysqli->real_escape_string($_GET['sessionId']);
    $query "Select $db_columnUser From $db_table Where $db_columnSesId='$sessionid' And $db_columnUser='$user' And $db_columnServer='$serverid'";
    $mysqli->query($query);
    if(
    $mysqli->affected_rows == 1)  {    printf("ok"); }
    else {
        
    $query ="Update $db_table SET $db_columnServer='$serverid' Where $db_columnSesId='$sessionid' And $db_columnUser='$user'";
        
    $mysqli->query($query);
        if(
    $mysqli->affected_rows == 1)   {     printf("ok");
        } else {     
    printf("Bad login");  }
    }
    $mysqli->close();
    ?>
    логин проходит успешно, видно из таблицы в которой записывается сессия.
    далее при подключении к серверу, происходит обращение к скрипту joinserver.php
    в нем постоянно была ошибка Failed to login: ...Bad login. (перед Bad дogin 3 левых символа, объясню ниже).
    чтобы понять в чем дело я изменил код и во все printf(); я добавил вывод строки запроса к БД
    оказалось $sessionid почему-то содержит в конце 2 символа "\r" причем это именно 2 символа а не 1.
    добавив в скрипт ф-цию замены
    PHP:
    $sessionid=str_replace("\\r","",$sessionid)
    в результате я уже стал получать другой ответ, а именно:
    Failed to login: ...ok
    отсюда вывод что скрипт уже стал идти по пути положительного логина и верной сесии, но все равно Failed! Вот тут и всплывают эти 3 непонятных символа перед ok
    Откуда они берутся и откуда берутся символы "\r" в сессии? (понятно что это преобразованный символ возврата строки, но как избежать появления этих левых символов?
    для веб сервера пока использую Денвер.
    5.5.25 - MySQL
    Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/1.0.1c PHP/5.3.13

    майнкрафт версия 1.5.2
    для теста запускаю ч/з батник
    "C:\Program Files\Java\jre7\bin\javaw" -d64 -Xms1024M -Xmx1024M -Djava.library.path="bin\natives" -cp "bin\minecraft.jar;bin\jinput.jar;bin\lwjgl.jar;bin\lwjgl_util.jar" net.minecraft.client.Minecraft Kwasti 127902678514379053652 --password 123456
    проанализировав код для запуска сессия не используется. т.к. при наличии параметров логина некоторой_сессии --password непосредственно_пароля
    происходит формирование новой сессии путем обращения к скрипту логина. (ответ выдается скриптом указанным первым в посте)
     
  2. Хостинг MineCraft
    <

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