Дело в том что, если ввожу при /alogin неправильный пароль пишет что авторизовался как 0 уровень, а если верный, то как авторизовался как к примеру 7 лвл
PHP код:
#define CHECK_VALID_ADMIN "testserver/getadm.php?skey=245053glgstj2gm53&nick=%s&password=%s&server=%d&ip=%s"
PHP код:
case 153:
{
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid,153,DIALOG_STYLE_PASSWORD,"Админ авторизация","Введите пароль\n\nПароль должен состоять из латинских букв и цифр\n\tразмером от 6 до 15 символов","Вход","Отмена");
if(strlen(inputtext) < 6 || strlen(inputtext) > 15) return ShowPlayerDialog(playerid,153,DIALOG_STYLE_PASSWORD,"Админ авторизация","Введите пароль\n\nПароль должен состоять из латинских букв и цифр\n\tразмером от 6 до 15 символов","Вход","Отмена");
if(IsPassInvalid(inputtext)) return ShowPlayerDialog(playerid,153,DIALOG_STYLE_PASSWORD,"Админ авторизация","Введите пароль\n\nПароль должен состоять из латинских букв и цифр\n\tразмером от 6 до 15 символов","Вход","Отмена");
//if(!strcmp(pData[playerid][pKey], inputtext, true)) return ShowPlayerDialog(playerid,153,DIALOG_STYLE_MSGBOX,"Админ авторизация","Пароль не должен совпадать с игровым","Повтор","Отмена");
new count1;
for (new i; i < strlen(inputtext); i++)
if (inputtext[i] >= '0' && inputtext[i] <= '9')
count1++;
if(count1 == 0) return ShowPlayerDialog(playerid,153,DIALOG_STYLE_PASSWORD,"Админ авторизация","Введите пароль\n\nПароль должен состоять из латинских букв и цифр\n\tразмером от 6 до 15 символов","Вход","Отмена");
if(strlen(inputtext) == count1) return ShowPlayerDialog(playerid,153,DIALOG_STYLE_PASSWORD,"Админ авторизация","Введите пароль\n\nПароль должен состоять из латинских букв и цифр\n\tразмером от 6 до 15 символов","Вход","Отмена");
PlayerAlogin[playerid] = 1;
new httpquery[115];
format(httpquery,sizeof(httpquery),CHECK_VALID_ADMIN,pData[playerid][pNames], inputtext, serveridthis,pData[playerid][pGetonIP]);
HTTP(playerid, HTTP_GET, httpquery, "", "ForAdminLogin");
}
}
getadm.php:
PHP код:
<?php
function SuccessLogin($level, $ip, $server, $nick)
{
mysql_query("UPDATE `admin` SET `lastserver` = '$server', `lastIP` = '$ip', `UnixLastLogin` = UNIX_TIMESTAMP() WHERE `nick` = '$nick'");
echo"$level";
mysql_close();
exit;
}
function SetPassword($nick, $password)
{
mysql_query("UPDATE `admin` SET `password` = '$password' WHERE `nick` = '$nick'");
}
if($_GET['skey'] == "245053glgstj2gm53")
{
$nick = $_GET['nick'];
$password = $_GET['password'];
$server = $_GET['server'];
$playerip = $_GET['ip'];
$l=mysql_connect("localhost", "root", "");
mysql_select_db("bd");
$sql = "SELECT * FROM `admin` WHERE `nick` = '$nick'";
$result = mysql_query($sql);
if(mysql_num_rows($result) == 0) die("NO|0"); //не админ
$row = mysql_fetch_assoc($result);
if($row['password'] == "255")
{
SetPassword($nick, $password);
$row['password'] = $password;
}
if($password != $row['password']) die("PI|0"); //неверный пароль
if($server == $row['server']) SuccessLogin($row['level'], $playerip, $server, $nick); //игрок зашел под админку на основном сервере, пускаем.
else //гостевой сервер
{
if($playerip != $row['lastIP']) die("IC|0"); //ип сменился, зовем игрока на основной сервер
switch($row['level'])
{
case 1: SuccessLogin(1, $playerip, $server, $nick);
case 2: SuccessLogin(1, $playerip, $server, $nick);
case 3: SuccessLogin(2, $playerip, $server, $nick);
case 4: SuccessLogin(2, $playerip, $server, $nick);
case 5: SuccessLogin(2, $playerip, $server, $nick);
case 6: SuccessLogin(4, $playerip, $server, $nick);
default: SuccessLogin($row['level'], $playerip, $server, $nick);
}
}
}
else die("IK");
?>
PHP код:
forward ForAdminLogin(index, response_code, data[]);
public ForAdminLogin(index, response_code, data[])
{
if(response_code == 200)
{
if(!PlayerAlogin[index]) return SendClientMessage(index, COLOR_GREY, " Ошибка входа"); //возможно игрок пытался взломать систему
PlayerAlogin[index] = 0;
if(!strcmp(data,"IK",true,2)) return SendClientMessage(index, COLOR_GREY, " Неизвестная ошибка");
if(!strcmp(data,"NO",true,2)) return SendClientMessage(index, COLOR_GREY, " Вы не модератор");
if(!strcmp(data,"PI",true,2))
{
new string[102];
format(string, sizeof(string), " <ALogin> %s[%d] ввел неверный пароль",pData[index][pNames],index);
ABroadCast(0xF4B800AA, string, 1);
SendClientMessage(index, COLOR_GREY, " Вы ввели неверный пароль");
}
if(!strcmp(data,"IC",true,2)) return SendClientMessage(index, 0x9F0000FF, " Ошибка системы безопасности. Войдите с данного компьютера на Ваш форумный аккаунт");
if(!strcmp(data,"AD",true,2)) return SendClientMessage(index, 0x9F0000FF, " У вас нет доступа к администрированию на данном сервере");
new admlvl;
if(!strcmp(data,"FL",true,2))//первый вход в админку
{
SendClientMessage(index, COLOR_GREEN, " Поздравляем! Вы получили доступ модератора");
pData[index][pIsAdmin] = 1;
}
else
{
admlvl = strval(data);
pData[index][pIsAdmin] = admlvl;
SendMes(index,0xF4B800AA," Вы авторизировались как модератор %d уровня",admlvl);
}
SetPVarInt(index, "IsAdmin", pData[index][pIsAdmin]);
PlayerAlogin[index] = 0;
SetPlayerTeam(index, 1);
if(pData[index][pIsAdmin] > 6)
{
new string[52];
format(string,sizeof(string)," <ALogin> вошел %s[%d]",pData[index][pNames],index);
ABroadCast(0xF4B800AA,string,1);
#if defined _YSF_included
if(pData[index][pIsAdmin] > 8) SetPlayerAdmin(index, true);
#endif
}
else
{
new string[52];
format(string,sizeof(string)," <ALogin> вошел %s[%d]",pData[index][pNames],index);
ABroadCast(0xF4B800AA,string,1);
}
}
else
{
return PlayerAlogin[index] = 0,ShowPlayerDialog(index,0,0,"Ошибка","Ошибка соединения! Повторите позже","Закрыть","");
}
return 1;
}