This commit is contained in:
2026-05-24 04:17:53 +03:00
parent fccf7b1ea3
commit cb5f0c498e
5 changed files with 905 additions and 0 deletions
+74
View File
@@ -0,0 +1,74 @@
<?php
$db_file = __DIR__ . '/datas.db';
// Если БД уже существует — блокируем установку
if (file_exists($db_file)) {
http_response_code(403);
die("403 Forbidden: База данных уже существует. Удалите install.php.");
}
// Если форма не отправлена — показываем ввод
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
?>
<h1>Установка системы</h1>
<form method="post">
<label>Логин администратора:</label><br>
<input type="text" name="username" required><br><br>
<label>Пароль администратора:</label><br>
<input type="password" name="password" required><br><br>
<button type="submit">Установить</button>
</form>
<?php
exit;
}
$username = trim($_POST['username'] ?? '');
$password = $_POST['password'] ?? '';
if ($username === '' || $password === '') {
die("Ошибка: логин и пароль не могут быть пустыми.");
}
try {
$db = new PDO('sqlite:' . $db_file);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Таблица администратора UI
$db->exec("CREATE TABLE admin (
id INTEGER PRIMARY KEY,
username TEXT,
password TEXT
)");
// Таблица подключений S3 / WebDAV
$db->exec("CREATE TABLE s3_mounts (
id INTEGER PRIMARY KEY,
dav_user TEXT UNIQUE,
dav_pass TEXT,
s3_key TEXT,
s3_secret TEXT,
s3_region TEXT,
s3_endpoint TEXT,
s3_bucket TEXT
)");
// Хешируем введённый пароль
$hash = password_hash($password, PASSWORD_DEFAULT);
$stmt = $db->prepare("INSERT INTO admin (username, password) VALUES (:username, :password)");
$stmt->execute([
':username' => $username,
':password' => $hash
]);
echo "<h1>Установка завершена!</h1>";
echo "<p>Создан файл datas.db.</p>";
echo "<p><b>Логин:</b> " . htmlspecialchars($username) . "</p>";
echo "<p style='color:red;'>В целях безопасности удалите файл install.php!</p>";
echo "<a href='index.php'>Перейти в панель управления</a>";
} catch (Exception $e) {
die("Ошибка БД: " . $e->getMessage());
}