Вход Регистрация
Файл: install.php
Строк: 351
<?
//ob_start();
include('sys/connect.php');
$mode htmlspecialchars($_GET['mode']);
echo
'<link rel="stylesheet" href="/style/new/style.css" type="text/css" />
<div class="head"><title>Установка TerrinCMS</title>
<a href="/"><img src="/style/new/logo.gif" alt="Мобильный портал"></a></div>'
;
function 
split_sql($sql) {
    
$sql trim($sql);
    
$sql preg_replace("|n#[^n]*n|""n"$sql);
    
$buffer = array();
    
$ret = array();
    
$in_string false;
    for (
$i 0$i strlen($sql) - 1$i++) {
        if (
$sql[$i] == ";" && !$in_string) {
            
$ret[] = substr($sql0$i);
            
$sql substr($sql$i 1);
            
$i 0;
        } 
        if (
$in_string && ($sql[$i] == $in_string) && $buffer[1] != "\") {
            
$in_string = false;
        } elseif (!
$in_string && ($sql[$i] == '"' || $sql[$i] == "'") && (!isset ($buffer[0]) || $buffer[0] != "\")) {
            
$in_string = $sql[$i];
        } 
        if (isset (
$buffer[1])) {
            
$buffer[0] = $buffer[1];
        } 
        
$buffer[1] = $sql[$i];
    } 
    if (!empty (
$sql)) {
        
$ret[] = $sql;
    } 
    return (
$ret);

// ----------------------------------------------------------------------------//
function parsePHPModules() {
    ob_start();
    phpinfo(INFO_MODULES);
    
$s = ob_get_contents();
    ob_end_clean();

    
$s = strip_tags($s, '<h2><th><td>');
    
$s = preg_replace('/<th[^>]*>([^<]+)</th>/', "<info>\1</info>", $s);
    
$s = preg_replace('/<td[^>]*>([^<]+)</td>/', "<info>\1</info>", $s);
    
$vTmp = preg_split('/(<h2[^>]*>[^<]+</h2>)/', $s, -1, PREG_SPLIT_DELIM_CAPTURE);
    
$vModules = array();
    for (
$i = 1;$i < count($vTmp);$i++) {
        if (preg_match('/<h2[^>]*>([^<]+)</h2>/', 
$vTmp[$i]$vMat)) {
            
$vName = trim($vMat[1]);
            
$vTmp2 = explode("n", $vTmp[$i + 1]);
            foreach (
$vTmp2 AS $vOne) {
                
$vPat = '<info>([^<]+)</info>';
                
$vPat3 = "/$vPats*$vPats*$vPat/";
                
$vPat2 = "/$vPats*$vPat/";
                if (preg_match(
$vPat3$vOne$vMat)) {
                    
$vModules[$vName][trim($vMat[1])] = array(trim($vMat[2]), trim($vMat[3]));
                } elseif (preg_match(
$vPat2$vOne$vMat)) {
                    
$vModules[$vName][trim($vMat[1])] = trim($vMat[2]);
                } 
            } 
        } 
    } 
    return 
$vModules;


function getModuleSetting(
$pModuleName$pSetting) {
    
$vModules = parsePHPModules();

    if (!empty(
$vModules[$pModuleName][$pSetting])) {
        return 
$vModules[$pModuleName][$pSetting];
    } 


switch (
$mode):
case 'index':
echo'<div class="
title">Добро пожаловать!</div>';
echo'<div class="
menu">Представляем вашему вниманию уникальную cms - Terrin CMS
Данная разработка позволит вам без особого труда создать сайт любой сложности,
который уже будет иметь форум,голосования,загруз-центр,чат и многие другие возможности.
Скачивая и устанавливая Terrin CMS вы уже создаете готовый WAP сайт.Остается произвести настройку сайта под себя 
и звать целевых посетителей.
Terrin CMS - использует базу данных с расширением PDO, что позволяет не тратить много времени на генерацию страницы.
Так же гарантируется своевременная поддержка и безвозмездная помощь в создании сайта.
Наша система абсолютно бесплатна, и единственное требование - это наличие копирайта автора. </div>';

echo'<div class="
menu_2"> <a href="?mode=1">Начать установку!</a> </div>';
break;
case '1':

$arrfile = array('sys/connect.php','obmen/ava','obmen/files','obmen/files_img','obmen/forum','obmen/gallery','sys/global_config.php');

$error_setting = 0;
echo'<div class="
title">Системные требование!</div>';
echo'<div class="
menu">';
            echo '<b>Рекомендуемая версия PHP - 5.4.0</b><br /><br />';

            if (version_compare(PHP_VERSION, '5.2.1') > 0) {
                echo '<img src="
/images/plus.png" alt="image" /> Версия PHP 5.2.1 и выше: <b><span style="color:#00cc00">ОК</span></b> (Версия ' . phpversion() . ')<br />';
            
} else {
                echo 
'<img src="/images/minus.png" alt="image" /> Версия PHP 5.2.1 и выше: <b><span style="color:#ff0000">Ошибка</span></b>  (Версия ' phpversion() . ')<br />';
                
$error_critical 1;
            } 
            
            if (
extension_loaded('pdo_mysql')) {
                if (
getModuleSetting('pdo_mysql''Client API version') != "") {
                    
$pdoversion strtok(getModuleSetting('pdo_mysql''Client API version'), '-');
                } elseif (
getModuleSetting('pdo_mysql''PDO Driver for MySQL, client library version') != "") {
                    
$pdoversion getModuleSetting('pdo_mysql''PDO Driver for MySQL, client library version');
                } else {
                    
$pdoversion 'Не определено';
                } 
                echo 
'<img src="/images/plus.png" alt="image" /> Расширение PDO-MySQL: <b><span style="color:#00cc00">ОК</span></b> (Версия ' $pdoversion ')<br />';
            } else {
                echo 
'<img src="/images/minus.png" alt="image" /> Расширение PDO-MySQL: <b><span style="color:#ff0000">Ошибка</span></b> (Расширение не загружено)<br />';
                
$error_critical 1;
            } 
            
            if (!
ini_get('safe_mode')) {
                echo 
'<img src="/images/plus.png" alt="image" /> Safe Mode: <b><span style="color:#00cc00">ОК</span></b> (Выключено)<br />';
            } else {
                echo 
'<img src="/images/minus.png" alt="image" /> Safe Mode: <b><span style="color:#ffa500">Предупреждение</span></b> (Включено)<br />';
                
$error_setting++;
            } 
            if (!
ini_get('magic_quotes_runtime')) {
                echo 
'<img src="/images/plus.png" alt="image" /> Magic Quotes Runtime: <b><span style="color:#00cc00">ОК</span></b> (Выключено)<br />';
            } else {
                echo 
'<img src="/images/minus.png" alt="image" /> Magic Quotes Runtime: <b><span style="color:#ffa500">Предупреждение</span></b> (Включено)<br />';
                
$error_setting++;
            } 
            if (!
ini_get('session.auto_start')) {
                echo 
'<img src="/images/plus.png" alt="image" /> Session auto start: <b><span style="color:#00cc00">ОК</span></b> (Выключено)<br />';
            } else {
                echo 
'<img src="/images/minus.png" alt="image" /> Session auto start: <b><span style="color:#ffa500">Предупреждение</span></b> (Включено)<br />';
                
$error_setting++;
            } 
            if (!
ini_get('register_globals')) {
                echo 
'<img src="/images/plus.png" alt="image" /> Register Globals: <b><span style="color:#00cc00">ОК</span></b> (Выключено)<br />';
            } else {
                echo 
'<img src="/images/minus.png" alt="image" /> Register Globals: <b><span style="color:#ffa500">Предупреждение</span></b> (Включено)<br />';
                
$error_setting++;
            } 

            if (
ini_get('file_uploads')) {
                echo 
'<img src="/images/plus.png" alt="image" /> Загрузка файлов: <b><span style="color:#00cc00">ОК</span></b> (Включено)<br />';
            } else {
                echo 
'<img src="/images/minus.png" alt="image" /> Загрузка файлов: <b><span style="color:#ffa500">Предупреждение</span></b> (Выключено)<br />';
                
$error_setting++;
            } 


            
$chmod_errors 0;
            
$not_found_errors 0;

            foreach (
$arrfile as $file) {
                
$realfile ''.$file;
                if (!
file_exists($realfile)) {
                    
$file_status '<span style="color:#ff0000">Не найден!</span>';
                    
$not_found_errors 1;
                } elseif (
is_writable($realfile)) {
                    
$file_status '<span style="color:#00cc00">ОК</span>';
                } else {
                    @
chmod($realfile0777);
                    if (
is_writable($realfile)) {
                        
$file_status '<span style="color:#00cc00">ОК</span>';
                    } else {
                        @
chmod($realfile0755);
                        if (
is_writable($realfile)) {
                            
$file_status '<span style="color:#00cc00">Разрешено</span>';
                        } else {
                            
$file_status '<span style="color:#ff0000">Запрещено</span>';
                            
$chmod_errors 1;
                        } 
                    } 
                } 

                
$chmod_value = @decoct(@fileperms($realfile)) % 1000;

                echo 
'<img src="/images/plus.png" alt="image" /> '.$file ' <b> - ' $file_status '</b> (chmod ' $chmod_value ')<br />';
            } 
            echo 
'<br />Если какой-то пункт выделен красным, необходимо зайти по фтп и выставить CHMOD разрешающую запись<br />';
            echo 
'Некоторые настройки являются рекомендуемыми для полной совместимости, однако скрипт способен работать даже если рекомендуемые настройки не совпадают с текущими.';

echo
'</div>';
echo
'<div class="menu_2">';
if (empty(
$error_critical) && empty($not_found_errors) && empty($chmod_errors)) {
                echo 
'<b><span style="color:#00cc00">Вы можете продолжить установку движка!</span></b>';

                if (empty(
$error_setting)) {
                    echo 
'Все модули и библиотеки присутствуют, настройки корректны, необходимые файлы и папки доступны для записи<br /><br />';
                } else {
                    echo 
'<b><span style="color:#ffa500">У вас имеются предупреждения!</span></b> (Всего: ' $error_setting ')<br />';
                    echo 
'Данные предупреждения не являются критическими, но тем не менее для полноценной, стабильной и безопасной работы движка желательно их устранить<br />';
                    echo 
'Вы можете продолжить установку скрипта, но нет никаких гарантий, что движок будет работать стабильно';
                } 

                echo 
'<b><a href="?mode=2">ПРИСТУПИТЬ К УСТАНОВКЕ</a></b>';
            } else {
                echo 
'<b><span style="color:#ff0000">Имеются критические ошибки!</span></b><br />';
                echo 
'Вы не сможете приступить к установке, пока не устраните все ошибки<br /><br />';
                echo 
'Если ваша версия PHP удовлетворяет требованиям работы движка, тогда скорее всего у вас не подключено расширение PDO-MySQL<br />';
                echo 
'Это расширение уже встроено в PHP, его нужно только включить, обратитесть в поддержку вашего хостинга';
            } 
        
echo
'</div>';
break;
case 
'2':
echo
'<div class="title">Соединение с БД!</div>';
echo
'<div class="menu">';
echo 
'Данные подключения к БД будут записаны в файл includes/connect.php, после записи файлу будут автоматически присвоены права CHMOD 644<br />';
echo 
'Если этого не произошло, то вы можете вручную выставить файлу права запрещающие запись в него<hr>';

        echo 
'<div class="form">';
        echo 
'<form method="post" action="?mode=3">';
        echo 
'Сервер MySQL:<br />';
        echo 
'<input name="dbhost" value="localhost" /><br />';
        echo 
'Порт MySQL:<br />';
        echo 
'<input name="dbport" value="3306" /><br />';
        echo 
'Имя базы данных:<br />';
        echo 
'<input name="dbname" /><br />';
        echo 
'Имя пользователя:<br />';
        echo 
'<input name="dbuser" /><br />';
        echo 
'Пароль:<br />';
        echo 
'<input name="dbpass" type="password" /><br /><br />';
        echo 
'<input value="Продолжить" type="submit" /></form></div><br />';

        echo 
'База данных и пользователь должны быть созданы в панеле управления вашего сайта!';

echo
'</div>';
break;
case 
'3':
echo
'<div class="title">Импорт таблиц!</div>';
echo
'<div class="menu">';
        if (!empty(
$_POST['dbhost']) && !empty($_POST['dbport']) && !empty($_POST['dbname']) && !empty($_POST['dbuser'])) {
            
$dbhost htmlspecialchars(trim($_POST['dbhost']));
            
$dbport htmlspecialchars(trim($_POST['dbport']));
            
$dbname htmlspecialchars(trim($_POST['dbname']));
            
$dbuser htmlspecialchars(trim($_POST['dbuser']));
            
$dbpass htmlspecialchars(trim($_POST['dbpass']));

            try {
                
$db = new PDO('mysql:host=' $dbhost ';port=' $dbport ';dbname=' $dbname$dbuser$dbpass);
                
$db -> setAttribute(PDO :: ATTR_ERRMODEPDO :: ERRMODE_EXCEPTION);
                
$db -> setAttribute(PDO :: ATTR_DEFAULT_FETCH_MODEPDO :: FETCH_ASSOC);
                
$db -> exec('SET CHARACTER SET utf8');
                
$db -> exec('SET NAMES utf8');

                echo 
'<b><span style="color:#00cc00">Соединение с базой данных произведено успешно!</span></b><br /><br />';

                
$dbconfig "<?php
define ('DBHOST', '
$dbhost');
define ('DBPORT', '
$dbport');
define ('DBNAME', '
$dbname');
define ('DBUSER', '
$dbuser');
define ('DBPASS', '
$dbpass');
?>"
;
                
file_put_contents('sys/connect.php'$dbconfig);
                @
chmod('sys/connect.php'0664);

echo
'</div>';
echo
'<div class="menu_2">';


                
// ------------------------------------------//
                
try {
                    
$query file_get_contents('tables.sql');
                    
$pieces split_sql($query);

                    
$numtables 0;

                    for (
$i 0$i count($pieces); $i++) {
                        
$pieces[$i] = trim($pieces[$i]);
                        if (!empty (
$pieces[$i]) && $pieces[$i] != "#") {
                            
$db -> query($pieces[$i]);
                            
$numtables++;
                        } 
                    } 

                    echo 
'<b><span style="color:#00cc00">Таблицы успешно импортированы</span></b><br />';
                    echo 
'Всего загружено таблиц: ' $numtables '<br /><br />';
                } 
                catch (
PDOException $e) {
                    
$errortables 1;
                    echo 
'<b><span style="color:#ff0000">Ошибка! Не удалось импортировать таблицы в БД!</span></b><br />';
                    echo 
'Код ошибки: ' $e -> getMessage() . '<br /><br />';
                } 
                
// ------------------------------------------//
                
try {
                    
$query file_get_contents('data.sql');
                    
$pieces split_sql($query);

                    
$numtables 0;

                    for (
$i 0$i count($pieces); $i++) {
                        
$pieces[$i] = trim($pieces[$i]);
                        if (!empty (
$pieces[$i]) && $pieces[$i] != "#") {
                            
$db -> query($pieces[$i]);
                            
$numtables++;
                        } 
                    } 

                    echo 
'<b><span style="color:#00cc00">Данные успешно импортированы</span></b><br />';
                    echo 
'Всего загружено данных: ' $numtables '<br /><br />';
                } 
                catch (
PDOException $e) {
                    
$errortables 1;
                    echo 
'<b><span style="color:#ff0000">Ошибка! Не удалось загрузить данные в БД!</span></b><br />';
                    echo 
'Код ошибки: ' $e -> getMessage() . '';
                } 
                
// ------------------------------------------//
            

            catch (
PDOException $e) {
                
$errorconnect 1;
                echo 
'<b><span style="color:#ff0000">Ошибка! Невозможно соединиться с базой данных, проверьте правильность данных!</span></b><br /><br />';
            } 

            if (empty(
$errorconnect) && empty($errortables)) {
                echo 
'Если на этой странице вы не видите никаких ошибок значит все таблицы были успешно импортированы<br /><br />';
                echo 
'Не обновляйте страницу, переходите сразу к следующему шагу установки RotorCMS<br /><br />';
                echo 
' <b><a href="?mode=4">ПРОДОЛЖИТЬ УСТАНОВКУ</a></b><br /><br />';
            } 
        } else {
            echo 
'<b>Ошибка! Вы не ввели важные данные!</b>';
        } 


echo
'</div>';

break;
case 
'4':
echo
'<div class="title">Настройка системы!</div>';

echo
'<div class="error">Не забудте вручную залить таблицы от викторины (vopros.sql)</div>';
echo
'<div class="menu">';
        if (
$_SERVER['HTTP_HOST']) {
            
$servername htmlspecialchars($_SERVER['HTTP_HOST']);
        } else {
            
$servername htmlspecialchars($_SERVER['SERVER_NAME']);
            }
        echo 
'<div class="form">';
        echo 
'<form method="post" action="?mode=5">';
        echo 
'Логин (max20):<br />';
        echo 
'<input name="login" maxlength="20" /><br />';
        echo 
'Пароль(max36):<br />';
        echo 
'<input name="password" type="password" maxlength="36" /><br />';
        echo 
'Повторите пароль:<br />';
        echo 
'<input name="password2" type="password" maxlength="36" /><br />';
        echo 
'Адрес e-mail:<br />';
        echo 
'<input name="mail" maxlength="100" /><br />';
        echo 
'Адрес сайта:<br />';
        echo 
'<input name="site" value="' $servername '" maxlength="100" /><br />';
        echo 
'<input value="Пуск" type="submit" /></form></div>';

echo
'</div>';

break;
case 
'5':
function 
utf_lower($str) {
    if (
function_exists('mb_strtolower')) return mb_strtolower($str'utf-8');

    
$arraytolower = array('А' => 'а''Б' => 'б''В' => 'в''Г' => 'г''Д' => 'д''Е' => 'е''Ё' => 'ё''Ж' => 'ж''З' => 'з''И' => 'и''Й' => 'й''К' => 'к''Л' => 'л''М' => 'м''Н' => 'н''О' => 'о''П' => 'п''Р' => 'р''С' => 'с''Т' => 'т''У' => 'у''Ф' => 'ф''Х' => 'х''Ц' => 'ц''Ч' => 'ч''Ш' => 'ш''Щ' => 'щ''Ь' => 'ь''Ъ' => 'ъ''Ы' => 'ы''Э' => 'э''Ю' => 'ю''Я' => 'я',
        
'A' => 'a''B' => 'b''C' => 'c''D' => 'd''E' => 'e''I' => 'i''F' => 'f''G' => 'g''H' => 'h''J' => 'j''K' => 'k''L' => 'l''M' => 'm''N' => 'n''O' => 'o''P' => 'p''Q' => 'q''R' => 'r''S' => 's''T' => 't''U' => 'u''V' => 'v''W' => 'w''X' => 'x''Y' => 'y''Z' => 'z');

    return 
strtr($str$arraytolower);


echo
'<div class="title">Настройка системы!</div>';
echo
'<div class="menu">';
        
$login htmlspecialchars($_POST['login']);
        
$password htmlspecialchars($_POST['password']);
        
$password2 htmlspecialchars($_POST['password2']);
        
$mail strtolower(htmlspecialchars($_POST['mail']));
        
$site utf_lower(htmlspecialchars($_POST['site']));
        if (
strlen($login) <= 20 && strlen($password) <= 20) {
            if (
strlen($login) >= && strlen($password) >= 3) {
                if (
preg_match('|^[a-z0-9-]+$|i'$login)) {
                    if (
preg_match('|^[a-z0-9-]+$|i'$password)) {
                        if (
$password == $password2) {
                            if (
preg_match('#^([a-z0-9_-.])+@([a-z0-9_-.])+(.([a-z0-9])+)+$#'$mail)) {
                                if (
preg_match('#^http://([а-яa-z0-9_-.])+(.([а-яa-z0-9/])+)+$#u'$site)) {
try {
                                        
$db = new PDO('mysql:host=' DBHOST ';port=' DBPORT ';dbname=' DBNAMEDBUSERDBPASS);
                                        
$db -> setAttribute(PDO :: ATTR_ERRMODEPDO :: ERRMODE_EXCEPTION);
                                        
$db -> setAttribute(PDO :: ATTR_DEFAULT_FETCH_MODEPDO :: FETCH_ASSOC);
                                        
$db -> exec('SET CHARACTER SET utf8');
                                        
$db -> exec('SET NAMES utf8');
                                    } 
                                    catch (
PDOException $e) {
                                        echo 
'<b><span style="color:#ff0000">Ошибка! Невозможно соединиться с базой данных!</span></b><br />';
                                        echo 
'Код ошибки: ' $e -> getMessage() . '<br /><br />';
                                    } 

#Admin
$db -> query("INSERT INTO `users`(login,pass,email,status,activ,money,bank,exp,activ_email,pol) VALUES ('".$login."','".sha1(md5(md5(sha1($password))))."','".$mail."',101,0,0,0,0,'on',1) ;");
$db -> query("INSERT INTO `users`(login,pass,email,status,activ,money,bank,exp,activ_email,pol) VALUES ('System','".sha1(md5(md5(sha1($password))))."','".$mail."',101,0,0,0,0,'on',1) ;");
$db -> query("INSERT INTO `dating`(`login`,`status`) VALUES ('".$login."','off')");
$db -> query("INSERT INTO `dating`(`login`,`status`) VALUES ('System','off')");

#chat
$db -> query("INSERT INTO `chat`(`id`,`title`,`status`) VALUES (1,'Админ-чат','admin');");


header ('location: ?mode=6'); 

                    } else {
                                    echo 
'<b>Ошибка! Неправильный адрес сайта, необходим формата http://my_site.domen</b><br /><br />';
                                } 
                            } else {
                                echo 
'<b>Ошибка! Неправильный адрес e-mail, необходим формат name@site.domen</b><br /><br />';
                            } 
                        } else {
                            echo 
'<b>Ошибка! Веденные пароли отличаются друг от друга</b><br /><br />';
                        } 
                    } else {
                        echo 
'<b>Ошибка! Недопустимые символы в пароле. Разрешены только знаки латинского алфавита и цифры!</b><br /><br />';
                    } 
                } else {
                    echo 
'<b>Ошибка! Недопустимые символы в логине. Разрешены только знаки латинского алфавита и цифры!</b><br /><br />';
                } 
            } else {
                echo 
'<b>Ошибка! Слишком короткий логин или пароль (От 3 до 20 символов)</b><br /><br />';
            } 
        } else {
            echo 
'<b>Ошибка! Слишком длинный логин или пароль (От 3 до 20 символов)</b><br /><br />';
        } 

echo
'</div>';
break;
case 
'6':
echo
'<div class="title">Менеджер лицензий!</div>';
echo
'<div class="menu">';
try {
                                        
$db = new PDO('mysql:host=' DBHOST ';port=' DBPORT ';dbname=' DBNAMEDBUSERDBPASS);
                                        
$db -> setAttribute(PDO :: ATTR_ERRMODEPDO :: ERRMODE_EXCEPTION);
                                        
$db -> setAttribute(PDO :: ATTR_DEFAULT_FETCH_MODEPDO :: FETCH_ASSOC);
                                        
$db -> exec('SET CHARACTER SET utf8');
                                        
$db -> exec('SET NAMES utf8');
                                    } 
                                    catch (
PDOException $e) {
                                        echo 
'<b><span style="color:#ff0000">Ошибка! Невозможно соединиться с базой данных!</span></b><br />';
                                        echo 
'Код ошибки: ' $e -> getMessage() . '<br /><br />';
                                    } 

        if (
$_SERVER['HTTP_HOST']) {
            
$servername htmlspecialchars($_SERVER['HTTP_HOST']);
        } else {
            
$servername htmlspecialchars($_SERVER['SERVER_NAME']);
            }

$file file_get_contents('http://cms.lorinz.ru/site/'.$servername.'.php');
if(
$file == !NULL){
$db -> query("UPDATE `setting` SET `check_key`='checked',`key`='12345678' WHERE `id` = 1");
} else {
$db -> query("UPDATE `setting` SET `check_key`='nochecked' WHERE `id` = 1");
}

header ('location: ?mode=index'); 
unlink('install.php');
unlink('tables.sql');
unlink('data.sql');
echo
'</div>';
break;
default: 
header ('location: ?mode=index'); 
endswitch;
echo
'<div class="footer"><div style="overflow: hidden"><div style="float: left"> © <a href="http://cms.lorinz.ru"><font color="#FFFFFF">Powered by Terrin </font></a> </div><div align="right">v2.1'
echo
'</div></div></div>';
echo
'</body></html>';
//ob_flush();
?>
Онлайн: 2
Реклама