Вход Регистрация
Файл: IPBMafia.ru_IPB_3.4.6_Final_Rus _Nulled/board/Tools/check_requirements.php
Строк: 309
<?php

define
( 'IPB_VERSION', '3.4' );

?>
<!DOCTYPE html 
         PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en" lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <title>IP.Board <?php print IPB_VERSION; ?> - Requirements Checker</title>
    <style type='text/css'>
        .pass {
            color: green;
            font-weight: bold;
        }
        
        .fail {
            color: red;
            font-weight: bold;
        }
        
        .warn {
            color: orange;
            font-weight: bold;
        }
        
        .what-you-should-do {
            color: grey;
            font-size: 12px;
            font-style: italic;
            padding-left: 15px;
        }
        
        h1 {
            border-bottom: 1px solid black;
        }
        
        p {
            margin: 2px;
            padding: 4px;
            border-bottom: 1px dotted grey;
            font-size: 15px;
            font-family: "Arial, Verdana";
        }
        
        p.final {
            border-bottom: 0px;
            padding-top: 20px;
        }
    
    </style>
    
</head>
<body>

    <h1>IP.Board <?php print IPB_VERSION; ?> Requirements Checker</h1>

<?php
$extensions    
= get_loaded_extensions();
$version    = phpversion();
$minVersion    = '5.2.0';

//-----------------------------------------
// Checking against required version
//-----------------------------------------

$checkRequiredVersion    = version_compare( $minVersion, $version, '<=' );
flushOutput( "Checking minimum version ({$minVersion})...", $checkRequiredVersion, "You must be running PHP v{$minVersion} or greater to use IP.Board " . IPB_VERSION . ".  You are currently running version {$version}.  Please ask your host to move you to a server running PHP v{$minVersion} or greater." );

print 
"<p>You are running PHP <strong>{$version}</strong></p>";

//-----------------------------------------
// Check for zend guard
//-----------------------------------------

$hasZend        = false;
$hasIoncube        = false;

if ( 
function_exists( 'zend_loader_enabled' ) )
{
    if ( @
zend_loader_enabled() === true )
    {
        
$hasZend = true;
    }
}

if ( 
extension_loaded( 'ionCube Loader' ) )
{
    
$hasIoncube = true;
}

flushOutput( "Только для IP.Nexus: Проверка возможности запуска скриптов, закодированных Zend Guard...", $hasZend, "Невозможно запустить файлы, закодированные Zend." );

flushOutput( "Только для IP.Nexus: Проверка возможности запуска скриптов, закодированных Ioncube...", $hasIoncube, "Невозможно запустить файлы, закодированные Ioncube." );

flushOutput( "Только для IP.Nexus: Проверка обработки скриптов, закодированных Zend Guard или Ioncube...", $hasZend or $hasIoncube, "Ваш сервер не может обрабатывать закодированные скрипты IP.Nexus. Это не влияет на IP.Board, IP.Downloads. IP.Blog, IP.Gallery, IP.Content, IP.Chat" );

//-----------------------------------------
// Memory limit
//-----------------------------------------

$_memLimit    = null;
$_recLimit    = 128;

if( @
ini_get('memory_limit') )
{
    
$_memLimit    = @ini_get('memory_limit');
}

if( 
$_memLimit )
{
    
$_intLimit    = $_memLimit;
    
$_intRec    = $_recLimit * 1024 * 1024;
    
    
preg_match( "#^(d+)(w+)$#", strtolower($_intLimit), $match );
    
    if( 
$match[2] == 'g' )
    {
        
$_intLimit = intval( $_intLimit ) * 1024 * 1024 * 1024;
    }
    else if ( 
$match[2] == 'm' )
    {
        
$_intLimit = intval( $_intLimit ) * 1024 * 1024;
    }
    else if ( 
$match[2] == 'k' )
    {
        
$_intLimit = intval( $_intLimit ) * 1024;
    }
    else
    {
        
$_intLimit = intval( $_intLimit );
    }
    
    if( 
$_intLimit >= $_intRec )
    {
        
flushOutput( "Проверка выделения памяти ({$_recLimit}M или больше рекомендуется)...", true, "Ваш сервер ограничивает объем выделяемой памяти(memory_limit): {$_memLimit}" );
    }
    else
    {
        
flushOutput( "Проверка выделения памяти ({$_recLimit}M или больше рекомендуется)...", 2, "Ваш сервер ограничивает объем выделяемой памяти(memory_limit): {$_memLimit}. Вы можете использовать IP.Board, но свяжитесь с вашим хостинг-провайдером и попросите его увеличить memory_limit до {$_recLimit}M, чтобы избежать ошибок в будущем. Возможно прекращение работы скриптов при обработке больших объемов данных" );
    }
}
else
{
    
flushOutput( "Проверка выделения памяти ({$_recLimit}M или больше рекомендуется)...", 2, "Не удалось получить значение переменной memory_limit" );
}

