Просмотр файла update/installation.php

Размер файла: 25.29Kb
<?
/*
=============================================
Движок: SHCMS Engine
=============================================
Название файла: Установка движка
=============================================
Official website: http://shcms.ru
=============================================
*/

define('SHCMS', true);
$act = isset ($_GET['act']) ? trim($_GET['act']) : '';
$install = parse_ini_file('install.ini',true);

$h_ua = str_replace('windows ce', '', strtolower($_SERVER['HTTP_USER_AGENT'])); 
if ( 
 !$h_ua || 
 strpos($h_ua, 'windows') !== false || 
 strpos($h_ua, 'linux') !== false || 
 strpos($h_ua, 'bsd') !== false || 
 strpos($h_ua, 'x11') !== false || 
 strpos($h_ua, 'unix') !== false || 
 strpos($h_ua, 'macintosh') !== false || 
 strpos($h_ua, 'macos') !== false) 
{ 
$brodilka = "web"; 
} else { 
$brodilka = "wap"; 
}


switch($act):
case'':
$shcmsengine['title'] = $install['install_index']['title'];
include_once'template/shcms/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/shcms/foot.php';
break;

case'li':
$shcmsengine['title'] = $install['install_license']['title'];
include_once'template/shcms/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/shcms/foot.php';

break;

case'prov_php':
$shcmsengine['title'] = $install['install_prov_php']['title'];
include_once'template/shcms/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/shcms/foot.php';
break;
case'zap':
$shcmsengine['title'] = $install['install_prov_zap']['title'];
include_once'template/shcms/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/',
'system/inc/',
'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\">&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'template/shcms/foot.php';
break;

case'mysql_system':
$shcmsengine['title'] = $install['install_mysql_system']['title'];
include_once'template/shcms/head.php';

if (isset($_SESSION['mysql_ok']) && $_SESSION['mysql_ok']==true)
{}
elseif (isset($_POST['host']) && isset($_POST['user']) && isset($_POST['pass']) && isset($_POST['db']))
{
if(!($db=mysql_connect($_POST['host'], $_POST['user'],$_POST['pass'])))
{
echo'Невозможно подключиться к серверу '.$_POST['host'];
}
elseif(!@mysql_select_db($_POST['db'],$db))
{
echo'Проверьте название базы';
}
else
{
$set['dbname']=$_SESSION['db']=$_POST['db'];
$set['dbhost']=$_SESSION['host']=$_POST['host'];
$set['dbuser']=$_SESSION['user']=$_POST['user'];
$set['dbpass']=$_SESSION['pass']=$_POST['pass'];
mysql_query('set charset utf8'); 
mysql_query('SET names utf8'); 
$db_tables=array();
$tab=mysql_query('SHOW TABLES FROM '.$_SESSION['db']);
if (isset($db_not_null))
{


echo'В выбранной базе данных ('.$_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[dbhost]"); 
define ("DBNAME", "$set[dbname]");
define ("DBUSER", "$set[dbuser]");
define ("DBPASS", "$set[dbpass]");  
?>
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);

if (isset($msg))
{
foreach ($msg as $key=>$value) {
echo "<div class='msg'>$value</div>\n";
}
}
if (isset($err))
{
foreach ($err as $key=>$value) {
echo "<div class='err'>$value</div>\n";
}
}
}
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 "Сервер MySQL:<br />\n";
echo "<input name=\"host\" value=\"localhost\" type=\"text\" /><br />\n";
echo "Имя базы данных:<br />\n";
echo "<input name=\"user\" value=\"$set[dbuser]\" type=\"text\" /><br />\n";
echo "Имя пользователя:<br />\n";
echo "<input name=\"db\" value=\"$set[dbname]\" type=\"text\" /><br />\n";
echo "Пароль:<br />\n";
echo "<input name=\"pass\" value=\"$set[dbpass]\" type=\"text\" /><br />\n";
echo "<input value=\"Далее\" type=\"submit\" />\n";
echo "</form>\n";
}
include_once'template/shcms/foot.php';
break;

case'droup':
$shcmsengine['title'] = $install['install_mysql_droup']['title'];
include_once'template/shcms/head.php';
include_once'system/inc/basic_settings.php';
if(isset($_POST['submit']))
{
if(mysql_query("SELECT * FROM `admin_block`, `download_dir`, `download_file`, `down_comment`, `forum_cat`, `forum_mess`, `forum_messages`, `forum_themes`, `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_messages`, `forum_themes`, `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>'; 
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_query("SELECT * FROM `admin_block`, `download_dir`, `download_file`, `down_comment`, `forum_cat`, `forum_mess`, `forum_messages`, `forum_themes`, `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&'.$conservation.'" method="post">';
echo '<input type="submit" name="submit" value="Удалить существующие таблицы"></form>';
}
}
include_once'template/shcms/foot.php';
break;
case'mysql_system_ok':
$shcmsengine['title'] = $install['install_mysql_system_ok']['title'];
include_once'template/shcms/head.php';
include_once'system/inc/basic_settings.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/shcms/foot.php';
break;

case'admin_user':
$shcmsengine['title'] = $install['install_admin']['title'];
include_once'template/shcms/head.php';
include_once'system/inc/basic_settings.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/shcms/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/shcms/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/shcms/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/shcms/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/shcms/foot.php';
break;
case'admin_pass':
$shcmsengine['title'] = $install['ok_ok']['title'];
include_once'template/shcms/head.php';
include_once'system/inc/basic_settings.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/shcms/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/shcms/foot.php';
break;
case'ok_ok':
$shcmsengine['title'] = $install['ok_ok']['title'];
include_once'template/shcms/head.php';
include_once'system/inc/basic_settings.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 '<a href="/index.php">Перейти на главную</a><hr/>';
echo '<a href="/index.php">Перейти на администраторскую часть</a>';
include_once'template/shcms/foot.php';
break;

case'del_install':
$shcmsengine['title'] = $install['del_install']['title'];
include_once'template/shcms/head.php';
include_once'system/inc/basic_settings.php';
echo 'Вы можете удалить файл installation.php';
if(isset($_GET['inst']) == 'ok')
{
unlink('installation.php');
echo 'Файл installation.php успешно удален';
header("Refresh: 1; url=?index.php");
}

break;

endswitch;
include_once'template/shcms/head.php';

?>