Вход Регистрация
Файл: vigre/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($urlFalse$context);
    }
    else
    {
        
$ret file_get_contents($urlFalse$context0$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$dbPasstrue);
    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
Реклама