View file INSTALL.php

File size: 4.01Kb
<?php
define('_IN_JOHNCMS', 1);

$headmod = 'lib';
$textl = 'Установка';
require_once ("../incfiles/core.php");
require_once ("../incfiles/head.php");

switch($act)
{
    default:
    echo '<p>Добро пожаловать в Lib_For_JohnCMS_By_Gnom.<br />Перед началом инсталляции, настоятельно рекомендуем ознакомиться с инструкцией, в файле <a href="./install.txt">install.txt</a>.</p>';
	echo '<p><a href="INSTALL.php?act=check">Начать установку</a></p>';
    break;
    case "check":
    // Проверка прав доступа к файлам и папкам
        function permissions($filez) {
            $filez = @decoct(@fileperms("./$filez")) % 1000;
            return $filez;
        }
        $cherr = "";
        $err = FALSE;

        // Проверка прав доступа к папкам
        $arr = array("file/", "file/mas/");
        foreach ($arr as $v)
        {
            if (permissions($v) < 777)
            {
                $cherr = $cherr . '<div class="gmenu"><span class="red">Ошибка!</span> - ' . $v . '<br /><span class="gray">Необходимо установить права доступа 777.</span></div>';
                $err = 1;
            } else
            {
                $cherr = $cherr . '<div class="gmenu"><span class="green">Oк</span> - ' . $v . '</div>';
            }
        }
        echo '<div class="menu"><div class="tmenu">Права доступа</div>';
        echo $cherr;
        if(!$err)
        {
            echo '<span class="green">Отлично!</span><br />Все настройки правильные.<p><a href="INSTALL.php?act=ok">Продолжить установку</a></p>';
        }
    break;
    case "ok":
    // Читаем 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 '<span class="green">Oк</span> - Таблицы созданы<br />';

            echo "Поздравляем! Установка закончена.<br />Не забудьте:<br /> Удалить файлы INSTALL.php и install.sql с сайта.";
            echo "<p><a href='./index.php'>Вход </a></p>";
        } else
        {
            // Если были ошибки, выводим их
            echo $error;
            echo '<br /><span class="red">Error!</span><br />При создании таблиц возникла ошибка.<br />Продолжение невозможно.';
        }
    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);
}
require_once ("../incfiles/end.php");
?>