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

  • Автор темы Автор темы beezy
  • Дата начала Дата начала
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);
?>
о_О сколько говнокода даж и незнаю 🙂.
 
Ап. Я тоже интересуюсь этой темой. Стоит WebMCR.
 
И думаю, что сессия сменяется. То есть - менять ничего не надо.
В system.php есть строки:
Код:
 if (!isset($_SESSION)) session_start();
if (isset($_SESSION)) session_destroy();
Может ошибаюсь.
 
Одноразовая сессия.
Код:
<?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;
    }
?>

Спасибо большое!
 
Одноразовая сессия.
Код:
<?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;
    }
?>
Это чексервер?
 
Одноразовая сессия.
Код:
<?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;
    }
?>


Код:
<?php
    define('INCLUDE_CHECK',true);
    include ("connect.php");
    $user = mysql_real_escape_string($_GET['user']);
    $serverid = mysql_real_escape_string($_GET['serverId']);
   
    if (!preg_match("/^[a-zA-Z0-9_-]+$/", $user) || !preg_match("/^[a-zA-Z0-9_-]+$/", $serverid)){
 
        echo "NO";   
       
    exit;
    }   
   
    $result = mysql_query("Select $db_columnUser From $db_table Where $db_columnUser='$user' And $db_columnServer='$serverid'") or die ("Ошибка");
    $row = mysql_fetch_assoc($result);
    $realUser = $row[$db_columnUser];
    if ($user !== $realUser)
    {
    exit ("NO");
    }
    if(mysql_num_rows($result) == 1) echo "YES";
    else echo "NO";
?>
как к вашему фиксу прикрутить?
 
а чексервер нет смысла одноразовую ставить, отменят вход и все.
 
а чексервер нет смысла одноразовую ставить, отменят вход и все.

а как же тогда сделать одноразовую сессию?в джоинсервер?
если что ваш джоин
PHP:
<?php
    define('INCLUDE_CHECK',true);
    include("connect.php");
    $sessionid = mysql_real_escape_string($_GET['sessionId']);
    $user = mysql_real_escape_string($_GET['user']);
    $serverid = mysql_real_escape_string($_GET['serverId']);
   
    if (!preg_match("/^[a-zA-Z0-9_-]+$/", $user) || !preg_match("/^[a-zA-Z0-9_-]+$/", $sessionid) || !preg_match("/^[a-zA-Z0-9_-]+$/", $serverid)){
 
        echo "Перезайдите или скачайте наш лаунчер с сайта!";     
       
    exit;
    }   
   
    $result = mysql_query("Select $db_columnUser From $db_table Where $db_columnSesId='$sessionid' And $db_columnUser='$user' And $db_columnServer='$serverid'") or die ("Ошибка");
 
    if(mysql_num_rows($result) == 1) echo "OK";
    else
    {
        $result = mysql_query("Update $db_table SET $db_columnServer='$serverid' Where $db_columnSesId='$sessionid' And $db_columnUser='$user'") or die ("Ошибка");
        if(mysql_affected_rows() == 1) echo "OK";
        else echo "Bad login";
    }
?>
 
Назад
Верх