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

Помогите Сессии в лаунчере

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

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

    beezy Участник Пользователь

    Баллы:
    28
    Как сделать чтобы каждая сессия была лишь для 1 захода в игру,а потом она менялась?
     
    slavik123123123 нравится это.
  2. Хостинг MineCraft
    <
  3. kaban1997

    kaban1997 Старожил Переводчик Пользователь

    Баллы:
    173
    Плагином подключится к базе и при onPlayerLogout очищать сессию
     
  4. Raptor2108

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

    Баллы:
    173
    Skype:
    Raptor210818
    Имя в Minecraft:
    Raptor2108
    Это уже со стороны сервера, в checkserver.php допиши удаление сессии, после успешного захода на сервер.
     
  5. Автор темы
    beezy

    beezy Участник Пользователь

    Баллы:
    28
    а код можно который надо дописать?просто чтобы люди читы не юзали)
     
  6. Автор темы
    beezy

    beezy Участник Пользователь

    Баллы:
    28
    а то md5 уже не помогает
     
  7. Raptor2108

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

    Баллы:
    173
    Skype:
    Raptor210818
    Имя в Minecraft:
    Raptor2108
    Код:
    <?php
    define('INCLUDE_CHECK',true);
    include ("connect.php");
    $user = mysql_real_escape_string($_GET['user']);
    $serverid = mysql_real_escape_string($_GET['serverId']);
    $result = mysql_query("Select $db_columnUser From $db_table Where $db_columnUser='$user' And $db_columnServer='$serverid'") or die (mysql_error());
    if(mysql_num_rows($result) == 1)
    {
    echo "YES";
    mysql_query("DELETE FROM $db_table WHERE $db_columnServer='$serverid'") or die (mysql_error());
    }
    else echo "NO";
    ?>
    За работоспособность не ручаюсь. Это checkserver.php.
     
  8. kaban1997

    kaban1997 Старожил Переводчик Пользователь

    Баллы:
    173
    Немного неправильно, скорее всего надо
    PHP:
    mysql_query("DELETE $db_columnServer FROM $db_table WHERE $db_columnServer='$serverid'") or die (mysql_error());
     
  9. akke

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

    Баллы:
    103
    Лолки, вы в checkserver удаляете пользователя после его успешной авторизации.
     
  10. kaban1997

    kaban1997 Старожил Переводчик Пользователь

    Баллы:
    173
    Ой. Точняк.
    тогда попробуй
    PHP:
    mysql_query("UPDATE $db_table SET $db_columnServer =null WHERE $db_columnServer='$serverid'") or die (mysql_error());
     
  11. Автор темы
    beezy

    beezy Участник Пользователь

    Баллы:
    28
    это перед }
    else echo "NO";
    ?>
    вставлять?
     
  12. kaban1997

    kaban1997 Старожил Переводчик Пользователь

    Баллы:
    173
  13. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Одноразовая сессия.
    Код:
    <?php
        define('INCLUDE_CHECK',true);
        include ("connect.php");
        $user = mysql_real_escape_string($_GET['user']);
        $serverid = mysql_real_escape_string($_GET['serverId']);
        $result = mysql_query("Select $db_columnUser From $db_table Where $db_columnUser='$user' And $db_columnServer='$serverid'") or die (mysql_error());
        if(mysql_num_rows($result) == 1) echo "YES";
        else echo "NO";
        $sessid = generateSessionId();
        mysql_query("Update $db_table SET $db_columnSesId='$sessid' Where $db_columnUser='$user'") or die (mysql_error());
            function generateSessionId(){
        // generate rand num
        srand(time());
        $randNum = rand(1000000000, 2147483647).rand(1000000000, 2147483647).rand(0,9);
        return $randNum;
        }
    ?>
     
  14. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Этим удаляется id сервера. Клиент создаст новый при конекте к joinserver.php
     
  15. Raptor2108

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

    Баллы:
    173
    Skype:
    Raptor210818
    Имя в Minecraft:
    Raptor2108
    и? Это не помешает ему войти на сервер и играть, а при следующем заходе с генерируется новая сессия.
     
  16. akke

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

    Баллы:
    103
    Этот запрос вообще удаляет пользователя из базы. Регистрироваться заново надо. Разницу чуешь?
     
  17. Raptor2108

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

    Баллы:
    173
    Skype:
    Raptor210818
    Имя в Minecraft:
    Raptor2108
    возможно я ошибся в синтаксисе, задумка была удалить только сессию.
     
    Оригинало_о и slavik123123123 нравится это.
  18. Code

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

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    а чем это поможет?)
     
  19. qwertyYy2

    qwertyYy2 Старожил

    Баллы:
    103
    для Webcmr пойдет? p.s строку connect.php можно удалять? у меня его нету.
     
    ALLix нравится это.
  20. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Тогда нужно подключить свой конфиг и чтоб все $переменные совпадали.
     
  21. qwertyYy2

    qwertyYy2 Старожил

    Баллы:
    103
    checkserver.php
    что тут конкретно менять? неуверен просто, строки менять.
    Код:
    <?php
    require_once('../system.php');
    $str = '';   
     
    if (!empty($_GET['user']) and !empty($_GET['serverId'])) {
     
        $user = mysql_real_escape_string($_GET['user']);
        $serverid = mysql_real_escape_string($_GET['serverId']);
     
        if (!preg_match("/^[a-zA-Z0-9_-]+$/", $user)) {
           
                    $str = "Server Test [Bad symbols Login] ";
                    echo "NO";
           
        } elseif (!preg_match("/^[a-z0-9_-]+$/", $serverid)) {
           
                    $str = "Server Test [Bad symbols ServerId] ";
                    echo "NO";
                   
        } else {   
           
            $result = BD("SELECT $bd_aUsername FROM $bd_table_accounts WHERE $bd_aUsername='$user' AND $bd_aServer='$serverid'");
     
            if(mysql_num_rows($result) == 1){
           
              $user_login = new User($user,$bd_aUsername);
              $user_login->gameLoginConfirm();
             
              $str = "Server Test [Success]";
              echo "YES";
             
            } else {
           
              $str = "Server Test [User not found] User [$user] Server ID [$serverid]";
              echo "NO";
                         
            }
           
        }
     
    } else {
     
        $str = "Server Test [GET parameter empty] ";
        if (empty($_GET['user'])) $str .= "USER parameter is empty | ";
        if (empty($_GET['serverId'])) $str .= "SERVERID parameter is empty";
       
        echo "NO";
     
    }
     
    vtxtlog($str);
    ?>
     

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