<?php
define('SHCMS', true);
$act = isset ($_GET['act']) ? trim($_GET['act']) : '';
$install = parse_ini_file('install.ini',true);
switch ($act)
{
case '':
$shcmsengine['title'] = $install['install_index']['title'];
include_once'template/install/head.php';
echo '<td style="padding:2px;">
Добро пожаловать в мастер установки движка <b>SHCMS Engine.</b>Данных раздел поможет вам установить скрипт все за несколько минут.<br/><br/>
Прежде чем начать установку убедитесь, что все файлы дистрибутива загружены на сервер, а также выставлены необходимые права доступа для папок и файлов.
<br/><br/><font color="red">Внимание!!!. В данном разделе создается структура базы данных, создает профиль администратора, поэтому после успешно установки движка обязательно удаляйте файл
<b>installation.php</b> чтобы избежать повторной установки!<br/><br/>
</font>
</td>';
echo '<form method="post" action="?act=li">';
echo '<input type="submit" vlaue="Продолжить установку">';
echo '</form>';
include_once'template/install/foot.php';
break;
case'li':
$shcmsengine['title'] = $install['install_index']['title'];
include_once'template/install/head.php';
echo <<<HTML
<form id="check-eula" method="post" action="?act=prov_php">
<script language='javascript'>
check_eula = function()
{
if( document.getElementById( 'eula' ).checked == true )
{
return true;
}
else
{
alert( 'Вы должны принять лицензионное соглашение, прежде чем продолжите установку.' );
return false;
}
}
document.getElementById( 'check-eula' ).onsubmit = check_eula;
</script>
<div style="padding-top:5px;">
<table width="100%">
Прочитайте и соглашайтесь с условиями пользования SHCMS Engine
<br>
<br>
<div style="height: 300px; border: 1px solid #E2E2E2; background-color: #f7f7f7; padding: 5px; overflow: auto;">
<b>Лицензионное соглашение конечного пользователя</b>
<br>
<br>
<b>Предмет лицензионного соглашения</b>
<br>
<br>
Предметом настоящего лицензионного соглашения является право использования
<b>SHCMS Engine</b>
, в порядке и на условиях, установленных настоящим соглашением.
<br>
<br>
<br> <br>
<br>
Мы оставляем за собой право публиковать списки избранных пользователей своих программных продуктов.
Мы оставляем за собой право в любое время изменять условия данного договора,
но данные действия не имеют обратной силы. Изменения данного договора будут разосланы
пользователям по электронной почте на адреса, указанные при приобретении системы.
<br>
<br>
<br>
<b>Запрещается</b>
<br>
Запрещается продавать код SHCMS-Engine. <br>
Запрещается использовать код SHCMS Engine на других cms проектах не относящиеся с SHCMS Engine. <br> <br>
<b>Ограничение гарантийных обязательств</b>
<br>
<br>
Название
<b>SHCMS Engine</b>
, а также входящие в данный продукт скрипты являются собственностью
<b>SHCMS Engine</b>
, за исключением случаев, когда для компонента системы применяется другой тип лицензии.
Программный продукт защищен законом об авторских правах. Любые публикуемые оригинальные материалы,
создаваемые в результате использования нашего скрипта, и связанные с этим права на них,
являются собственностью пользователя и защищены законом. SHCMS Engine не несет никакой
ответственности за содержание сайтов.
<br>
<br>
<b>Запрещается</b>
<br>
- Запрещается продавать код SHCMS-Engine. <br>
- Запрещается использовать код SHCMS Engine на других cms проектах не относящиеся с SHCMS Engine. <br> <br>
- Копирайт снимать запрещено.<br/><br/></div>
<table width="100%">
<tr>
<input type='checkbox' name='eula' id='eula'><b>Я принимаю соглашение</b>
<br />
</tr>
<tr>
<td style="padding:2px;"><input type=hidden name=action value="function_check"><input type=submit value=" Дальше "></td>
</tr>
</table>
<br>
</td>
</table>
</div></form>
HTML;
include_once'template/install/foot.php';
break;
case'prov_php':
$shcmsengine['title'] = $install['install_prov_php']['title'];
include_once'template/install/head.php';
echo '<div class="user_foot">Требования скрипта (поддержка)</div>';
$status = phpversion() < '5.1' ? '<font color=red><b>Нет</b></font>' : '<font color=green><b>Да</b></font>';
echo '<div class="posts">Версия PHP 5.1 и выше -> '.$status.'<br/><hr/>';
$status = function_exists('mysql_connect') ? '<font color=green><b>Да</b></font>' : '<font color=red><b>Нет</b></font>';;
echo ' MySQL -> '.$status.'<br/><hr/>';
$status = extension_loaded('xml') ? '<font color=green><b>Да</b></font>' : '<font color=red><b>Нет</b></font>';
echo 'XML -> '.$status.'<br/><hr/>';
$status = function_exists('iconv') ? '<font color=green><b>Да</b></font>' : '<font color=red><b>Нет</b></font>';
echo 'Iconv - >'.$status.' <hr/>';
$status = extension_loaded('zlib') ? '<font color=green><b>Да</b></font>' : '<font color=red><b>Нет</b></font>';
echo 'Сжатия ZLib - >'.$status.' <hr/>';
$status = ini_get('session.auto_start') ? '<font color=red><b>Включено</b></font>' : '<font color=green><b> Отключено</b></font>';;
echo 'session auto start - >'.$status.' <hr/>';
echo '<form method="post" action="?act=zap">';
echo '<input type="submit" value="Дальше"></form></div>';
include_once'template/install/foot.php';
break;
case'zap':
$shcmsengine['title'] = $install['install_prov_zap']['title'];
include_once'template/install/head.php';
echo <<<HTML
<form method="post" action="?act=mysql_system">
<div style="padding-top:5px;">
<table width="100%">
<tr>
<table width="100%">
HTML;
echo"<tr>
<td height=\"25\"> Папка
<td width=\"100\" height=\"25\"> Права
<td width=\"100\" height=\"25\"> Статус</tr><tr><td colspan=3><div class=\"hr_line\"></div><hr/></td></tr>";
$important_files = array(
'system/tmp/',
'template/',
'download/files_obmen/',
'download/icons/',
'avatar/files/',
'template/shcms/',
'system/thumbs/',
);
$chmod_errors = 0;
$not_found_errors = 0;
foreach($important_files as $file){
if(!file_exists($file)){
$file_status = "<font color=red>не найдено!</font>";
$not_found_errors ++;
}
elseif(is_writable($file)){
$file_status = "<font color=green>разрешено</font>";
}
else{
@chmod($file, 0777);
if(is_writable($file)){
$file_status = "<font color=green>разрешено</font>";
}else{
@chmod("$file", 0755);
if(is_writable($file)){
$file_status = "<font color=green>разрешено</font>";
}else{
$file_status = "<font color=red>запрещено</font>";
$chmod_errors ++;
}
}
}
$chmod_value = @decoct(@fileperms($file)) % 1000;
echo"<tr>
<td height=\"22\" class=\"tableborder main\"> $file</td>
<td> $chmod_value</td>
<td> $file_status</td>
</tr><tr><td background=\"engine/skins/images/mline.gif\" height=1 colspan=3></td></tr>";
}
if($chmod_errors == 0 and $not_found_errors == 0){
$status_report = '<div class="mysql_yes">Проверка успешно завершена! Можете продолжить установку!</div>';
}else{
if($chmod_errors > 0){
$status_report = "<div class='mysql_no'><font color=red>Внимание!!!</font><br /><br />Во время проверки обнаружены ошибки: <b>$chmod_errors</b>. Запрещена запись в файл.<br />Вы должны выставить для папок CHMOD 777, для файлов CHMOD 666, используя ФТП-клиент.<br /><br /><font color=red><b>Настоятельно не рекомендуется</b></font> продолжать установку, пока не будут произведены изменения.<br />";
}
if($not_found_errors > 0){
$status_report .= "<div class='mysql_no'><font color=red>Внимание!!!</font><br />Во время проверки обнаружены ошибки: <b>$not_found_errors</b>. Файлы не найдены!<br /></div><div class='mysql_no'><font color=red><b>Не рекомендуется</b></font> продолжать установку, пока не будут произведены изменения.</div>";
}
}
echo"<tr><td colspan=3></td></tr><tr></tr><tr><td style=\"padding: 5px\" colspan=3>$status_report</td></tr><tr>
<td colspan=3></td></tr>";
echo <<<HTML
</table>
</td>
</tr>
</table>
</div>
<input type="submit" value="Дальше">
</form>
HTML;
include_once'template/install/foot.php';
break;
case'mysql_system':
include_once 'template/install/head.php';
if (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');
if (isset($db_not_null))
{
$err[]='В выбранной базе данных ('.$_SESSION['db'].') содержатся таблицы с идентичными названиями. Очистите или выберите другую базу данных.';
}
else {
$_SESSION['mysql_ok']=true;
}
}
}
if (isset($_SESSION['mysql_ok']) && $_SESSION['mysql_ok']==true)
{
echo "<div class='actshcms'>Подключение к базе данных успешно выполнено</div>\n";
echo '<form action="?act=droup" method="post"><input type="submit" value="Дальше"></form>';
$dbconfig =
<<<HTML
<?PHP
/*
==============================
Движок: SHCMS Engine
==============================
Подключение к базе данных
==============================
Автор: Shamsik
==============================
*/
define ("DBHOST", "$set[mysql_host]");
define ("DBNAME", "$set[mysql_db_name]");
define ("DBUSER", "$set[mysql_user]");
define ("DBPASS", "$set[mysql_pass]");
?>
HTML;
$con_file = fopen("system/inc/config.php", "w+") or die("Извините, но невозможно создать файл <b>system/inc/config.php</b>.<br />Проверьте правильность проставленного CHMOD!");
fwrite($con_file, $dbconfig);
fclose($con_file);
@chmod("system/inc/config.php", 0666);
}
else
{
if (isset($err))
{
foreach ($err as $key=>$value) {
echo "<div class='err'>$value</div>\n";
}
}
echo "<form method=\"post\" action=\"installation.php?act=mysql_system\">\n";
echo "Хост:<br />\n";
echo "<input name=\"host\" value=\"$set[mysql_host]\" type=\"text\" /><br />\n";
echo "Пользователь:<br />\n";
echo "<input name=\"user\" value=\"$set[mysql_user]\" type=\"text\" /><br />\n";
echo "Пароль:<br />\n";
echo "<input name=\"pass\" value=\"$set[mysql_pass]\" type=\"text\" /><br />\n";
echo "Имя базы:<br />\n";
echo "<input name=\"db\" value=\"$set[mysql_db_name]\" type=\"text\" /><br />\n";
echo "<input value=\"Далее\" type=\"submit\" />\n";
echo "</form>\n";
}
include_once 'template/install/foot.php';
break;
case'droup':
$shcmsengine['title'] = $install['install_mysql_droup']['title'];
include_once'template/install/head.php';
include_once'function.php';
if(isset($_POST['submit']))
{
if(!mysql_fetch_array(mysql_query("SELECT * FROM `admin_block`, `download_dir`, `download_file`, `down_comment`, `forum_cat`, `forum_mess`, `forum_razd`, `forum_them`,`menu_list`,`title_name`, `logs_aut`, `mail`, `online_guest`, `options`, `pass_secure`, `reklama`, `rules`, `settings_shcms`, `shouts`, `uncos`,`users`, `uncos_comment`")))
{
$time_inst = mysql_query('DROP TABLE IF EXISTS`admin_block`, `download_dir`, `download_file`, `down_comment`, `forum_cat`, `forum_mess`, `forum_razd`, `forum_them`,`menu_list`,`title_name`, `logs_aut`, `mail`, `online_guest`, `options`, `pass_secure`, `reklama`, `rules`, `settings_shcms`, `shouts`, `uncos`, `users`, `uncos_comment`');
if($time_inst == true)
{
echo '<div class="actshcms">Таблицы успешно удалены</div>';
echo '<div class="actshcms">База данных пустая</div>';
echo '<form action="?act=mysql_system_ok" method="post">';
echo '<input type="submit" name="submit" value="Загрузить талицы"></form>';
header("Refresh: 1; url=?act=droup");
}
else
{
echo '<div class="errors">Ошибка при удаление таблиц</div>';
header("Refresh: 1; url=?act=droup");
}
}
else
{
echo '<div class="actshcms">База данных пустая</div>';
header("Refresh: 1; url=?act=droup");
}
}
else
{
if(mysql_fetch_array(mysql_query("SELECT * FROM `admin_block`, `download_dir`, `download_file`, `down_comment`, `forum_cat`, `forum_mess`, `forum_razd`, `forum_them`,`menu_list`,`title_name`, `logs_aut`, `mail`, `online_guest`, `options`, `pass_secure`, `reklama`, `rules`, `settings_shcms`, `shouts`, `uncos`,`users`, `uncos_comment`")))
{
echo '<div class="actshcms">База данных пустая</div>';
echo '<form action="?act=mysql_system_ok" method="post">';
echo '<input type="submit" name="submit" value="Загрузить талицы"></form>';}
else
{
echo '<div class="mysql_no">В базе которую вы выбрали уже есть таблицы вам обязательно нужно их удалить.</div>';
echo '<form action="?act=droup" method="post">';
echo '<input type="submit" name="submit" value="Удалить существующие таблицы"></form>';
}
}
include_once'template/install/foot.php';
break;
case'mysql_system_ok':
$shcmsengine['title'] = $install['install_mysql_system_ok']['title'];
include_once'template/install/head.php';
include_once'function.php';
function split_sql($sql) {
$sql = trim($sql);
$sql = ereg_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($sql, 0, $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);
}
$error = '';
@ set_magic_quotes_runtime(0);
// Читаем SQL файл и заносим его в базу данных
$query = fread(fopen('shcms.sql', 'r'), filesize('shcms.sql'));
$pieces = split_sql($query);
for ($i = 0; $i < count($pieces); $i++) {
$pieces[$i] = trim($pieces[$i]);
if (!empty ($pieces[$i]) && $pieces[$i] != "#") {
if (!mysql_query($pieces[$i])) {
$error = $error . mysql_error() . '<br />'; } }}
if (empty ($error)) {echo '<span class="green">OK</span> - данные установлены<br />';echo '<form action="?act=admin_user" method="post"><input type="submit" value="Создать администратора"></form>';}
else {
// Если были ошибки, выводим их
echo $error;
echo '<br /><span class="red">Error!</span><br />В процессе установки данных возникли ошибки.<br />';
}
include_once'template/install/foot.php';
break;
case'admin_user':
$shcmsengine['title'] = $install['install_admin']['title'];
include_once'template/install/head.php';
include_once'function.php';
$regi = mysql_fetch_array(mysql_query("SELECT * FROM users"));
if(isset($_POST['submit'])){$submit = $_POST['submit']; if($submit==''){unset($submit);}}
if(isset($_POST['login'])){$reg_login = $_POST['login']; if($reg_login==''){unset($reg_login);}}
if(isset($_POST['password'])){$reg_password = $_POST['password'];if($reg_password == ''){unset($reg_password);}}
if(isset($_POST['email'])){$email = $_POST['email'];}
if(isset($_POST['team'])){$team = $_POST['team'];}
if(isset($submit))
{
$reg_login = stripslashes($reg_login);
$reg_password = stripslashes($reg_password);
$email = stripslashes($email);
$reg_login = htmlspecialchars($reg_login);
$reg_password = htmlspecialchars($reg_password);
$email = htmlspecialchars($email);
$reg_login = trim($reg_login);
$reg_password = trim($reg_password);
$email = trim($reg_password);
$date = date('d.m.Y');
if(empty($reg_login))
echo '<div class="errors">Вы не ввели логин!</div>';
elseif (mb_strlen($reg_login) < 2 || mb_strlen($reg_login) > 20)
{
echo '<div class="errors">Длина вашего логина должна быть не менее 2 символов!</div>';
include_once'template/install/foot.php';
exit();
}
if(empty($reg_password))
echo '<div class="errors">Вы не ввели пороль!</div>';
elseif(mb_strlen($reg_password) < 5 or mb_strlen($reg_password) > 30)
{
echo '<div class="errors">Длина пароля должна быть не менее 5 символов!</div>';
include_once'template/install/foot.php';
exit();
}
if (preg_match("/[^1-9a-zA-Z\-\@\*\(\)\?\!\~\_\=\[\]]+/", $reg_login))
echo '<div class="errors">В логине которую вы ввели присутствуют недопустимые символы!</div>';
if (preg_match("/[^\da-zA-Z_]+/", $reg_password))
echo '<div class="errors">В пороле которую вы ввели присутствуют недопустимые символы!</div>';
$req = mysql_query("SELECT * FROM `users` WHERE `login`='" . mysql_real_escape_string($reg_login) . "';");
if (mysql_num_rows($req) != 0) {
echo '<div class="errors">Выбранный вами логин ('.$reg_login.') уже зарегистрировал другой пользователь</div>';
include_once'template/install/foot.php';
exit();
}
else
{
echo '<div class="actshcms">Логин ('.$reg_login.') свободен и доступен для регистрации.</div>';
}
if(empty($reg_login) or empty($reg_password))
{
exit("Введите все данные");
}
if(isset($reg_login) && isset($reg_password))
{
$pass = md5(md5($reg_password));
$ok_table = mysql_query("INSERT INTO users (login,password,datereg,ip,email,team) VALUES ('$reg_login','$pass','$time_date','$vi_shcms','$email','$team')");
if($ok_table == true)
{
echo '<hr/><div class="mysql_yes">Администратор успешно создан</div>';
echo '<form action="?act=admin_pass" method="post"><input type="submit" value="Дальше"></form>';
include_once'template/install/foot.php';
exit();
}
else
{
echo 'Ошибка регистрации администратора';
}
}
}
echo $novstyl_shcms['register'];
echo '<form action="?act=admin_user&'.$conservation.'" method="post">';
echo 'Логин:* <br/><input type="text" name="login" maxlength="20" value="'.$reg_login.'"><br/>';
echo 'Пороль: *<br/><input type="password" maxlength="30" name="password" value="'.$reg_password.'"><br/>';
echo 'Эл.почта: <br/><input type="text" name="email" maxlength="30" ><br/>';
echo '<input type="hidden" name="team" value="6"><br/>';
if (mysql_num_rows($req) != 0)
{
echo '<input type="submit" value="Смена логина">';
}
else
{
echo '<input type="submit" name="submit" value="Создать администратора"">';
}
echo '</form>';
include_once'template/install/foot.php';
break;
case'admin_pass':
$shcmsengine['title'] = $install['ok_ok']['title'];
include_once'template/install/head.php';
include_once'function.php';
if($_POST['submit_admin'])
{$submit_admin = $_POST['submit_admin'];}
if($submit_admin)
{
if($_POST['login_admin'])
{$login_admin = $_POST['login_admin'];}
if($_POST['pass_admin'])
{$pass_admin = $_POST['pass_admin'];}
if(empty($login_admin))
{echo 'Вы не ввели логин';exit();}
if(empty($pass_admin))
{echo 'Вы не ввели пороль';exit();}
if($login_admin && $pass_admin)
{
$mysql_w = mysql_query("INSERT INTO admin_block (user_id,login,password) VALUES ('1','$login_admin','$pass_admin')");
if($mysql_w == true)
{
echo '<div class="mysql_yes">Логин и пороля для администратора созданы</div>';
echo '<form action="?act=ok_ok" method="post"><input type="submit" value="Дальше"></form>';
include_once'template/install/foot.php';
exit();
}
else
{
echo '<div class="mysql_no">Логин и пороля для администратора не созданы</div>';
}
}
}
echo '<form action="?act=admin_pass" method="post">';
echo 'Логин: <br/><input type="text" name="login_admin" maxlength="30" ><br/>';
echo 'Пороль: <br/><input type="text" name="pass_admin" maxlength="30" ><br/>';
echo '<input type="submit" name="submit_admin" value="Создать пороль"">';
echo '</form>';
include_once'template/install/foot.php';
break;
case'ok_ok':
$shcmsengine['title'] = $install['ok_ok']['title'];
include_once'template/install/head.php';
include_once'function.php';
echo '<td style="padding:2px;">
<br>
Поздравляем Вас, SHCMS Engine был успешно установлен.
<br>
<br>
<font color="red">
Внимание: при установки скрипта создается структура базы данных, создается аккаунт администратора, а также прописываются основные настройки системы, поэтому после успешной установки удалите файл
<b>installation.php</b>
во избежание повторной установки скрипта!
</font>
<br>
<br>
C Уважением: Shamsik
<br>
<br>
</td>';
echo '<div class="posts"><a href="?act=del_install">Удалить installation.php</a></div> ';
include_once'template/install/foot.php';
break;
case'del_install':
$shcmsengine['title'] = $install['del_install']['title'];
include_once'template/install/head.php';
include_once'function.php';
echo '<div class="posts"><b>Вы можете удалить файл installation.php</b></div>';
echo '<div class="posts"><a href="?act=del_install&inst=ok">Удалить</a></div>';
if(isset($_GET['inst']) == 'ok')
{
unlink('installation.php');
echo '<div class="posts"><b>Файл installation.php успешно удален</b></div>';
header("Refresh: 1; url=index.php");
}
include_once'template/install/foot.php';
break;
}
?>