//-----------------------------------------
// Checking for SPL
//-----------------------------------------

$splExists    = in_array( 'SPL', $extensions );
flushOutput( "Проверка SPL...", $splExists, "IP.Board " . IPB_VERSION . "  требуется расширение PHP SPL. Пожалуйста, свяжитесь с вашим хостинг-провайдером для установки <a href='http://www.php.net/manual/ru/spl.setup.php'>библиотеки SPL</a>." );

//-----------------------------------------
// Checking for DOM XML
//-----------------------------------------

$domXML    = in_array( 'dom', $extensions );
flushOutput( "Проверка обработки DOM XML...", $domXML, "IP.Board " . IPB_VERSION . " требуется расширение обработчика DOM XML.  Пожалуйста, свяжитесь с вашим хостинг-провайдером для установки <a href='http://www.php.net/manual/ru/dom.setup.php'>библиотеки libxml2</a>." );

//-----------------------------------------
// Check for GD2
//-----------------------------------------

$gd2    = in_array( 'gd', $extensions );
flushOutput( "Проверка библиотеки GD...", $gd2, "IP.Board " . IPB_VERSION . " требуется библиотека GD2.  Пожалуйста, свяжитесь с вашим хостинг-провайдером для установки <a href='http://us.php.net/manual/ru/image.setup.php'>библиотеки libgd</a>." );

if( 
function_exists( 'gd_info' ) )
{
    
$gdInfo    = gd_info();
    
$fail    = true;
    
    if( 
$gdInfo["GD Version"] )
    {
        
preg_match( "/.*?([d.]+).*?/", $gdInfo["GD Version"], $matches );
        
        if( 
$matches[1] )
        {
            
$compareVersions    = version_compare( '2.0', $matches[1], '<=' );
            
            if( !
$compareVersions )
            {
                
$fail = 2;
            }
        }
    }

    
flushOutput( "Проверка GD2...", $fail, "Библиотека GD установлена, но IP.Board " . IPB_VERSION . " требуется библиотека GD версии 2.  Версия переданная вашим сервером '{$gdInfo['GD Version']}'.  Пожалуйста убедитесь, что используете GD версии 2, и обновите <a href='http://us.php.net/manual/ru/image.setup.php'>библиотеку libgd</a> при необходимости." );
}

//-----------------------------------------
// Checking for mysql extension
//-----------------------------------------

$mysql    = in_array( 'mysql', $extensions );
$mysqli    = in_array( 'mysqli', $extensions );
flushOutput( "Проверка mysql...", ( $mysql OR $mysqli ), "Ваш сервер не имеет библиотеки mysql, попросите хостера установить поддержку <a href='http://us.php.net/manual/ru/mysqli.setup.php'>mysqli</a>." );

if( 
$mysql AND !$mysqli )
{
    
flushOutput( "Проверка поддержки mysqli...", false, "Расширение mysqli рекомендуется вместо стандартного интерфейса mysql.  Форум может обойтись и без него, но, если возможно, установите <a href='http://us.php.net/manual/ru/mysqli.setup.php'>его</a> для улучшения скорости и безопасности работы." );
}


//-----------------------------------------
// Checking for JSON
//-----------------------------------------

$json    = in_array( 'json', $extensions );
flushOutput( "Проверка JSON...", $json, "Расширение PHP JSON необходимо для функционирования форума. Узнайте как установить <a href='http://us.php.net/manual/ru/json.setup.php'>расширение json</a>." );

//-----------------------------------------
// Checking for openSSL
//-----------------------------------------

$openssl    = in_array( 'openssl', $extensions ) ? true : 2;
flushOutput( "Проверка openSSL...", $openssl, "OpenSSL необходим для модулей связи с Facebook, Twitter, и модуля Subscription Manager.  Если вы не используете ни один из этих модулей, то можно обойтись без этого расширения, иначе вам необходимо установить<a href='http://us2.php.net/manual/ru/openssl.installation.php'> расширение openssl</a>." );

