Вход Регистрация
Файл: install.php
Строк: 348
<?php
define
('CMS',TRUE);

if ( @
file_exists('core/data/config.ini') ) {

    die(
'Ошибка! Скрипт уже установлен!');
}

if ( !
file_exists('core/data/tables.php') ) {

    die(
'Ошибка! Таблицы не найдены!');
}

# Локаль
@setlocale (LC_ALL'ru_RU.UTF8');
# Временная зона
date_default_timezone_set('Europe/Moscow');
# Отключаем ошибки
error_reporting(0);

require( 
'core/classes/ini.class.php' );

$config ini::read'core/data/config_tmp.ini' );

$config['db_host']    = !empty($_POST['db_host'])    ? $_POST['db_host']  : 'localhost';
$config['db_user']    = !empty($_POST['db_user'])    ? $_POST['db_user']    : '';
$config['db_pass']    = !empty($_POST['db_pass'])    ? $_POST['db_pass']    : '';
$config['db_name']    = !empty($_POST['db_name'])    ? $_POST['db_name']    : '';
$config['db_prefix']  = !empty($_POST['db_prefix'])  ? $_POST['db_prefix']  : 'cms_';
$config['db_collate'] = !empty($_POST['db_collate']) ? $_POST['db_collate'] : 'utf8';

$login      = !empty($_POST['login'])      ? $_POST['login']  : '';
$email      = !empty($_POST['email'])      ? $_POST['email']  : 'admin@' $_SERVER['HTTP_HOST'];
$passwd     = !empty($_POST['passwd'])     ? $_POST['passwd'] : '';
$link       false;
$p_error_msg $login_error_msg $email_error_msg '';
$l_alert $e_alert $p_alert $db_alert '';

$header = <<<HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Установка Соцеальной Сети</title>

<link href="/favicon.ico" rel="shortcut icon" />
<script type="text/javascript">
<!--
function ManualChangeStatus(checked) {
    if (checked == false) {
        document.getElementById('db_server').disabled = false;
        document.getElementById('db_name').disabled = false;
        document.getElementById('db_user').disabled = false;
        document.getElementById('db_pass').disabled = false;
        document.getElementById('db_prefix').disabled = false;
        document.getElementById('next').value = 'Продолжить';
    } else {
        document.getElementById('db_server').disabled = true;
        document.getElementById('db_name').disabled = true;
        document.getElementById('db_user').disabled = true;
        document.getElementById('db_pass').disabled = true;
        document.getElementById('db_prefix').disabled = true;
        document.getElementById('next').value = 'Получить дамп БД';
    }
}
// -->
</script>
<style type="text/css">
html {background:transparent;}
body {font-family:Arial, Helvetica, "DejaVu Sans", sans-serif;font-size:12px;max-width:1280px;min-width:800px;margin: 0 auto;background:transparent;}

h1 {padding-left:10px;font-weight:normal;font-size:2.667em;margin-bottom:15px;} 
h2 {font-size:2em;font-weight:normal;margin:30px 0 15px;}
h3 {font-size:1.5em;font-weight:normal;margin:15px 0 10px;}

