View file install/index.php

File size: 25.81Kb
<?php
/**
  * Установка скрипта SHCMS Engine
  * @author: Shamsik
  * @site: shcms.ru
  **/
  
define('SHCMS', true);
define('H', $_SERVER ['DOCUMENT_ROOT'].'/'); // корневая директория сайта
$act = isset ($_GET['act']) ? trim($_GET['act']) : '';
switch ($act)
{
case '':
include_once 'system.php';
$shcmsengine['title'] = 'Добро пожаловать в систему инсталяции!';
include_once H.'install/templates/install/head.php';

echo '<td style="padding:2px;">
Добро пожаловать в мастер установки движка <b>SHCMS Engine.</b>Данных раздел поможет вам установить скрипт все за несколько минут.<br/><br/>
Прежде чем начать установку убедитесь, что все файлы дистрибутива загружены на сервер, а также выставлены необходимые права доступа для папок и файлов.
<br/><br/><font color="red">Внимание!!!.  В данном разделе создается структура базы данных, создает профиль администратора, поэтому после успешно установки 
движка обязательно удаляйте папку <strong>/install/</strong>
<b></b> чтобы избежать повторной установки!<br/><br/>
</font>
</td>';
echo '<form method="post" action="?act=li">';
echo '<input type="submit" vlaue="Продолжить установку">';
echo '</form>';
include_once H.'install/templates/install/foot.php';
break;
case'li':
$shcmsengine['title'] = 'SHCMS Engine - Лицензионное соглашение';
include_once H.'install/templates/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 H.'install/templates/install/foot.php';

break;


case'prov_php':
$shcmsengine['title'] = 'SHCMS Engine - Проверка компонентов PHP';
include_once H.'install/templates/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 H.'install/templates/install/foot.php';
break;
case'zap':
$shcmsengine['title'] = 'SHCMS Engine - Проверка файлов папок на запись';
include_once H.'install/templates/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\">&nbsp;Папка
<td width=\"100\" height=\"25\">&nbsp;Права
<td width=\"100\" height=\"25\">&nbsp;Статус</tr><tr><td colspan=3><div class=\"hr_line\"></div><hr/></td></tr>";


$important_files = array(
'../system/tmp/',
'../system/inc/',
'../template/designs/',
'../download/files_obmen/',
'../download/screen/',
'../download/icons/',
'../forum/icon/icon_cat/',
'../forum/icon/icon_razd/',
'../avatar/files/',
'../photo/files/',
'../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\">&nbsp;$file</td>
         <td>&nbsp; $chmod_value</td>
         <td>&nbsp; $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 H.'install/templates/install/foot.php';
break;

case 'mysql_system':
$shcmsengine['title'] =  'Введите параметры для доступа к mySQL';
include_once H.'install/templates/install/head.php';


       if($_POST['submit'])
       {

	   
	   
        $dbhost_shcms = trim($_POST['host']);
		$dbname_shcms = trim($_POST['name']);
        $dbuser_shcms = trim($_POST['user']);
        $dbpass_shcms = trim($_POST['pass']);
		
		if(empty($dbhost_shcms))
		{
		echo '<div class="errors">Укажите MYSQL Сервер базы данных</div>';
		include_once H.'install/templates/install/foot.php';
		exit();
		}

		

if(!mysql_connect($dbhost_shcms, $dbuser_shcms,$dbpass_shcms))
{die("Невозможно подключиться к серверу ".$dbhost_shcms."");
include_once H.'install/templates/install/foot.php';
exit();}

if(!mysql_select_db($dbname_shcms))
{die("Неправильно название базы  ".$dbname_shcms."");
include_once H.'install/templates/install/foot.php';
exit();}

if($dbname_shcms && $dbhost_shcms == 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", "$dbhost_shcms"); 
define ("DBNAME", "$dbname_shcms");
define ("DBUSER", "$dbuser_shcms");
define ("DBPASS", "$dbpass_shcms");  
?>
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
		{
        echo '<form action="?act=mysql_system" method="post">';
        echo '<p><b>MYSQL сервер:</b><br /><input type="text" name="host" value="localhost"/></p>';
        echo '<p><b>База данных:</b><br /><input type="text" name="name" value="shcms"/></p>';
        echo '<p><b>Имя пользователя:</b><br /><input type="text" name="user" value="root"/></p>';
        echo '<p><b>MySQL пароль:</b><br /><input type="text" name="pass"/></p>';
        echo '<hr /><input type="submit" name="submit" value="Дальше"/></form>';
		
		echo '<br/><small> * MYSQL пороль нужно вводить обязательно для безопастности вашего сайта.</small>';
		echo '<br/><small> * MYSQL сервер на 99% используется Localhost.</small>';
        }
if(isset($syse))

{
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]");  
$set[mysql_pass]
$set[mysql_user]
$set[mysql_db_name]
$set[mysql_host]
?>
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);
}
include_once H.'install/templates/install/foot.php';
break;


case'droup':
$shcmsengine['title'] =  'SHCMS Engine - Удаление существующих таблиц';
include_once H.'install/templates/install/head.php';
include_once H.'install/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 H.'install/templates/install/foot.php';
break;


case'mysql_system_ok':
$shcmsengine['title'] =  'SHCMS Engine - Установка таблиц';
include_once H.'install/templates/install/head.php';
include_once H.'install/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);
        $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 '<div class="mysql_yes"><span class="green">OK</span> - данные установлены</div>';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 H.'install/templates/install/foot.php';
break;


case'admin_user':
$shcmsengine['title'] = 'SHCMS Engine - Создание администратора';
include_once H.'install/templates/install/head.php';
include_once H.'install/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 H.'install/templates/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 H.'install/templates/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 H.'install/templates/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()."','$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 H.'install/templates/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 H.'install/templates/install/foot.php';
break;
case'admin_pass':
$shcmsengine['title'] = 'SHCMS Engine - Установка SHCMS Engine закончено';
include_once H.'install/templates/install/head.php';
include_once H.'install/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 H.'install/templates/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 H.'install/templates/install/foot.php';
break;
case'ok_ok':
$shcmsengine['title'] = 'SHCMS Engine - Удаление файла installation.php';
include_once H.'install/templates/install/head.php';
include_once H.'install/function.php';

echo '<td style="padding:2px;">
  <br>
  Поздравляем Вас, SHCMS Engine был успешно установлен. 
  <br>
  <br>
  <font color="red">
    Внимание: при установки скрипта создается структура базы данных, создается аккаунт администратора, 
	а также прописываются основные настройки системы, поэтому после успешной установки удалите папку /install/
    <b></b>
     во избежание повторной установки скрипта!
  </font>
  <br>
  <br>
 
  
  
C Уважением: Shamsik
  <br>
  <br>
</td>';


echo '<div class="posts"><a href="../">На главную</a></div> ';
include_once H.'install/templates/install/foot.php';
break;
}
?>