Помогите Проблемы с регистром на линуксе

  • Автор темы Автор темы SensoR
  • Дата начала Дата начала

SensoR

Старожил
Пользователь
Баллы
153
Имя в Minecraft
SensoR2x
Если поменять регистер ника и зайти на сервер, то сервер считает этого человека как за нового. Сервер на линукс. Без плагинов. CB 1.4.5 R0.2 Beta, на Windows всё в порядке.

slenky
fromgate
Ission
Помогите
 
Если поменять регистер ника и зайти на сервер, то сервер считает этого человека как за нового. Сервер на линукс. Без плагинов. CB 1.4.5 R0.2 Beta, на Windows всё в порядке.

slenky
fromgate
Ission
Помогите
Это специфика файловой системы *nix'ов. Файлы с разными регистрами являюится разными, а игрок, как известно, хранится в файле <ник>.dat.
 
Это специфика файловой системы *nix'ов. Файлы с разными регистрами являюится разными, а игрок, как известно, хранится в файле <ник>.dat.
Это то и нам известно , а вот как это можно фиксануть ...

ADD: Большинство серверов на *nix системе , но там все отлично ! Зашел первый раз допустим с ником plaYER , то потом хоть сколько раз меняй , все равно зайдет с под plaYER
 
http://www.rubukkit.org/threads/iplogs-alpha-набор-полезных-функций-для-оффлайн-сервера.15238/

Как одна из будущих функций заявлена "2. Отключение возмодности игрокам заходить под своим же ником но маленькими/большими буквами.". Напишите автору, может у него уже все сделано?
Но я отлично помню , что на 1.2.5 r5.0 все работало на УРА ! То есть то , что я уже говорил .
 
Если лаунчер привязан к сайту, то в скрипте авторизации сделай проверку логина.
 
<?php
define('INCLUDE_CHECK',true);
error_reporting(0);
require 'config.php';
require 'functions.php';
include ('connect.php');
$login = mysql_real_escape_string($_POST['user']);
$postPass=mysql_real_escape_string($_POST['password']);
$ver=mysql_real_escape_string($_POST['version']);

if (!preg_match("/^[a-zA-Z0-9_-]+$/", $login) || !preg_match("/^[a-zA-Z0-9_-]+$/", $postPass) || !preg_match("/^[a-zA-Z0-9_-]+$/", $ver)){

echo "Bad login";

exit;
}

if(getGameInfo('launcher') == $ver){

if ($crypt == 'hash_md5' || $crypt == 'hash_authme' || $crypt == 'hash_xauth' || $crypt == 'hash_cauth' || $crypt == 'hash_joomla' || $crypt == 'hash_drupal' || $crypt == 'hash_wordpress' || $crypt == 'hash_dle')
{
$row = mysql_fetch_assoc(mysql_query("SELECT $db_columnUser,$db_columnPass FROM $db_table WHERE $db_columnUser='{$_POST['user']}'"));
$realPass = $row[$db_columnPass];
}

if ($crypt == 'hash_ipb' || $crypt == 'hash_vbulletin')
{
$row = mysql_fetch_assoc(mysql_query("SELECT $db_columnUser,$db_columnPass,$db_columnOther FROM $db_table WHERE $db_columnUser='{$_POST['user']}'"));
$realPass = $row[$db_columnPass];
$salt = $row[$db_columnOther];
}

if ($crypt == 'hash_xenforo')
{
$row = mysql_fetch_assoc(mysql_query("SELECT $db_table.$db_table.$db_columnUser,$db_tableOther.$db_tableOther.$db_columnPass FROM $db_table, $db_tableOther WHERE $db_table.$db_columnId = $db_tableOther.$db_columnId AND $db_table.$db_columnUser='{$_POST['user']}'"));
$realPass = substr($row[$db_columnPass],22,64);
$salt = substr($row[$db_columnPass],105,64);
}

if ($realPass)
{
$checkPass = $crypt();

if(strcmp($realPass,$checkPass) == 0)
{
$sessid = generateSessionId();
$gamebuild=getGameInfo('build');
mysql_query("UPDATE $db_table SET $db_columnSesId='$sessid' WHERE $db_columnUser = '$login'") or die ("Запрос к базе завершился ошибкой.");
$dlticket = md5($login);
echo $gamebuild.':'.$dlticket.':'.$login.':'.$sessid.':';
}
else
{
echo "Bad login";
}
}
else {
echo "Bad login";
}
}
else{
echo 'Old version';
}
?>
Скрипт авторизации
 
Проверьте. На скорую руку отредактировал
<?php
define('INCLUDE_CHECK',true);
error_reporting(0);
require 'config.php';
require 'functions.php';
include ('connect.php');
$login = mysql_real_escape_string($_POST['user']);
$postPass=mysql_real_escape_string($_POST['password']);
$ver=mysql_real_escape_string($_POST['version']);

if (!preg_match("/^[a-zA-Z0-9_-]+$/", $login) || !preg_match("/^[a-zA-Z0-9_-]+$/", $postPass) || !preg_match("/^[a-zA-Z0-9_-]+$/", $ver)){

echo "Bad login";

exit;
}

if(getGameInfo('launcher') == $ver){

if ($crypt == 'hash_md5' || $crypt == 'hash_authme' || $crypt == 'hash_xauth' || $crypt == 'hash_cauth' || $crypt == 'hash_joomla' || $crypt == 'hash_drupal' || $crypt == 'hash_wordpress' || $crypt == 'hash_dle')
{
$row = mysql_fetch_assoc(mysql_query("SELECT $db_columnUser,$db_columnPass FROM $db_table WHERE $db_columnUser='{$_POST['user']}'"));
$realPass = $row[$db_columnPass];
$realUser = $row[$db_columnUser];
}

if ($crypt == 'hash_ipb' || $crypt == 'hash_vbulletin')
{
$row = mysql_fetch_assoc(mysql_query("SELECT $db_columnUser,$db_columnPass,$db_columnOther FROM $db_table WHERE $db_columnUser='{$_POST['user']}'"));
$realPass = $row[$db_columnPass];
$realUser = $row[$db_columnUser];
$salt = $row[$db_columnOther];
}

if ($crypt == 'hash_xenforo')
{
$row = mysql_fetch_assoc(mysql_query("SELECT $db_table.$db_table.$db_columnUser,$db_tableOther.$db_tableOther.$db_columnPass FROM $db_table, $db_tableOther WHERE $db_table.$db_columnId = $db_tableOther.$db_columnId AND $db_table.$db_columnUser='{$_POST['user']}'"));
$realPass = substr($row[$db_columnPass],22,64);
$salt = substr($row[$db_columnPass],105,64);
}

if ($realPass)
{
$checkPass = $crypt();

if(strcmp($realPass,$checkPass) == 0)
{
if ($login !== $realUser)
{
exit ("Bad login");
}


$sessid = generateSessionId();
$gamebuild=getGameInfo('build');
mysql_query("UPDATE $db_table SET $db_columnSesId='$sessid' WHERE $db_columnUser = '$login'") or die ("Запрос к базе завершился ошибкой.");
$dlticket = md5($login);
echo $gamebuild.':'.$dlticket.':'.$login.':'.$sessid.':';
}
else
{
echo "Bad login";
}
}
else {
echo "Bad login";
}
}
else{
echo 'Old version';
}
?>
 
Назад
Верх