Вход Регистрация
Файл: install/inc/step.php
Строк: 338
<?php
/* DCMS Special
 * Дата последнего редактирования 02.07.2016
 * Модифицировал densnet
 */

$step = (isset($_GET['step'])) ? htmlspecialchars($_GET['step']) : null;

switch (
$step) {
    default :

        
$set['title'] = 'DCMS Special';

        include_once 
'inc/head.php';
        
?>

        <div class='list-group-item-null list-group-item-grey'>Предисловие</div>
        <div class='list-group-item-null'>

            <progress class="progress progress-striped progress-info" value="1" max="100">1%</progress>

            Вы устанавливаете модификацию <b>DCMS Special</b>.<br />
            Модификация находится в стадии разработки.<br />
            Если Вы нашли ошибку или уязвимость, сообщите пожалуйста разработчику модификации (<a href = 'http://vk.com/densnet'>http://vk.com/densnet</a>).<br />
            Свои пожелания и рекомендации, Вы можете оставить разработчику модификации.<br />
            Спасибо, что Выбрали нас!!!

            <hr>
            Автор модификации: <span class="tag tag-success">densnet</span><br />
            Официальный сайт: <a href = 'http://soccms.com' class="tag tag-success">soccms.com</a><br />
            Дополнительный сайт: <a href = 'http://sevfo.com' class="tag tag-success">sevfo.com</a><br />
            Контакты: <br />
            <span style="color: green;">
                Spaces.ru создатель - <a href = 'http://densnet.spaces.ru' class="tag tag-success">http://densnet.spaces.ru</a><br />
                Spaces.ru сообщество - <a href="http://spaces.ru/soo/dcms_s" class="tag tag-success">http://spaces.ru/soo/dcms_s</a><br />
                Vk.com создатель - <a href = 'https://vk.com/densnet' class="tag tag-success">https://vk.com/densnet</a><br />
                Vk.com группа - <a href="https://vk.com/dcms_special" class="tag tag-success">https://vk.com/dcms_special</a><br />
                Facebook.comm группа - <a href = 'https://www.facebook.com/groups/dcmss/' class="tag tag-success">https://www.facebook.com/groups/dcmss/</a>
            </span>

            <hr>
            <b>Фонд поддержки проекта</b><br />
            <span style="float: right;">
                <form action = "?step=1" method = "post">
                    <button class = 'btn btn-success btn-sm'>Далее</button>
                </form>
            </span>
            <span style="padding: 3px;"> <i class="fa fa-rub fa-fw"></i> R116714873948</span><br />
            <span style="padding: 3px;"> Qiwi 79780755489</span><br />
        </div>


        <?php
        
break;
    case 
'1':

        
$set['title'] = 'DCMS Special';

        include_once 
'inc/head.php';
        
?>


        <div class='list-group-item-null list-group-item-grey'>Соглашение</div>
        <div class='list-group-item-null'>
            <progress class="progress progress-striped progress-info" value="14" max="100">14%</progress>

            1) Поскольку данная программа распространяется бесплатно, то никакие претензии в сторону автора не принимаются. Также этот пункт относится к случаям взломов, спама и т.д.<br />
            2) Все вопросы об установке и настройке движка направлять только на форум официального сайта.<br />
            3) Пользователь обязуется сохранять все упоминания об авторе, сайте и названии движка в коде и на страницах движка, за исключением изображений.<br />
            4) При упоминании о движке на сторонних форумах необходимо ссылаться на адрес сайта (<a href="http://sevfo.com">http://sevfo.com</a>).<br />
            5) Запрещается использование пользовательских функций движка, а также отдельного кода движка в целях продажи.<br />
            6) В случае нарушения одного или нескольких пунктов данного соглашения автор имеет право обратиться к хозяину сервера (хостинга) с просьбой об удалении всех файлов движка, установленных пользователем. Если данная просьба будет проигнорирована, будут использоваться другие методы (ибо их немалое количество).<br /><br />

            <span style="float: right;">
                <form action = "?step=2" method = "post">
                    <button class = 'btn btn-success'>Далее</button>
                </form>
            </span>

            <form method = 'POST' action = '?'>
                <button class = 'btn btn-success'>Назад</button>
            </form>
        </div>


        <?php
        
break;

    case 
'2':

        
$set['title'] = 'DCMS Special';

        include_once 
'inc/head.php';
        
