Вход Регистрация
Файл: files/common.php
Строк: 162
<?php
/**
 * Общие функции используемые роботами. 
 * Не менять.
 *
 */
define('VGR_INT_MESSAGE_INFO', 'info');
define('VGR_INT_MESSAGE_WARN', 'warn');
define('VGR_INT_MESSAGE_ERROR', 'error');

//Коды ошибок
define('VGR_CORE_XML_API_ERROR_GENERAL', -2);
define('VGR_CORE_XML_API_ERROR_SUCCESS', -1);
define('VGR_CORE_XML_API_ERROR_PARAM_NOT_PASSED', 2);
define('VGR_CORE_XML_API_ERROR_SIGN_CHECK', 3);
define('VGR_CORE_XML_API_ERROR_DOS_ATTACK', 4);


define('VGR_CORE_INT_BOT_TYPE_VOTES', 1);
define('VGR_CORE_INT_BOT_TYPE_BONUS', 2);

define('VGR_CORE_INT_VOTE_STATUS_BONUS_RECEIVED', 2);


//Соединение с БД голосований
static $vgrInt_SQLLink;

/**
 * Выводит форматированное сообщение с помощью echo
 * Используется для журналирования работы роботов
 *
 * @param string $tag Метка сообщения
 * @param int $level Уровень ошибки (info, warn, error)
 * @param string $message Собщение
 */
function vgrInt_printMessage($tag, $level, $message)
{
    
$date = time();
    
$date = date("d.m.y H:i:s", $date);
    echo 
$date;
    echo 
" ";
    echo 
$tag;
    echo 
" ";
    echo 
$level;
    echo 
": ";
    echo 
$message;
    echo 
"rn";
}


/**
 * Закачивает содержимое файла с удаленного сервера по URL.
 *
 * @param string $url URL удаленного сервера.
 * @param int $maxlength Максимальная длина данных в закачке. Если null -- закачиваются все данные.
 * @param int $timeout Таймаут на закачку. Если 0 -- бесконечный таймаут.
 * @param bool $disableWarnings Показывать или нет предупреждения.
 * 
 * @return string Данные закачки.
 */
function vgrInt_getFileContentByURL($url, $maxlength = null, $timeout = 0, $disableWarnings = false)
{
    
$url = trim($url);
    if(
$timeout > 0)
    {
        
ini_set('default_socket_timeout', $timeout);
    }
    if(
$disableWarnings)
    {
        
error_reporting(E_ERROR);
    }
    
$context = null;
    
$ret = null;
    if(
$maxlength == null)
    {
        
$ret = file_get_contents($url, False, $context);
    }
    else
    {
        
$ret = file_get_contents($url, False, $context, 0, $maxlength);
    }
    if(
$ret !== FALSE)
    {
        if(
$ret != null)
        {
            
$ret = trim($ret);
        }
    }
    return 
$ret;
}


/**
 * Открывает соединение с БД для хранения голосов
 *
 */
function vgrInt_openVotesSQLConnection()
{
    
$dbHost = VGR_INT_VOTES_SQL_SERVER_HOST;
    
$dbUser = VGR_INT_VOTES_SQL_SERVER_USER;
    
$dbPass = VGR_INT_VOTES_SQL_SERVER_PASS;
    
$dbName = VGR_INT_VOTES_SQL_SERVER_DB;
    global 
$vgrInt_SQLLink;
    
$vgrInt_SQLLink = mysql_connect($dbHost, $dbUser, $dbPass, true);
    if(
$vgrInt_SQLLink)
    {
        
mysql_select_db($dbName, $vgrInt_SQLLink) or vgrInt_throwMySQLError();
    }
    else
    {
        
$errorMessage = "vgrInt_openVotesSQLConnection failed. host: $dbHost, user: $dbUser";
        throw new 
Exception($errorMessage);
    }
}


/**
 * Закрывает соединение с БД игры
 *
 */
function vgrInt_closeVotesSQLConnection()
{
    global 
$vgrInt_SQLLink;
    if(
$vgrInt_SQLLink != null)
    {
        
mysql_close($vgrInt_SQLLink);
    }
}


/**
 * Открывает соединение с БД игры
 *
 */
function vgrInt_openGameSQLConnection()
{
    
$dbHost = VGR_INT_GAME_SQL_SERVER_HOST;
    
$dbUser = VGR_INT_GAME_SQL_SERVER_USER;
    
$dbPass = VGR_INT_GAME_SQL_SERVER_PASS;
    
$dbName = VGR_INT_GAME_SQL_SERVER_DB;
    if(
mysql_connect($dbHost, $dbUser, $dbPass))
    {
        
mysql_select_db($dbName) or vgrInt_throwMySQLError();
    }
    else
    {
        
$errorMessage = "vgrInt_openGameSQLConnection failed. host: $dbHost, user: $dbUser";
        throw new 
Exception($errorMessage);
    }
}

/**
 * Закрывает соединение с БД игры
 *
 */
function vgrInt_closeGameSQLConnection()
{
    
mysql_close();
}


/**
 * Создает SQL таблицы (если они еще не были созданы) БД голосов
 *
 */
function vgrInt_createSQLTables()
{
    global 
$vgrInt_SQLLink;
    
$query =
    
"
CREATE TABLE IF NOT EXISTS vigre_votes (
  id int(11) NOT NULL default '0',
  `date` datetime default NULL,
  charname varchar(255) default NULL,
  ip varchar(255) default NULL,
  `status` int(11) default NULL,
  PRIMARY KEY  (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;"
;

    
mysql_query($query, $vgrInt_SQLLink) or vgrInt_throwMySQLError();
    
    
    
$query = "ALTER TABLE `vigre_votes` ADD `sms` BOOL NULL DEFAULT NULL;";
    
mysql_query($query, $vgrInt_SQLLink);

    
$query = "
CREATE TABLE IF NOT EXISTS vigre_votes_bot (
  running tinyint(1) default NULL,
  last_run datetime default NULL,
  `type` int(11) NOT NULL default '0',
  PRIMARY KEY  (`type`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;"
;

    
mysql_query($query, $vgrInt_SQLLink) or vgrInt_throwMySQLError();

    
$query = "CREATE TABLE IF NOT EXISTS vigre_bonus (
  charname varchar(255) NOT NULL default '',
  bonus_date datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (charname)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;"
;

    
mysql_query($query, $vgrInt_SQLLink) or vgrInt_throwMySQLError();

}

/**
 * Генерит исключение с mysql ошибкой.
 * Использовать ТОЛЬКО при работе с БД голосований
 *
 */
function vgrInt_throwMySQLError()
{
    global 
$vgrInt_SQLLink;
    throw new 
Exception(mysql_error($vgrInt_SQLLink));
}

?>
Онлайн: 2
Реклама