Файл: install/inc/step.php
Строк: 310
<?php
$step = (isset($_GET['step'])) ? htmlspecialchars($_GET['step']) : null;
switch ($step) {
default :
$set['title'] = 'Предисловие';
require_once 'inc/head.php';
echo "<div class = 'razd'><center><img src = '/style/img/step/green.png' /> <img src = '/style/img/step/black.png' /> <img src = '/style/img/step/black.png' /> <img src = '/style/img/step/black.png' /> <img src = '/style/img/step/black.png' /> <img src = '/style/img/step/black.png' /></center></div>";
echo "<div class = 'razd'><center>Мастер установки DCMS Special</center></div>";
echo "<div class = 'razd'>";
echo "Вы устанавливаете модификацию <b>DCMS Special</b>. Модификация постоянно обновляется с исправленными ошибками, с новыми функциями. Данная модификация больше подходит на тематику социальной сети, но ее легко можно переоформить под любую другую тематику. Архив релиза довольно легкий, но движок функциональный, на официальном сайте вы можете легко найти моды и дополнения для данного релиза. Также вы сможете в форуме обсудить данную модификацию. Спасибо, что выбрали нас!!!<hr />
Автор модификации: <font color = 'red'>densnet</font><br />
Официальный сайт: <a href = 'http://sevfo.com'>Sevfo.com</a><br />
Контакты: <br /><font color = 'green'>
Spaces.ru - ник densnet<br />
Vk.com - <a href = 'http://vk.com/densnet'>http://vk.com/densnet</a><br />
</font>";
echo "<center>";
echo "<a href = '?step=1'><button class = 'clik'>Далее</button></a>";
echo "</center>";
echo "</div>";
break;
case '1':
$set['title'] = 'Соглашение';
require_once 'inc/head.php';
echo "<div class = 'razd'><center><img src = '/style/img/step/black.png' /> <img src = '/style/img/step/green.png' /> <img src = '/style/img/step/black.png' /> <img src = '/style/img/step/black.png' /> <img src = '/style/img/step/black.png' /> <img src = '/style/img/step/black.png' /></center></div>";
echo "<div class = 'razd'><center>Мастер установки DCMS Special</center></div>";
echo "<div class = 'razd'>";
echo '
1) Поскольку данная программа распространяется бесплатно, то никакие претензии в сторону автора не принимаются. Также этот пункт относится к случаям взломов, спама и т.д.<br />
2) Все вопросы об установке и настройке движка направлять только на форум официального сайта.<br />
3) Пользователь обязуется сохранять все упоминания об авторе, сайте и названии движка в коде и на страницах движка, за исключением изображений.<br />
4) При упоминании о движке на сторонних форумах необходимо ссылаться на адрес сайта (<a href="http://sevfo.com">http://sevfo.com</a>).<br />
5) Запрещается использование пользовательских функций движка, а также отдельного кода движка в целях продажи.<br />
6) В случае нарушения одного или нескольких пунктов данного соглашения автор имеет право обратиться к хозяину сервера (хостинга) с просьбой об удалении всех файлов движка, установленных пользователем. Если данная просьба будет проигнорирована, будут использоваться другие методы (ибо их немалое количество).<br />
<hr />
Автор модификации: <font color = "red">densnet</font><br/>';
echo "Сайт: <a href = 'http://sevfo.com'>http://sevfo.com</a><br />";
echo "<center>";
echo "<a href = '?'><button class = 'clik'>Назад</button></a> ";
echo "<a href = '?step=2'><button class = 'clik'>Далее</button></a>";
echo "</center>";
echo "</div>";
break;
case '2':
$set['title'] = 'Проверка платформы';
require_once 'inc/head.php';
echo "<div class = 'razd'><center><img src = '/style/img/step/black.png' /> <img src = '/style/img/step/black.png' /> <img src = '/style/img/step/green.png' /> <img src = '/style/img/step/black.png' /> <img src = '/style/img/step/black.png' /> <img src = '/style/img/step/black.png' /></center></div>";
echo "<div class = 'razd'><center>Мастер установки DCMS Special</center></div>";
echo "<form method = 'post' class = 'razd' action='?step=2'>";
echo "<button name = 'refresh' class = 'clik'>Обновить</button>";
echo "</form>";
echo "<div class = 'razd'>";
require_once H . '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>";
}
}
echo "<center>";
echo "<a href = '?step=1'><button class = 'clik'>Назад</button></a> ";
if (isset($err)) {
echo "<a href = '?step=3'><button class = 'clik'>Пропустить шаг</button></a>";
} else {
echo "<a href = '?step=3'><button class = 'clik'>Далее</button></a>";
}
echo "</center>";
echo "</div>";
break;
case '3':
$set['title'] = 'Проверка CHMOD';
require_once 'inc/head.php';
if (isset($_GET['chmod_ok'])) {
@chmod(H . 'install/', 0777);
@chmod(H . 'sys/avatar/', 0777);
@chmod(H . 'sys/ini/', 0777);
@chmod(H . 'sys/classes/', 0777);
@chmod(H . 'sys/gallery/foto/', 0777);
@chmod(H . 'sys/gallery/48/', 0777);
@chmod(H . 'sys/gallery/128/', 0777);
@chmod(H . 'sys/gallery/640/', 0777);
@chmod(H . 'sys/obmen/files/', 0777);
@chmod(H . 'sys/obmen/screens/', 0777);
@chmod(H . 'sys/inc/', 0777);
@chmod(H . 'sys/forum/', 0777);
@chmod(H . 'sys/diary/', 0777);
@chmod(H . 'sys/wall/', 0777);
@chmod(H . 'sys/files/', 0777);
@chmod(H . 'sys/txt/', 0777);
@chmod(H . 'sys/js/', 0777);
@chmod(H . 'sys/fnc/', 0777);
@chmod(H . 'sys/news/', 0777);
@chmod(H . 'sys/update/', 0777);
@chmod(H . 'sys/tmp/', 0777);
@chmod(H . 'style/themes/', 0777);
msg('Права успешно получены!');
}
echo "<div class = 'razd'><center><img src = '/style/img/step/black.png' /> <img src = '/style/img/step/black.png' /> <img src = '/style/img/step/black.png' /> <img src = '/style/img/step/green.png' /> <img src = '/style/img/step/black.png' /> <img src = '/style/img/step/black.png' /></center></div>";
echo "<div class = 'razd'><center>Мастер установки DCMS Special</center></div>";
echo "<form method = 'post' class = 'razd' action='?step=3'>";
echo "<button name = 'refresh' class = 'clik'>Обновить</button>";
echo "</form>";
echo "<form class = 'razd' method = 'POST' action = '?step=3&chmod_ok'>";
echo "<button class = 'clik'>Получить права!</button>";
echo "</form>";
echo "<div class = 'razd'>";
require_once H . 'sys/inc/chmod_test.php';
if (isset($err)) {
if (is_array($err)) {
foreach ($err as $key => $value) {
echo "<div class='err'>$value</div>n";
}
} else {
echo "<div class='err'>$err</div>n";
}
}
echo "<center>";
echo "<a href = '?step=2'><button class = 'clik'>Назад</button></a> ";
if (isset($err)) {
echo "<a href = '?step=4'><button class = 'clik'>Пропустить шаг</button></a>";
} else {
echo "<a href = '?step=4'><button class = 'clik'>Далее</button></a>";
}
echo "</center>";
echo "</div>";
break;
case '4':
$set['title'] = 'Параметры MySQL';
require_once 'inc/head.php';
echo "<div class = 'razd'><center><img src = '/style/img/step/black.png' /> <img src = '/style/img/step/black.png' /> <img src = '/style/img/step/black.png' /> <img src = '/style/img/step/black.png' /> <img src = '/style/img/step/green.png' /> <img src = '/style/img/step/black.png' /></center></div>";
echo "<div class = 'razd'><center>Мастер установки DCMS Special</center></div>";
echo "<form method = 'post' class = 'razd' action='?step=4'>";
echo "<button name = 'refresh' class = 'clik'>Обновить</button>";
echo "</form>";
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(H . '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'] . ') содержатся таблицы с идентичными названиями. Очистите или выберите другую базу данных.';
} else {
require_once H . 'install/inc/ver_tables.php';
$msg[] = "Успешно выполнено $ok_sql из $k_sql запросов";
$_SESSION['mysql_ok'] = true;
}
}
}
if (isset($_SESSION['mysql_ok']) && $_SESSION['mysql_ok'] == true) {
echo "<div class = 'msg'>Подключение к базе данных успешно выполнено</div>";
if (isset($msg)) {
foreach ($msg as $key => $value) {
echo "<div class = 'msg'>$value</div>";
}
}
if (isset($err)) {
foreach ($err as $key => $value) {
echo "<div class = 'err'>$value</div>";
}
}
echo "<div class = 'razd'>";
echo "<center>";
echo "<a href = '?step=3'><button class = 'clik'>Назад</button></a> ";
if (isset($err)) {
echo "<a href = '?step=5'><button class = 'clik'>Пропустить шаг</button></a>";
} else {
echo "<a href = '?step=5'><button class = 'clik'>Далее</button></a>";
}
echo "</center>";
echo "</div>";
require_once 'inc/foot.php';
exit();
} else {
if (isset($err)) {
foreach ($err as $key => $value) {
echo "<div class = 'err'>$value</div>n";
}
}
echo "<form method = 'post' class = 'razd' action = '?step=4&$passgen'>";
echo "<b>Хост</b> <br />";
echo "<input class = 'input-txt' aria-required = 'true' aria-invalid = 'false' required = 'required' name = 'host' value = '" . output_text($set['mysql_host']) . "' type = 'text' /><br />";
echo "<b>Пользователь</b> <br />";
echo "<input class = 'input-txt' aria-required = 'true' aria-invalid = 'false' required = 'required' name = 'user' value = '" . output_text($set['mysql_user']) . "' type = 'text' /><br />";
echo "<b>Пароль</b> <br />";
echo "<input class = 'input-txt' aria-required = 'true' aria-invalid = 'false' required = 'required' name = 'pass' value = '" . output_text($set['mysql_pass']) . "' type = 'text' /><br />";
echo "<b>Имя базы</b> <br />";
echo "<input class = 'input-txt' aria-required = 'true' aria-invalid = 'false' required = 'required' name = 'db' value = '" . output_text($set['mysql_db_name']) . "' type = 'text' /><br />";
if (isset($db_not_null)) {
echo "<label><input type = 'checkbox' checked = 'checked' name = 'rename' value = '1' /> Переименовать существующие таблицы<br /></label>";
}
echo "<button class = 'clik'>Далее</button>";
echo "</form>";
}
break;
case '5':
$set['title'] = 'Регистрация Администратора';
include_once 'inc/head.php';
echo "<div class = 'razd'><center><img src = '/style/img/step/black.png' /> <img src = '/style/img/step/black.png' /> <img src = '/style/img/step/black.png' /> <img src = '/style/img/step/black.png' /> <img src = '/style/img/step/black.png' /> <img src = '/style/img/step/green.png' /></center></div>";
echo "<div class = 'razd'><center>Мастер установки DCMS Special</center></div>";
echo "<form method = 'post' class = 'razd' action='?step=5'>";
echo "<button name = 'refresh' class = 'clik'>Обновить</button>";
echo "</form>";
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(H . '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 (text::utf8_strlen($_POST['nick']) < 3) {
$err[] = 'Логин короче 3-х символов';
} elseif (text::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 (text::utf8_strlen($_POST['password']) < 6) {
$err[] = 'Пароль короче 6-ти символов';
} elseif (text::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', '" . crypt::hash($_POST['password']) . "', $time, $time, $time, '$sex', '4', '15', '500')");
$user = mysql_fetch_assoc(mysql_query("SELECT * FROM `user` WHERE `nick` = '$nick' AND `pass` = '" . crypt::hash($_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 = 'msg'>Регистрация администратора прошла успешно</div>";
if (isset($msg)) {
foreach ($msg as $key => $value) {
echo "<div class = 'msg'>$value</div>";
}
}
echo "<div class = 'razd'>";
echo "<center>";
if (isset($err)) {
echo "<a href = '?step=6'><button class = 'clik'>Пропустить шаг</button></a>";
} else {
echo "<a href = '?step=6'><button class = 'clik'>Завершить</button></a>";
}
echo "</center>";
echo "</div>";
echo "<div class = 'razd'>";
echo "* после установки обязательно удалите папку /install/</div>";
} else {
if (isset($err)) {
foreach ($err as $key => $value) {
echo "<div class = 'err'>$value</div>";
}
}
echo "<form action = '?step=5&$passgen' class = 'razd' method = 'post'>n";
echo "<b>Логин (3-16 символов)</b><br />";
echo "<input type = 'text' class = 'input-txt' aria-required = 'true' aria-invalid = 'false' required = 'required' name = 'nick'" . ((isset($nick)) ? " value = '" . $nick . "'" : " value = 'Admin'") . " maxlength = '16' /><br />";
echo "<b>Пароль (6-16 символов)</b><br />";
echo "<input type = 'password'" . ((isset($password)) ? " value = '" . $password . "'" : null) . " name = 'password' aria-required = 'true' aria-invalid = 'false' required = 'required' maxlength = '16' /><br />";
echo "* использование простого пароля облегчает жизнь хакерам<br />";
echo "<b>Подтверждение пароля</b><br />";
echo "<input type = 'password'" . ((isset($password)) ? " value = '" . $password . "'" : null) . " name = 'password_retry' aria-required = 'true' aria-invalid = 'false' required = 'required' maxlength='16' /><br />n";
echo "Ваш пол:<br />n";
echo "<select name='sex'>n";
echo "<option value='1'" . ((isset($sex) && $sex === 1) ? " selected='selected'" : null) . ">Мужской</option>n";
echo "<option value='0'" . ((isset($sex) && $sex === 0) ? " selected='selected'" : null) . ">Женский</option>n";
echo "</select><br />n";
echo "* Все поля обязательны к заполнению<br />n";
echo "<button class = 'clik' 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';