?>


        <div class='list-group-item-null list-group-item-grey'>Проверка платформы</div>
        <div class='list-group-item-null'>
            <progress class="progress progress-striped progress-info" value="20" max="100">20%</progress>

            <form method = 'post' action='?step=2'>
                <button name = 'refresh' class = 'btn btn-success'><span class="fa fa-refresh"></span> Обновить</button>
            </form><br />

            <?php
            
require_once 'sys/inc/testing.php';

            if (isset(
$err)) {
                if (
is_array($err)) {
                    foreach (
$err as $key => $value) {
                        echo 
"<div class = 'err'>$value</div>";
                    }
                } else {
                    echo 
"<div class = 'err'>$err</div>";
                }
            }
            
?>
            <br />
            <span style="float: right;">
                <form action = "?step=3" method = "post">
                    <?php
                    
if (isset($err)) {
                        echo 
"<button class = 'btn btn-success'>Пропустить шаг</button>";
                    } else {
                        echo 
"<button class = 'btn btn-success'>Далее</button>";
                    }
                    
?>
                </form>
            </span>

            <form method = 'POST' action = '?step=1'>
                <button class = 'btn btn-success'>Назад</button>
            </form>

        </div>

        <?php
        
break;

    case 
'3':
        
$set['title'] = 'DCMS Special';

        require_once 
'inc/head.php';
        
?>


        <div class='list-group-item-null list-group-item-grey'>Проверка CHMOD</div>
        <div class='list-group-item-null'>
            <progress class="progress progress-striped progress-info" value="30" max="100">30%</progress>

            <?php
            
if (isset($_GET['chmod_ok'])) {
                @
chmod('install/'0777);
                @
chmod('sys/ini/'0777);
                @
chmod('sys/classes/'0777);
                @
chmod('sys/inc/'0777);
                @
chmod('sys/loads/files/'0777);
                @
chmod('sys/loads/files_dop/'0777);
                @
chmod('sys/loads/screens/14/'0777);
                @
chmod('sys/loads/screens/48/'0777);
                @
chmod('sys/loads/screens/128/'0777);
                @
chmod('sys/loads/mp3crop/'0777);
                @
chmod('sys/gallery/foto/'0777);
                @
chmod('sys/gallery/48/'0777);
                @
chmod('sys/gallery/50/'0777);
                @
chmod('sys/gallery/128/'0777);
                @
chmod('sys/gallery/640/'0777);
                @
chmod('sys/gallery/avatar/'0777);
                @
chmod('sys/wall/'0777);
                @
chmod('sys/public/'0777);
                @
chmod('sys/mail/'0777);
                @
chmod('sys/txt/'0777);
                @
chmod('sys/fnc/'0777);
                @
chmod('sys/tmp/'0777);

                
msg('Права успешно получены!');
            }
            
?>
            <span style="float: right;">
                <form action = "?step=3&amp;chmod_ok" method = "post">
                    <button class = 'btn btn-success'>Получить права!</button>
                </form>
            </span>

            <form method = 'POST' action = '?step=3'>
                <button class = 'btn btn-success'>Обновить</button>
            </form>
            <br />

            <?php
            
require_once 'sys/inc/chmod_test.php';


            if (isset(
$err)) {
                if (
is_array($err)) {
                    foreach (
$err as $key => $value) {
                        echo 
"<div class='label label-danger'>$value</div>n";
                    }
                } else {
                    echo 
"<div class='label label-danger'>$err</div>n";
                }
            }
            
?>
            <br />
            <span style="float: right;">
                <form action = "?step=4" method = "post">
                    <?php
                    
if (isset($err)) {
                        echo 
"<button class = 'btn btn-success'>Пропустить шаг</button>";
                    } else {
                        echo 
"<button class = 'btn btn-success'>Далее</button>";
                    }
                    
?>
                </form>
            </span>

            <form method = 'POST' action = '?step=2'>
                <button class = 'btn btn-success'>Назад</button>
            </form>
        </div>


        <?php
        
break;

    case 
'4':
        
$set['title'] = 'DCMS Special';

        require_once 
'inc/head.php';
        
?>


        <div class='list-group-item-null list-group-item-grey'>Параметры MySQL</div>
        <div class='list-group-item-null'>
            <progress class="progress progress-striped progress-info" value="46" max="100">46%</progress>
            <span style="float: right;">
                <form action = "?step=4" method = "post">
                    <button class = 'btn btn-success'>Обновить</button>
                </form>
            </span>

            <form method = 'POST' action = '?step=3'>
                <button class = 'btn btn-success'>Назад</button>
            </form>
        </div>

        <?php
        
if (isset($_SESSION['mysql_ok']) && $_SESSION['mysql_ok'] == true) {
            
header("Location: ?step=5" SID);
        } elseif (isset(
$_POST['host']) && isset($_POST['user']) && isset($_POST['pass']) && isset($_POST['db'])) {

            if (!(
$db = @mysql_connect($_POST['host'], $_POST['user'], $_POST['pass']))) {
                
$err[] = 'Невозможно подключиться к серверу ' $_POST['host'];
            } elseif (!@
mysql_select_db($_POST['db'], $db)) {
                
$err[] = 'Проверьте название базы';
            } else {
                
$set['mysql_db_name'] = $_SESSION['db'] = $_POST['db'];
                
$set['mysql_host'] = $_SESSION['host'] = $_POST['host'];
                
$set['mysql_user'] = $_SESSION['user'] = $_POST['user'];
                
$set['mysql_pass'] = $_SESSION['pass'] = $_POST['pass'];

                
mysql_query('set charset utf8');
                
mysql_query('SET names utf8');
                
mysql_query('set character_set_client="utf8"');
                
mysql_query('set character_set_connection="utf8"');
                
mysql_query('set character_set_result="utf8"');

                
$db_tables = array();
                
$tab mysql_query('SHOW TABLES FROM ' $_SESSION['db']);
                for (
$i 0$i < @mysql_num_rows($tab); $i++) {
                    
$db_tables[] = mysql_tablename($tab$i);
                }
                
$opdirtables opendir('install/db_tables');
                while (
$filetables readdir($opdirtables)) {
                    if (
preg_match('#.sql$#i'$filetables)) {
                        
$table_name preg_replace('#.sql$#i'null$filetables);
                        if (
in_array($table_name$db_tables)) {
                            if (isset(
$_POST['rename']) && $_POST['rename'] == 1) {
                                
mysql_query("ALTER TABLE `$table_name` RENAME `~" $time "_$table_name`");
                            } else {
                                
$db_not_null true;
                            }
                        }
                    }
                }

                if (isset(
$db_not_null)) {
                    
$err[] = 'В выбранной базе данных (' $_SESSION['db'] . ') содержатся таблицы с идентичными названиями.<br /> Очистите или выберите другую базу данных.';
                } else {

                    require_once 
'install/inc/ver_tables.php';
                    
$msg[] = "Успешно выполнено $ok_sql из $k_sql запросов";

                    
$_SESSION['mysql_ok'] = true;
                }
            }
        }

        if (isset(
$_SESSION['mysql_ok']) && $_SESSION['mysql_ok'] == true) {
            
?>
            <div class = 'list-group-item-null'>
                <span class = 'tag tag-success'>
                    Подключение к базе данных успешно выполнено
                </span>
                <?php
                
if (isset($msg)) {
                    foreach (
$msg as $key => $value) {
                        echo 
"<div class = 'tag tag-success'>$value</div>";
                    }
                }
                if (isset(
$err)) {
                    foreach (
$err as $key => $value) {
                        echo 
"<div class = 'tag tag-danger'>$value</div>";
                    }
                }
                
?>

                <form method = 'POST' action = '?step=5'>
                    <button class = 'btn btn-success'>Далее</button>
                </form>
            </div>

            <?php
            
require_once 'inc/foot.php';
            exit();
        } else {
            if (isset(
$err)) {
                foreach (
$err as $key => $value) {
                    echo 
"<div class='list-group-item-null'>";
                    echo 
"<div class = 'tag tag-danger'>$value</div>";
                    echo 
"</div>";
                }
            }

            
$out_mysql_host output_text($set['mysql_host']);
            
$out_mysql_user output_text($set['mysql_user']);
            
$out_mysql_pass output_text($set['mysql_pass']);
            
$out_mysql_db_name output_text($set['mysql_db_name']);
            
?>

            <form method = 'post' class = 'list-group-item-null' action = '?step=4&amp;<?= $passgen ?>'>
                <div class="form-group">
                    <input value='<?= $out_mysql_host ?>' type="text" name='host' class="form-control" style='width: 50%;' placeholder="Хост">
                </div>
                <div class="form-group">
                    <input value='<?= $out_mysql_user ?>' type="text" name='user' class="form-control" style='width: 50%;' placeholder="Пользователь">
                </div>
                <div class="form-group">
                    <input value='<?= $out_mysql_pass ?>' type="text" name='pass' class="form-control" style='width: 50%;' placeholder="Пароль">
                </div>
                <div class="form-group">
                    <input value='<?= $out_mysql_db_name ?>' type="text" name='db' class="form-control" style='width: 50%;' placeholder="Имя базы">
                </div>

                <?php
                
if (isset($db_not_null)) {
                    echo 
"<label class='checkbox-inline'><input type='checkbox' checked='checked' name='rename' value='1' /> Переименовать существующие таблицы</label><br />";
                }
                
?>

                <button class = 'btn btn-success'>Далее</button>
            </form>

            <?php
        
}


        break;

    case 