a {color:#000;}
a:hover {text-decoration:none;}
a.inpage {text-decoration:none;border-bottom:1px dashed;}
a.inpage:hover {border-bottom:0px none;}
a.inpage:focus {outline:1px dotted #777;}

p {font-size:1.167em;line-height:1.4em;margin-bottom:5px;}
h4 {font-size:1.167em;line-height:1.4em;margin-bottom:10px;font-weight:normal;}

label {font-size:14px;color:#000;}
label.block {display:block;margin-bottom:5px;}
small.hint {color:#acacac;display:block;margin-top:4px;font-size:12px;}
p small.hint, label small.hint {margin:0;display:inline;}

#wrapper {position: relative;margin:10px 25px 10px 25px;//height:0;}
#header {position:relative;z-index:50;}
#content {margin:20px 10px 0 10px;clear:both;}
#footer {clear:both;height:11px;}

table.form {margin-bottom:20px;}
.form td, .form th {padding:3px 5px 3px 0;vertical-align:top;}
.form th.section {background:#F1F2F2;text-align:left;font-weight:normal;padding:10px 5px;font-size:1.167em;}
.form .required {display:inline-block;vertical-align:baseline;width:.5em;position:relative;left:-.5em;margin-right:-.5em;color:#f3152b;}

div.notable {background:#F1F2F2;width:100%;padding:10px 10px 20px 10px;position:relative;left:-10px;z-index:0;}
div.notable .wrap {width:80%;margin:0 auto;}
div.notable .wrap-center {text-align:center;}
div.notable .wrap-center .wrap {display:inline-block;width:auto;text-align:left;}

.notable p {margin-bottom:10px;}
.notable .description {color:#666;}
.notable .section {padding-bottom:15px;position:relative;}
.notable .short-section {width:80%;}
.notable h1 {font-size:2em;padding:0;margin-top:20px;}
.notable h2 {color:#666;margin:0 auto 10px;font-size:1.333em;}
.notable h1 label {font-size:1em;color:#000;}
.notable .section textarea {width:99%;}
.notable .outer-hint {width:200px;position:absolute;right:-220px;top:0;}
</style>

</head>
<body>
<div id="wrapper">
  <div id="header">
    <h1>Установка Соц. Сети</h1>
  </div>
  <div id="main">
    <div id="content">

      <!-- content -->

HTML;

if (!
function_exists('databaseErrorHandler')) {
function 
databaseErrorHandler$message$info )
{
    if ( !
error_reporting( ) )
    {
        return;
    }
    echo 
'SQL Error: ';
    echo 
$message;
    echo 
'<br /><pre>';
    
print_r$info );
    echo 
'</pre>';
    exit( );
}}

if (!empty(
$_POST['install'])) {

    
$error false;

    if ( 
$login == '' || strlen($login) < || strlen($login) > 30 ) {

        
$l_alert "border:solid 1px #FF0000;color:Red;";
        
$error true;
        
$login_error_msg 'Ошибка! Слишком короткий или длинный логин (min 3, max 32)!';
    }
    else if ( 
$email == '' ) {

        
$e_alert "border:solid 1px #FF0000;color:Red;";
        
$error true;
        
$email_error_msg 'Ошибка! Вы не ввели E-Mail адрес!';
    }
    else if ( 
$passwd == '' || strlen($passwd) < || strlen($passwd) > 30 ) {

        
$p_alert "border:solid 1px #FF0000;color:Red;";
        
$error true;
        
$p_error_msg 'Ошибка! Слишком короткий или длинный пароль (min 3, max 32)!';
    }
    else if ( empty(
$_POST['manual']) && ($config['db_user'] == '' || $config['db_pass'] == '' || $config['db_name'] == '') ) {

        
$db_alert "border:solid 1px #FF0000;color:Red;";
        
$error true;
    }

    if ( !
$error ) {

        include(
'core/DbSimple/Generic.php');

        include(
'core/data/tables.php');

        if (!empty(
$_POST['manual'])) {

            
$dump '';
            
$dump_data date'd_m_Y' );
            
$dump .= create_table$login$email$passwd);
            
$dump str_replace'?_'$config['db_prefix'], $dump );
            
header"Cache-Control: "private"n" );
            
header"Content-type: text/plain" );
            
header"Content-Disposition: attachment; filename="cms_dump_".$dump_data.".sql"" );
            echo 
$dump;
            exit( );
        }
        else {


            if ( 
$link mysql_connect($config['db_host'], $config['db_user'], $config['db_pass']) ) {

                if ( 
mysql_select_db($config['db_name'],$link) ) {

                    
$db = @DbSimple_Generic::connect'mysql://'.$config['db_user'].':'.$config['db_pass'].'@'.$config['db_host'].'/'.$config['db_name'] );
                    
$db->setErrorHandler('databaseErrorHandler');
                    
$db->setIdentPrefix($config['db_prefix']);
                    
$db->query"SET NAMES " $config['db_collate'] );
                    
$db->query"SET character_set_client = " $config['db_collate'] );
                    
$db->query"SET character_set_connection = " $config['db_collate'] );
                    
$db->query"SET character_set_database = " $config['db_collate'] );
                    
$db->query"SET character_set_results = " $config['db_collate'] );
                    
$db->query"SET character_set_server = " $config['db_collate'] );

                    
create_table$login$email$passwd );

                    echo 
$header;

                    
$config['key']      = mt_rand(111111111,999999999);
                    
$config['email']    = $email;
                    
