• Страница 1 из 1
  • 1
Модератор форума: LightInDarkness  
Функции для работы с базой realmd
VISO
/dev/null
Функции для работы с базой realmd в trinity

Проверка логина и пароля:

Code
function checklogpass ($username, $password)
{
       $login = mysql_real_escape_string($username);
    $sha_pass_hash = sha1(strtoupper($login) . ":" . strtoupper($password));
       $query = "SELECT `id`
               FROM `account`
               WHERE `username`='{$login}' AND `sha_pass_hash`='{$sha_pass_hash}'
               LIMIT 1";
       $sql = mysql_query($query) or die(mysql_error());
       if (mysql_num_rows($sql) == 1) {
           $row = mysql_fetch_assoc($sql);
           return $row["id"];
       }
    else {
    return 0;
    }
};

Если логин и пароль верны, то функция вернёт id аккаунта, если нет, то 0

GM Level аккаунта:

Code
function getgmlvl ($accid)
{
       $query = "SELECT `gmlevel`
               FROM `account_access`
               WHERE `id`='{$accid}'
               LIMIT 1";
       $sql = mysql_query($query) or die(mysql_error());
       if (mysql_num_rows($sql) == 1) {
           $row = mysql_fetch_assoc($sql);
           return $row["gmlevel"];
       }
    else {
    return 0;
    }
};

Без комментариев, думаю всё и так понятно

Узнать забанен ли ip:

Code
function checkipban ($ip)
{
       $query = "SELECT `unbandate`
               FROM `ip_banned`
               WHERE `ip`='{$ip}'
               LIMIT 1";
       $sql = mysql_query($query) or die(mysql_error());
       if (mysql_num_rows($sql) == 1) {
           $row = mysql_fetch_assoc($sql);
           return $row["unbandate"];
       }
    else {
    return 0;
    }
};

Если ip в бане, то возвращает время разбана в UNIX формате, если нет то 0

Узнать забанен ли аккаунт:

Code
function checkaccban ($accid)
{
       $query = "SELECT `unbandate`
               FROM `account_banned`
               WHERE `id`='{$accid}'
               LIMIT 1";
       $sql = mysql_query($query) or die(mysql_error());
       if (mysql_num_rows($sql) == 1) {
           $row = mysql_fetch_assoc($sql);
           return $row["unbandate"];
       }
    else {
    return 0;
    }
};

Если аккаунт в бане, то возвращает время разбана в UNIX формате, если нет то 0

Узнать количество персонажей на аккаунте:

Code
function charscount ($accid, $realmid)
{
       $query = "SELECT `numchars`
               FROM `realmcharacters`
               WHERE `acctid`='{$accid}' AND `realmid`='{$realmid}'
               LIMIT 1";
       $sql = mysql_query($query) or die(mysql_error());
       if (mysql_num_rows($sql) == 1) {
           $row = mysql_fetch_assoc($sql);
           return $row["numchars"];
       }
    else {
    return 0;
    }
};

Без комментариев, думаю всё и так понятно

Узнать id аккаунта по имени пользователя:

Code
function idbyacc ($accname)
{
$login = strtoupper($accname);
      $query = "SELECT `id`
              FROM `account`
              WHERE `username`='{$login}'
              LIMIT 1";
      $sql = mysql_query($query) or die(mysql_error());
      if (mysql_num_rows($sql) == 1) {
          $row = mysql_fetch_assoc($sql);
          return $row["id"];
      }
   else {
   return 0;
   }
};

Если аккаунт найден, то возвращает его id, если нет, то 0

Узнать аккаунт по его id'у:

Code
function accbyid ($accid)
{
      $query = "SELECT `username`
              FROM `account`
              WHERE `id`='{$accid}'
              LIMIT 1";
      $sql = mysql_query($query) or die(mysql_error());
      if (mysql_num_rows($sql) == 1) {
          $row = mysql_fetch_assoc($sql);
          return $row["username"];
      }
   else {
   return 0;
   }
};

Если аккаунт найден, то возвращает его имя, если нет, то 0

Узнать последний ip по имени аккаунта:

Code
function lastipbyacc ($accname)
{
$login = strtoupper($accname);
      $query = "SELECT `last_ip`
              FROM `account`
              WHERE `username`='{$login}'
              LIMIT 1";
      $sql = mysql_query($query) or die(mysql_error());
      if (mysql_num_rows($sql) == 1) {
          $row = mysql_fetch_assoc($sql);
          return $row["last_ip"];
      }
   else {
   return 0;
   }
};

Если аккаунт существует, то возвращает последний ip, если нет или в случае ошибки, то 0

Узнать последний ip по id'у аккаунта:

Code
function lastipbyaccid ($accid)
{
      $query = "SELECT `last_ip`
              FROM `account`
              WHERE `id`='{$accid}'
              LIMIT 1";
      $sql = mysql_query($query) or die(mysql_error());
      if (mysql_num_rows($sql) == 1) {
          $row = mysql_fetch_assoc($sql);
          return $row["last_ip"];
      }
   else {
   return 0;
   }
};

Если аккаунт с заданым id'ом существует, то возвращает последний ip, если нет или в случае ошибки, то 0

Пример использования:

Code
<?php
require("include/config.php");
require("include/functions.php");
mysql_connect($dbserv,$dblogin,$dbpass);
mysql_select_db($realmdb);
$q = checklogpass ("test,"test");
$w = getgmlvl("6");
$e = checkipban("123.45.67.89");
$r = checkaccban("181");
$t = charscount("6" ,"1");
$y = accbyid("6");
$u = idbyacc("test");
$i = lastipbyacc("test");
$o = lastipbyaccid("6");
echo "".$q."<br />";
echo "".$w."<br />";
echo "".$e."<br />";
echo "".$r."<br />";
echo "".$t."<br />";
echo "".$y."<br />";
echo "".$u."<br />";
echo "".$i."<br />";
echo "".$o."<br />";
?>

Писал для своего проекта, но проект стало делать лень), выкладываю вам, если есть замечания по функциям, пишите не стесняйтесь, увы в php я нуб, могу только так

:3
Сообщение # 1 отредактировано VISO - Вторник, 08.02.2011, 19:21
wegas
Скаут
Спасибо за инфу
Сообщение # 2 написано 08.02.2011 в 15:50
VISO
/dev/null
тему обновил, добавил ещё 4 функции
:3
Сообщение # 3 отредактировано VISO - Вторник, 08.02.2011, 19:23
RazArt
Тазовод
Code
function checklogpass ($username, $password){
    $login = mysql_real_escape_string($username);
    $sha_pass_hash = sha1(strtoupper($login).":".strtoupper($password));
    $result = @mysql_fetch_array(mysql_query("SELECT `id` FROM `account` WHERE `username`='$login' AND `sha_pass_hash`='$sha_pass_hash' LIMIT 1"));
    if ($result["id"] > 0) { return $result["id"];}
    return 0;
}

Так не лучше?

DumpMe v1.0 - система автоматического переноса персонажей

Вышла в свет первая стабильная версия. Писать в скайп - razart8
Сообщение # 4 отредактировано RazArt - Пятница, 11.02.2011, 09:17
clavish
Скаут
Спасибо
Сообщение # 5 написано 02.02.2012 в 15:29
  • Страница 1 из 1
  • 1
Поиск: