<?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>