'5':
        
$set['title'] = 'DCMS Special';

        require_once 
'inc/head.php';
        
?>


        <div class='list-group-item-null list-group-item-grey'>Регистрация Администратора</div>
        <div class='list-group-item-null'>
            <progress class="progress progress-striped progress-info" value="80" max="100">80%</progress>

            <form method = 'post' action='?step=5'>
                <button name = 'refresh' class = 'btn btn-success'>Обновить</button>
            </form>
        </div>

        <?php
        
include_once 'sys/inc/shif.php';
        if (!isset(
$_SESSION['shif'])) {
            
$_SESSION['shif'] = $passgen;
        }

        
$set['shif'] = $_SESSION['shif'];

        
$db mysql_connect($_SESSION['host'], $_SESSION['user'], $_SESSION['pass']);
        
mysql_select_db($_SESSION['db'], $db);
        
mysql_query('set charset utf8');
        
mysql_query('SET names utf8');
        
mysql_query('set character_set_client="utf8"');
        
mysql_query('set character_set_connection="utf8"');
        
mysql_query('set character_set_result="utf8"');


        if (isset(
$_SESSION['adm_reg_ok']) && $_SESSION['adm_reg_ok'] == true) {
            
$tmp_set['title'] = strtoupper($_SERVER['HTTP_HOST']) . ' - Главная';
            
$tmp_set['mysql_host'] = $_SESSION['host'];
            
$tmp_set['mysql_user'] = $_SESSION['user'];
            
$tmp_set['mysql_pass'] = $_SESSION['pass'];
            
$tmp_set['mysql_db_name'] = $_SESSION['db'];
            
$tmp_set['shif'] = $_SESSION['shif'];

            if (
save_settings($tmp_set)) {
                unset(
$_SESSION['install_step'], $_SESSION['host'], $_SESSION['user'], $_SESSION['pass'], $_SESSION['db'], $_SESSION['adm_reg_ok'], $_SESSION['mysql_ok']);
                if (
$_SERVER["SERVER_ADDR"] != '127.0.0.1') {
                    
delete_dir('install/');
                }
                
header("Location: /index.php?" SID);
                exit;
            } else {
                
$msg['Невозможно сохранить настройки системы'];
            }
        } elseif (isset(
$_POST['reg'])) {
            if (!isset(
$_POST['nick']) || $_POST['nick'] == null) {
                
$err[] = 'Введите логин';
            } elseif (!
preg_match('#^([A-zА-я0-9-_ ])+$#ui'$_POST['nick'])) {
                
$err[] = 'В логине присутствуют запрещенные символы';
            } else {
                if (
utf8_strlen($_POST['nick']) < 3) {
                    
$err[] = 'Логин короче 3-х символов';
                } elseif (
utf8_strlen($_POST['nick']) > 16) {
                    
$err[] = 'Логин длиннее 16-ти символов';
                } elseif (
mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `nick` = '" mysql_real_escape_string($_POST['nick']) . "' LIMIT 1"), 0) != 0) {
                    
$err[] = 'Выбранный логин уже занят другим пользователем';
                } else {
                    
$nick $_POST['nick'];
                }
            }

            if (!isset(
$_POST['password']) || $_POST['password'] == null) {
                
$err[] = 'Введите пароль';
            } else {
                if (
utf8_strlen($_POST['password']) < 6) {
                    
$err[] = 'Пароль короче 6-ти символов';
                } elseif (
utf8_strlen($_POST['password']) > 16) {
                    
$err[] = 'Пароль длиннее 16-ти символов';
                } elseif (!isset(
$_POST['password_retry'])) {
                    
$err[] = 'Введите подтверждение пароля';
                } elseif (
$_POST['password'] !== $_POST['password_retry']) {
                    
$err[] = 'Пароли не совпадают';
                } else {
                    
$password $_POST['password'];
                }
            }

            if (!isset(
$_POST['sex']) || !is_numeric($_POST['sex']) || ($_POST['sex'] !== '0' && $_POST['sex'] !== '1')) {
                
$err[] = 'Ошибка при выборе пола';
            } else {
                
$sex intval($_POST['sex']);
            }

            if (!isset(
$err)) { #если нет ошибок
                
mysql_query("INSERT INTO `user` (`nick`, `pass`, `date_reg`, `date_aut`, `date_last`, `sex`, `level`, `group_access`, `money`) VALUES('$nick', '" shif($_POST['password']) . "', $time$time$time, '$sex', '4', '15', '500')");

                
$user mysql_fetch_assoc(mysql_query("SELECT * FROM `user` WHERE `nick` = '$nick' AND `pass` = '" shif($_POST['password']) . "' LIMIT 1"));

                
$q mysql_query("SELECT `type` FROM `all_accesses`");
                while (
$ac mysql_fetch_assoc($q)) {
                    
mysql_query("INSERT INTO `user_acсess` (`id_user`, `type`) VALUES ('$user[id]','$ac[type]')");
                }

                
$_SESSION['id_user'] = $user['id'];
                
$_SESSION['adm_reg_ok'] = true;
            }
        }

        if (isset(
$_SESSION['adm_reg_ok']) && $_SESSION['adm_reg_ok'] == true) {
            echo 
"<div class='tag tag-success'>Регистрация администратора прошла успешно</div>";

            if (isset(
$msg)) {
                foreach (
$msg as $key => $value) {
                    echo 
"<div class = 'tag tag-success'>$value</div>";
                }
            }
            
?>
            <form action="?step=6" method="post" class="list-group-item-null">

                <?php
                
if (isset($err)) {
                    echo 
"<button class = 'btn btn-success'>Пропустить шаг</button>";
                } else {
                    echo 
"<button class = 'btn btn-success'>Завершить</button>";
                }
                
?>
            </form>
            <div class = 'list-group-item-null list-group-item-warning'>
                * после установки обязательно удалите папку /install/
            </div>
            <?php
        
} else {

            if (isset(
$err)) {
                foreach (
$err as $key => $value) {
                    echo 
"<div class = 'tag tag-danger'>$value</div>";
                }
            }

            echo 
"<form action = '?step=5&amp;$passgen' class = 'list-group-item-null' method = 'post'>n";
            echo 
"Логин (3-16 символов)<br />";
            echo 
"<input type='text' class='form-control' name = 'nick'" . ((isset($nick)) ? " value = '" $nick "'" " value = 'Admin'") . " maxlength = '16' />";
            echo 
"Пароль (6-16 символов)<br />";
            echo 
"<input class='form-control' type = 'password'" . ((isset($password)) ? " value = '" $password "'" null) . " name = 'password' maxlength = '16' />";
            echo 
"Подтверждение пароля<br />";
            echo 
"<input class='form-control' type = 'password'" . ((isset($password)) ? " value = '" $password "'" null) . " name = 'password_retry' maxlength='16' />";
            echo 
"Ваш пол<br />";
            echo 
"<select class='form-control' name='sex' style='width: 50%;'>";
            echo 
"<option value='1'" . ((isset($sex) && $sex === 1) ? " selected='selected'" null) . ">Мужской</option>";
            echo 
"<option value='0'" . ((isset($sex) && $sex === 0) ? " selected='selected'" null) . ">Женский</option>";
            echo 
'</select><br />';
            echo 
"<span class='tag tag-info'>* использование простого пароля облегчает жизнь хакерам</span><br />";
            echo 
"<span class='tag tag-info'>* Все поля обязательны к заполнению</span><br /><br />";

            echo 
"<button class = 'btn btn-success' name='reg'>Зарегистрироваться</button>";
            echo 
"</form>";
        }

        break;

    case 
'6':
        if (isset(
$_SESSION['mysql_ok']) && $_SESSION['mysql_ok'] == true) {
            
header("Location: ?step=5" SID);
        }
        break;
}

require_once 
'inc/foot.php';
Онлайн: 1
Реклама