Файл: install/index.php
Строк: 104
<?php
# Author: Oleg Kulaga (Cyber_Shot);
# Package: WGame Engine;
# Version: 0.1;
define("APP", true);
define("HOME", "wgame"); # Domain;
define("DS", DIRECTORY_SEPARATOR); # Directory separator;
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
session_start();
ob_start();
require_once ('../app/functions/data.func.php');
require_once ('../app/functions/view.func.php');
require_once ('functions/config.func.php');
$step = isset($_GET['step']) ? data_out($_GET['step']) : null;
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="<?=DS.HOME?>/public/styles/default.css">
<title> Установка WGame Engine </title>
</head>
<body>
<?php
switch ($step)
{
default:
if (version_compare(phpversion(), '5.6.0', '<'))
{
?>
<div class="block">
Для работы нужна версия php 5.6.0 или выше.
</div>
<?php
}
else if (!class_exists(PDO::class))
{
?>
<div class="block">
Для работы нужна поддержка PDO.
</div>
<?php
}
else if (ini_get('register_globals'))
{
?>
<div class="block">
Для повышение безопасности необходимо отключить: "register_globals".
</div>
<?php
}
else
{
?>
<div class="block" style="text-align: center;">
Ошибок не обнаружено
</div>
<div class="block">
<a href="?step=1" class="touchLink"> Продолжить</a>
</div>
<?php
}
break;
# Install db;
case 1:
view_notifierDisplay();
if (filter_has_var(INPUT_POST, "tryDb"))
{
$data = $_POST;
$data['dbhost'] = data_in($data['dbhost']);
$data['dbport'] = data_in($data['dbport']);
$data['dbname'] = data_in($data['dbname']);
$data['dbuser'] = data_in($data['dbuser']);
$data['dbpass'] = data_in($data['dbpass']);
# Error handler;
if (empty($data['dbhost']))
{
view_notifierAdd('Введите хост.', '#');
exit();
}
else if (empty($data['dbport']))
{
view_notifierAdd('Введите порт.', '#');
exit();
}
else if (empty($data['dbname']))
{
view_notifierAdd('Введите имя бд.', '#');
exit();
}
else if (empty($data['dbuser']))
{
view_notifierAdd('Введите имя пользователя.', '#');
exit();
}
else
{
try {
$pdo = new PDO('mysql:host=' . $data['dbhost'] . ';port=' . $data['dbport'] . ';dbname=' . $data['dbname'], $data['dbuser'], $data['dbpass'],
[
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'",
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY,
]
);
} catch (PDOException $e) {
$pdo_error = $e->getMessage();
if (stristr($pdo_error, 'no such host'))
{
view_notifierAdd('Неверный хост.', '#');
exit();
}
elseif (stristr($pdo_error, 'access denied for user'))
{
view_notifierAdd('Неверный пользователь.', '#');
exit();
}
elseif (stristr($pdo_error, 'unknown database'))
{
view_notifierAdd('Неверная бд.', '#');
exit();
} else {
view_notifierAdd('Ошибка: '. $pdo_error, '#');
exit();
}
}
$config = [
"dbhost" => $data['dbhost'],
"dbport" => $data['dbport'],
"dbname" => $data['dbname'],
"dbuser" => $data['dbuser'],
"dbpass" => $data['dbpass']];
$dbfile = "<?phpnn if (!defined('APP')) die('Access Denied');nn" . 'return ' . var_export($config, true) . ";n";
$file = '../app/db.param.php';
file_put_contents($file, $dbfile);
config_parseSql('wgame.sql', $pdo);
view_notifierAdd('Установка завершена.', DS.HOME.DS.'wgame.index');
exit();
}
}
?>
<div class="block" style="text-align: center;">
Подключение к базе данных.
</div>
<div class="block">
<form method="POST">
<b>Хост:</b><br/>
<input type="text" name="dbhost" value="localhost"><br/>
<b>Порт:</b><br/>
<input type="text" name="dbport" value="3306"><br/>
<b>Имя базы данных:</b><br/>
<input type="text" name="dbname" value="wgame"><br/>
<b>Пользователь бд:</b><br/>
<input type="text" name="dbuser" value="root"><br/>
<b>Пароль бд:</b><br/>
<input type="text" name="dbpass" value=""><br/>
<input type="submit" name="tryDb" value="Подключиться">
</form>
</div>
<?php
}