$config['login']    = $login;
                    
$config['nickname'] = $login;
                    
$config['site_url'] = 'http://' $_SERVER['HTTP_HOST'];

                    
ini::save'core/data/config.ini'$config );

                    
$array = array();
                    
$globs glob($_SERVER['DOCUMENT_ROOT'] . '/core/cache/*.php');
                    foreach(
$globs as $file) {

                        
unlink($file);
                    }

                    echo <<<HTML

    <big class="num center">Установка завершена</big>
    <p class="center">
        <span style="color:red;">Не забудте удалить файл install.php</span><br />
        <a href="/">Начать работу</a>
    </p>
      <!-- /content -->
    </div>
  </div>
  <div id="footer"></div>
</div>
</body>
</html>
HTML;
die();
                }
                else {

                    
$db_alert "border:solid 1px #FF0000;color:Red;";
                    
$error    TRUE;
                }
            }
            else {

                
$db_alert "border:solid 1px #FF0000;color:Red;";
                
$error    TRUE;
            }
        }
    }
}

echo 
$header;

?>
<form action="?" method="post">
<div class="notable">
<div class="wrap">
    <input name="install" type="hidden" value="1">
    <h3>Конфигурация</h3>
    <table class="form">
    <tr>
        <td><p>Адрес сайта:</p></td>
        <td><input name="http_host" type="text" value="http://<?=$_SERVER['HTTP_HOST']?>"></td>
    </tr>
    <tr>
        <td><label for="email">Логин администратора:</label></td>
        <td><input name="login" id="login" value="<?=$login?>" style="<?=$l_alert?>" type="text"><br /><?=$login_error_msg?></td>
    </tr>
    <tr>
        <td><label for="email">Email администратора:</label></td>
        <td><input name="email" id="email" value="<?=$email?>" style="<?=$e_alert?>" type="text"><br /><?=$email_error_msg?></td>
    </tr>
    <tr>
        <td><label for="passwd">Пароль:</label></td>
        <td><input id="passwd" name="passwd" value="<?=$passwd?>" style="<?=$p_alert?>" type="text"><br /><?=$p_error_msg?></td>
    </tr>
    <tr>
        <td><label for="manual">Ручная установка. Получить дамп БД.</label></td>
        <td><input onclick="ManualChangeStatus(this.checked)" name="manual" value="1" type="checkbox" id="manual" /><br /></td>
    </tr>
    </table>

    <p class="alert">
        <strong>Внимание!</strong>
        <br />
        Существующие таблицы будут удалены!
    </p>

    <table class="form">
    <tr>
        <td><label for="db_server">Адрес сервера БД:</label></td>
        <td><input id="db_server" name="db_host" value="<?=$config['db_host']?>" style="<?=$db_alert?>" type="text" /></td>
    </tr>
    <tr>
        <td><label for="db_user">Пользователь БД:</label></td>
        <td><input id="db_user" name="db_user" value="<?=$config['db_user']?>" type="text" style="<?=$db_alert?>" /></td>
    </tr>
    <tr>
        <td><label for="db_pass">Пароль БД:</label></td>
        <td><input id="db_pass" name="db_pass" style="<?=$db_alert?>" type="password" /></td>
    </tr>
    <tr>
        <td><label for="db_name">Имя БД:</label></td>
        <td><input id="db_name" name="db_name" value="<?=$config['db_name']?>" type="text" style="<?=$db_alert?>" /></td>
    </tr>
    <tr>
        <td><label for="db_prefix">Префикс таблиц:</label></td>
        <td><input id="db_prefix" name="db_prefix" value="<?=$config['db_prefix']?>" type="text" style="<?=$db_alert?>" />
        <small class="hint">Только латинские буквы!<br />Максимум 10 символов.</small></td>
    </tr>
    <tr>
        <td><label for="db_pass">Кодировка:</label></td>
        <td>
        <select name="db_collate">
            <option value="utf8">UTF-8</option>
        </select>
        </td>
    </tr>
    </table>
    <p class="center">
        <input id="next" type="submit" value="Продолжить &gt;&gt;&gt;" />
    </p>

</div>
</div>
</form>
      
      
      <!-- /content -->
    </div>
  </div>
  <div id="footer"></div>
</div>
</body>
</html>
Онлайн: 0
Реклама