Файл: install.php
Строк: 149
<?php
error_reporting(E_ALL & ~E_NOTICE);
echo '<!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" />
<link rel="stylesheet" type="text/css" href="themes/light/style.css">
<title>WBCAT v2.4.0</title></head>
<html><body>
<div class="menu">
<div class="head"><img src="images/logo.png" alt="logo"/></div>';
echo '<div class="zag2">WBCAT v2.4.0</div>';
switch($_GET['act']) {
case 'set' :
        ////////////////////////////////////////////////////////////
        // Создание таблиц в базе данных MySQL                    //
        ////////////////////////////////////////////////////////////
        echo '<div class="zag"><img src="images/green.png" alt="on"/> Установка каталога</div>';
        require_once ("inc/db.php");
$dbcnx = mysql_connect($db_host,$db_user,$db_pass);
if (!$dbcnx) {
    exit ("Сервер базы данных не доступен");
}
if (!mysql_select_db($db_name , $dbcnx)){
    exit ("База данных не доступна");
}   
        mysql_query("SET NAMES 'utf8'", $dbcnx);
         $sql = parse_sql('install.sql');
                if (!empty($sql)) {
                    echo '<br /><div class="error"><img src="images/red.png" alt="off"/>Error!<br />При создании таблиц возникла ошибка.<br />Продолжение невозможно.</div>';
                    foreach ($sql as $val) echo $val . '<br />';
                    echo '</body></html>';
                    exit;
                }
            echo '<div class="success"><img src="images/green.png" alt="on"/> - Таблицы созданы</div>';
            
            // Профиль админа
            ############################
                $admin = mysql_real_escape_string($_POST['admin']);
                $pass = mysql_real_escape_string($_POST['pass']);
                $email = mysql_real_escape_string($_POST['email']);
                $array = array('admin' => $admin,'pass' => $pass,'email' => $email);
                $ser = serialize($array);
                mysql_query("UPDATE `modules` SET `set` = '$ser' WHERE `name` = 'logon'") or die('Ошибка настройки администратора');
            ############################
            
            // Общие настройки
            ############################
                  $url = mysql_real_escape_string($_POST['home']);
                $reg = 'mod';
                $on_page = 5;
                $rate = 1;
                $review = 1;
                $search = 1;
                $news = 1;
                $captcha = 1;
                $correct_url = 1;
                                $rate_log_status = 1;
                                $auth_log_status = 1;
                $array = array('url' => $url,'reg' => $reg,'on_page' => $on_page, 'rate' => $rate,'review' => $review,'search' => $search,'news' => $news,'captcha' => $captcha,
                                    'correct_url' => $correct_url,'rate_log_status' => $rate_log_status,'auth_log_status' => $auth_log_status);
                $ser = serialize($array);
                mysql_query("UPDATE `modules` SET `set` = '$ser' WHERE `name` = 'system'")or die('Ошибка настройки "Общих настроек"');
            ############################
            
            echo '<div class="success"><img src="images/green.png" alt="on"/> - Профиль администратора НАСТРОЕН<br/>';
            echo '<img src="images/green.png" alt="on"/> - Общие настройки системы НАСТРОЕНЫ<br/>';
            echo '<img src="images/green.png" alt="on"/> Установка каталога <b>WBCAT (v2.0.0RC)</b> завершена</div>';
            echo '<div class="error"><b>УДАЛИТЕ ФАЙЛ install.php !</b></div>';
            echo '<div class="func"><a href="logon.php">Вход в админ-панель</a></div>';
break;
case 'admin' :
        ////////////////////////////////////////////////////////////
        // Настройки сайта и Администратора                       //
        ////////////////////////////////////////////////////////////
        $dblocation = trim($_POST['host']);
        $duser = trim($_POST['user']);
        $dpasswd = trim($_POST['pass']);
        $dname = trim($_POST['name']);
        
        $error = false;
        $dbcnx = mysql_connect($dblocation,$duser,$dpasswd);
        if (!$dbcnx) {
            $error = true;
        }
        if (!mysql_select_db($dname , $dbcnx)){
            $error = true;
        }
        
        if ($error) {
            echo '<div class="error"><img src="images/red.png" alt="off"/> Ошибка соединения с базой данных . Проверьте правильность настроек (название базы,пароль и т.д)</div>';
            echo '<div class="main"><a href="install.php">Повторить</a></div>';
            echo "<div class='foot'>(c) wapweb</div>";
            echo '</div>';
            echo '</body></html>';
            exit;
        }
        
        if (decoct(fileperms('inc/')) % 1000  == 777 && decoct(fileperms('images/')) % 1000  == 777 && decoct(fileperms('images/captcha/')) % 1000  == 777)
        {
        $text = "<?phprn". "$" . "db_host="$dblocation";rn" . "$" . "db_user="$duser";rn" . "$" . "db_pass="$dpasswd";rn" . "$" . "db_name="$dname";rn"
        . "rn?>";
        $fp = @ fopen("inc/db.php", "w");
        fputs($fp, $text);
        fclose($fp);
        }
        else {
        echo '<div class="error"><img src="images/red.png" alt="off"/> Установите права доступа <b>777</b> на папку <b>inc/</b><br/>
                                    <img src="images/red.png" alt="off"/> Установите права доступа <b>777</b> на папку <b>images/</b><br/>
                                    <img src="images/red.png" alt="off"/> Установите права доступа <b>777</b> на папку <b>images/captcha</b></div>';
        echo '<div class="main"><a href="install.php">Повторить</a></div>';
        echo "<div class='foot'>(c) wapweb</div>";
        echo '</div>';
        echo '</body></html>';        
        exit;
        }
        echo '<div class="zag">Профиль администратора</div>';
        echo '<div class="title"><form method="post" action="install.php?act=set">';
        echo '<b>Логин</b><br/><input name="admin" maxlength="50" value="Admin" /><br />';
        echo '<b>Пароль</b><br/><input name="pass" maxlength="50" value="password" /><br />';
        echo '<b>E-mail</b><br/><input name="email" maxlength="50" value="example@mail.com" /><br />';
        echo '<b>Адрес где установлен скрипт</b> без слэша в конце<br/><input name="home" maxlength="100" value="http://' . $_SERVER["SERVER_NAME"] . '" /><br/>';
        echo '<input value="Продолжить" type="submit" class="button" /></form></div>';
break;
default :
        ////////////////////////////////////////////////////////////
        // Настройка соединения с MySQL                           //
        ////////////////////////////////////////////////////////////
        echo '<div class="success">Установка каталога WBCAT<br/> <b>#1.</b> Ниже вы должны ввести настройки соединения с базой данных MySQL.<br />Если вы не уверенны в них, свяжитесь с вашим хостинг-провайдером.</div>';
        echo '<div class="title"><form action="install.php?act=admin" method="post"><b>Адрес сервера</b><br /><input type="text" name="host" value="localhost"/><br/>';
        echo '<b>Название базы</b><br /><input type="text" name="name" value="catalogs"/><br/>';
        echo '<b>Имя пользователя</b><br /><input type="text" name="user" value="root"/><br/>';
        echo '<b>MySQL пароль</b><br /><input type="text" name="pass"/><br/>';
        echo '<input type="submit" class="button" value="Продолжить"/></form></div>';
        echo '<div class="main"><a href="index.html">На главную</a></div>';
        break;
}
function parse_sql($file = false)
    {
        $errors = array();
        if ($file && file_exists($file)) {
            $query = fread(fopen($file, 'r'), filesize($file));
            $query = trim($query);
            $query = preg_replace("/n#[^n]*/", '', "n" . $query);
            $buffer = array();
            $ret = array();
            $in_string = false;
            for ($i = 0; $i < strlen($query) - 1; $i++) {
                if ($query[$i] == ";" && !$in_string) {
                    $ret[] = substr($query, 0, $i);
                    $query = substr($query, $i + 1);
                    $i = 0;
                }
                if ($in_string && ($query[$i] == $in_string) && $buffer[1] != "\") {
                    $in_string = false;
                } elseif (!$in_string && ($query[$i] == '"' || $query[$i] == "'") && (!isset($buffer[0]) || $buffer[0] != "\")) {
                    $in_string = $query[$i];
                }
                if (isset($buffer[1])) {
                    $buffer[0] = $buffer[1];
                }
                $buffer[1] = $query[$i];
            }
            if (!empty($query)) {
                $ret[] = $query;
            }
            for ($i = 0; $i < count($ret); $i++) {
                $ret[$i] = trim($ret[$i]);
                if (!empty($ret[$i]) && $ret[$i] != "#") {
                    if (!mysql_query($ret[$i])) {
                        $errors[] = mysql_error();
                    }
                }
            }
        } else {
            $errors[] = 'Fatal error!';
        }
        return $errors;
    }
echo "<div class='foot'>(c) wapweb</div>";
echo '</div>';
echo '</body></html>';
?>