Просмотр файла install.php

Размер файла: 10.63Kb
<?php
include('inc/db.php');
$mode = htmlspecialchars($_GET['mode']);
header('Content-Type: text/html; charset=utf-8');
echo'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="shortcut icon" href="/images/favicon.ico" />
<link rel="stylesheet" type="text/css" href="/style/default/style.css">
</head><body>
<div class="head"><img src="/style/default/logo.png" alt="logo"></div>';
echo '<div class="razdel">Мини - Установка</div>';
echo'<div class="menu">';
switch ($mode):
case '2':
		if (!empty($_POST['dbhost']) && !empty($_POST['dbport']) && !empty($_POST['dbname']) && !empty($_POST['dbuser'])) {
			$dbhost = htmlspecialchars(trim($_POST['dbhost']));
			$dbport = htmlspecialchars(trim($_POST['dbport']));
			$dbname = htmlspecialchars(trim($_POST['dbname']));
			$dbuser = htmlspecialchars(trim($_POST['dbuser']));
			$dbpass = htmlspecialchars(trim($_POST['dbpass']));
if(!mysql_connect($dbhost,$dbuser,$dbpass))
die('<b><span style="color:#ff0000">Ошибка! Невозможно соединиться с базой данных, проверьте правильность данных!</span></b><br /><br />');
elseif(!mysql_select_db($dbname))
die('Не удалось выбрать БД!');
mysql_query("SET NAMES 'utf8';");

				echo '<b><span style="color:#00cc00">Соединение с базой данных произведено успешно!</span></b><br /><br />';

				$dbconfig = "<?php
define ('DBHOST', '$dbhost');
define ('DBPORT', '$dbport');
define ('DBNAME', '$dbname');
define ('DBUSER', '$dbuser');
define ('DBPASS', '$dbpass');
?>";
				file_put_contents('inc/db.php', $dbconfig);
				@chmod('inc/db.php', 0664);
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[] = 'ERROR: SQL file';
        }
        return $errors;
    }
$error = parse_sql('TerrinCMS.sql');

foreach ($error as $val)
{
echo $val.'<br />';
}
if(!$error) echo 'Таблицы успешно загружены!';
				echo ' <b><a href="?mode=3">ПРОДОЛЖИТЬ УСТАНОВКУ</a></b><br /><br />';

} else {
echo '<b>Ошибка! Вы не ввели важные данные!</b><br /><br />';
} 

break;
case '3':
		echo '<div class="form">';
		echo '<form method="post" action="?mode=4">';
		echo 'Логин (max20):<br />';
		echo '<input name="login" maxlength="20" /><br />';
		echo 'Пароль(max20):<br />';
		echo '<input name="password" type="password" maxlength="20" /><br />';
		echo 'Повторите пароль:<br />';
		echo '<input name="password2" type="password" maxlength="20" /><br />';
		echo 'Адрес e-mail:<br />';
		echo '<input name="mail" maxlength="100" /><br />';
		echo '<input value="Пуск" type="submit" /></form></div><br />';

break;
	case '4':
	include('inc/db.php');