//-----------------------------------------
// Suhosin
//-----------------------------------------

if( extension_loaded( 'suhosin' ) )
{
    
$_postMaxVars    = @ini_get('suhosin.post.max_vars');
    
$_reqMaxVars    = @ini_get('suhosin.request.max_vars');
    
$_getMaxLen        = @ini_get('suhosin.get.max_value_length');
    
$_postMaxLen    = @ini_get('suhosin.post.max_value_length');
    
$_reqMaxLen        = @ini_get('suhosin.request.max_value_length');
    
$_reqMaxVar        = @ini_get('suhosin.request.max_varname_length');
    
    
$_indPMV        = $_postMaxVars < 4096 ? 2 : true;
    
$_indRMV        = $_reqMaxVars < 4096 ? 2 : true;
    
$_indGML        = $_getMaxLen < 2000 ? 2 : true;
    
$_indPML        = $_postMaxLen < 1000000 ? 2 : true;
    
$_indRML        = $_reqMaxLen < 1000000 ? 2 : true;
    
$_indRMVL        = $_reqMaxVar < 350 ? 2 : true;
    
    
flushOutput( "suhosin.post.max_vars (4096 or better recommended)...", $_indPMV, "Your value: {$_postMaxVars}. Can prevent some forms (especially in the ACP) from saving properly." );
    
flushOutput( "suhosin.request.max_vars (4096 or better recommended)...", $_indRMV, "Your value: {$_reqMaxVars}. Can prevent some forms (especially in the ACP) from saving properly." );
    
flushOutput( "suhosin.get.max_value_length (2000 or better recommended)...", $_indGML, "Your value: {$_postMaxLen}. Can prevent very long URLs from loading correctly." );
    
flushOutput( "suhosin.post.max_value_length (1000000 or better recommended)...", $_indPML, "Your value: {$_postMaxLen}. Can prevent very large posts or other form submissions from saving properly." );
    
flushOutput( "suhosin.request.max_value_length (1000000 or better recommended)...", $_indRML, "Your value: {$_reqMaxLen}. Can prevent very large posts or other form submissions from saving properly." );
    
flushOutput( "suhosin.request.max_varname_length (350 or better recommended)...", $_indRMVL, "Your value: {$_reqMaxVar}. Can prevent long friendly URLs from loading correctly." );
}

$testtext="тестовый текст в кодировке utf-8";
$pcre=($testtext == preg_replace( '/(^|W)дир(W|$)/iu', "\1замена\2", $testtext ))?true:false;
flushOutput( "Проверка расширения PCRE на правильную работу со строками в формате UTF-8...", $pcre, "Библиотека PCRE неправильно обрабатывает регулярные выражения в кодировке UTF-8, обратитесь к хостинг-провайдеру для исправления этой ошибки. Неправильная работа этой функции может привести к ошибкам при работе с русскими именами пользователей, ошибкам фильтра нецензурных слов и т.д." );


flushOutput( 'Проверка функции filter_var()...', function_exists ( 'filter_var' ), 'Функция отсутствует, это может привести к фатальным ошибкам php и остановке выполнения скриптов' );
//-----------------------------------------
// Flush output function
//-----------------------------------------

function flushOutput( $checking, $result, $errorText )
{
    print 
"<p>" . $checking;
    
    if( 
$result === 2 )
    {
        print 
"<span class='warn'>ВНИМАНИЕ</span><br /><span class='what-you-should-do'>{$errorText}</span>";
    }
    else if( !
$result )
    {
        print 
"<span class='fail'>ОШИБКА</span><br /><span class='what-you-should-do'>{$errorText}</span>";
    }
    else
    {
        print 
"<span class='pass'>ОК</span>";
    }
    
    print 
"</p>";
    
    
flush();
    @
ob_flush();
    
    return 
true;
}

?>

    <p class='final'>Имейте в виду, что MySQL версии 4.1 или выше (MySQL 5.0 рекомендуется) необходим IP.Board <?php print IPB_VERSION; ?>.  Попросите администратора вашего сервера проверить версию MySQL если не уверены.</p>
</body>
</html>
Онлайн: 2
Реклама