View file install.php

File size: 7.16Kb
<?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="style.css">
<title>Установка каталога</title></head>
<div class="head"><img src="" alt="logo"/></div>';
echo '<div class="zag">Установка каталога</div>';
switch($_GET['act']) {
case 'set' :
        ////////////////////////////////////////////////////////////
        // Создание таблиц в базе данных MySQL                    //
        ////////////////////////////////////////////////////////////
        echo '<div class="title"><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);
        $error = '';
        @ set_magic_quotes_runtime(0);
        // Читаем SQL файл и заносим его в базу данных
        $query = fread(fopen('install.sql', 'r'), filesize('install.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="title"><img src="images/green.png" alt="on"/> - Таблицы созданы</div>';

            // Принимаем данные из формы
            $log = trim($_POST['wnickadmina']);
            $par = trim($_POST['wpassadmina']);
            $hom = trim($_POST['whome']);

            // Настройка администратора и общих настроек
            mysql_query("insert into `set` set
			`admin`='" . mysql_real_escape_string($log) . "',
			`url`='" . mysql_real_escape_string($hom) . "',
			`pass`='" . mysql_real_escape_string($par) . "';") or die('Ошибка настройки администратора');
			
			// Настройки новостей
			            mysql_query("insert into `set_news` set
			`view`='1',
			`komm`='1',
			`smileys`='1',
			`antiflood`='30',
			`bbcode`='1';") or die('Ошибка настройки новостей');
            echo '<div class="title"><img src="images/green.png" alt="on"/> - администратор настроен</div>';
            echo '<div class="title"><img src="images/green.png" alt="on"/> Установка каталога <b>WBCAT</b> завершена</div>';
			echo '<div class="title"><b>УДАЛИТЕ ФАЙЛ install.php !</b></div>';
        }
        else {
            // Если были ошибки, выводим их
            echo $error;
            echo '<br /><img src="images/red.png" alt="off"/>Error!<br />При создании таблиц возникла ошибка.<br />Продолжение невозможно.';
        }
break;
case 'admin' :
        ////////////////////////////////////////////////////////////
        // Настройки сайта и Администратора                       //
        ////////////////////////////////////////////////////////////
        $dblocation = trim($_POST['host']);
        $duser = trim($_POST['user']);
        $dpasswd = trim($_POST['pass']);
        $dname = trim($_POST['name']);
		if (decoct(fileperms('inc/')) % 1000  == 777)
		{
        $text = "<?php\r\n". "$" . "db_host=\"$dblocation\";\r\n" . "$" . "db_user=\"$duser\";\r\n" . "$" . "db_pass=\"$dpasswd\";\r\n" . "$" . "db_name=\"$dname\";\r\n"
        . "\r\n?>";
        $fp = @ fopen("inc/db.php", "w");
        fputs($fp, $text);
        fclose($fp);
		}
		else {
		echo '<div class="title"><img src="images/red.png" alt="off"/> Установите права доступа <b>777</b> на папку <b>inc/</b></div>';
		echo '<div class="title"><a href="install.php">Повторить</a></div>';
		exit;
		}
        echo '<div class="title">Создаем Администратора системы</div>';
        echo '<div class="title"><form method="post" action="install.php?act=set">';
        echo '<b>Ваш ник</b><br/><input name="wnickadmina" maxlength="50" value="Admin" /><br />';
        echo '<b>Ваш пароль</b><br/><input name="wpassadmina" maxlength="50" value="password" /><br />';
        echo '<b>Адрес где установлен скрипт</b> без слэша в конце<br/><input name="whome" maxlength="100" value="http://' . $_SERVER["SERVER_NAME"] . '" /><br/>';
        echo '<input value="Продолжить" type="submit" class="button" /></form></div>';
break;
default :
        ////////////////////////////////////////////////////////////
        // Настройка соединения с MySQL                           //
        ////////////////////////////////////////////////////////////
        echo '<div class="title">Ниже вы должны ввести настройки соединения с базой данных 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>';
        break;

}
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);
}
echo "<div class='foot'>(c) wapweb</div>";
?>