if(!mysql_connect(DBHOST,DBUSER,DBPASS))
die('Не удалось подключиться к серверу MySql!');
elseif(!mysql_select_db(DBNAME))
die('Не удалось выбрать БД!');
mysql_query("SET NAMES 'utf8';");
$users = mysql_query('SELECT * FROM users WHERE id = "1"');
$users = mysql_fetch_assoc($users);
		$login = htmlspecialchars($_POST['login']);
		$password = htmlspecialchars($_POST['password']);
		$password2 = htmlspecialchars($_POST['password2']);
		$mail = strtolower(htmlspecialchars($_POST['mail']));
		if (strlen($login) <= 20 && strlen($password) <= 20) {
			if (strlen($login) >= 3 && strlen($password) >= 3) {
				if (preg_match('|^[a-z0-9\-]+$|i', $login)) {
					if (preg_match('|^[a-z0-9\-]+$|i', $password)) {
						if ($password == $password2) {
							if (preg_match('#^([a-z0-9_\-\.])+\@([a-z0-9_\-\.])+(\.([a-z0-9])+)+$#', $mail)) {
if(empty($users['id'])){
							
// -------------- Профиль -------------------//
$kod_pass = sha1(md5(md5(sha1($password))));
mysql_query("INSERT INTO `users`(`login`, `pass`, `mail`, `status`,`money`,`activ`,`level`,`exp`,`act_mail`) VALUES ('$login','$kod_pass','$mail','101','500','0','0','0','on')");
mysql_query('INSERT INTO dating(login,status)  VALUES("'.$login.'","off")');
// -------------- Статистика ---------------//
mysql_query('INSERT INTO statistic(id,hits,host,hits_today,host_today)  VALUES(1,0,0,0,0)');
// -------------- CRON --------------------//
@chmod('inc/last_cron.txt', 0777);
$d = date("d"); $m = date("m");
  $file = fopen ("inc/last_cron.txt","w+");
  $str = "$d||$m";
  if ( !$file ){ echo("Ошибка открытия файла");} else {
  fputs ( $file, $str); }
  fclose ($file);
// -------------- Новость ----------------//
$themnews = 'Добро пожаловать на страницу движка TerrinCMS';
$textnews = 'Добро пожаловать на страницу движка TerrinCMS<br />TerrinCMS - функционально законченная система управления контентом с открытым кодом написанная на PHP. Она использует базу данных MySQL для хранения содержимого вашего сайта. TerrinCMS является гибкой, мощной и интуитивно понятной системой с минимальными требованиями к хостингу, высоким уровнем защиты и является превосходным выбором для построения сайта любой степени сложности<br />Главной особенностью TerrinCMS является низкая нагрузка на системные ресурсы, даже при очень большой аудитории сайта нагрузка не сервер будет минимальной, и вы не будете испытывать каких-либо проблем с отображением информации.<br />';
$data = date("d.m.Y");
mysql_query('INSERT INTO `news`(`title`, `news`, `data`, `login`) VALUES ("'.$themnews.'","'.$textnews.'","'.$data.'","'.$login.'")');

echo 'Поздравляем Вас, TerrinCMS был успешно установлен на Ваш сервер. Вы можете перейти на главную страницу вашего сайта и посмотреть возможности скрипта<br />Приятной Вам работы<br /><br />';
unlink('install.php');
unlink('TerrinCMS.sql');
                                    } else {
										echo '<b>Ошибка! Профиль администратора уже создан!<br />';
										echo 'Очистите таблицу users перед повторной инсталляцией!</b><br /><br />';
									} 
							} else {
								echo '<b>Ошибка! Неправильный адрес e-mail, необходим формат [email protected]</b><br /><br />';
							} 
						} else {
							echo '<b>Ошибка! Веденные пароли отличаются друг от друга</b><br /><br />';
						} 
					} else {
						echo '<b>Ошибка! Недопустимые символы в пароле. Разрешены только знаки латинского алфавита и цифры!</b><br /><br />';
					} 
				} else {
					echo '<b>Ошибка! Недопустимые символы в логине. Разрешены только знаки латинского алфавита и цифры!</b><br /><br />';
				} 
			} else {
				echo '<b>Ошибка! Слишком короткий логин или пароль (От 3 до 20 символов)</b><br /><br />';
			} 
		} else {
			echo '<b>Ошибка! Слишком длинный логин или пароль (От 3 до 20 символов)</b><br /><br />';
		} 
break;
default: echo '<strong>ПОДКЛЮЧЕНИЕ К БД</strong><br /><br />';

		echo 'Данные подключения к БД будут записаны в файл inc/db.php, после записи файлу будут автоматически присвоены права CHMOD 644<br />';
		echo 'Если этого не произошло, то вы можете вручную выставить файлу права запрещающие запись в него<br /><br />';

		echo '<div class="form">';
		echo '<form method="post" action="?mode=2">';
		echo 'Сервер MySQL:<br />';
		echo '<input name="dbhost" value="localhost" /><br />';
		echo 'Порт MySQL:<br />';
		echo '<input name="dbport" value="3306" /><br />';
		echo 'Имя базы данных:<br />';
		echo '<input name="dbname" /><br />';
		echo 'Имя пользователя:<br />';
		echo '<input name="dbuser" /><br />';
		echo 'Пароль:<br />';
		echo '<input name="dbpass" type="password" /><br /><br />';
		echo '<input value="Продолжить" type="submit" /></form></div><br />';

		echo 'База данных и пользователь должны быть созданы в панеле управления вашего сайта!<br /><br />';

endswitch;
?></div>
<div class="foot">© 2012 Powered by Nikolaika, Terrin</div>
</body>
</html>