Файл: 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>