164 lines
6.4 KiB
PHP
164 lines
6.4 KiB
PHP
<?php
|
|
|
|
require_once __DIR__ . '/app/models/Database.php';
|
|
|
|
// Sprawdzenie czy baza istnieje
|
|
$dbPath = Database::getDbPath();
|
|
$dbExists = file_exists($dbPath);
|
|
|
|
try {
|
|
$db = Database::getInstance();
|
|
|
|
// Tworzenie tabeli użytkowników
|
|
$db->exec('
|
|
CREATE TABLE IF NOT EXISTS users (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
login VARCHAR(50) UNIQUE NOT NULL,
|
|
password VARCHAR(255) NOT NULL,
|
|
email VARCHAR(100),
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
)
|
|
');
|
|
|
|
// Tworzenie tabeli kodów weryfikacyjnych
|
|
$db->exec('
|
|
CREATE TABLE IF NOT EXISTS verification_codes (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
user_id INTEGER NOT NULL,
|
|
code VARCHAR(6) NOT NULL,
|
|
expires_at DATETIME NOT NULL,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (user_id) REFERENCES users(id),
|
|
UNIQUE(user_id)
|
|
)
|
|
');
|
|
|
|
// Sprawdzenie czy użytkownik testowy istnieje
|
|
$stmt = $db->prepare('SELECT id FROM users WHERE login = :login');
|
|
$stmt->execute(['login' => 'projectpro']);
|
|
$userExists = $stmt->fetch();
|
|
|
|
if (!$userExists) {
|
|
// Dodanie testowego użytkownika
|
|
$password = password_hash('testowehaslo', PASSWORD_DEFAULT);
|
|
$stmt = $db->prepare('
|
|
INSERT INTO users (login, password, email)
|
|
VALUES (:login, :password, :email)
|
|
');
|
|
$stmt->execute([
|
|
'login' => 'projectpro',
|
|
'password' => $password,
|
|
'email' => 'projectpro@example.com'
|
|
]);
|
|
$userCreated = true;
|
|
} else {
|
|
$userCreated = false;
|
|
}
|
|
|
|
// Wyświetlenie statusu
|
|
?>
|
|
<!DOCTYPE html>
|
|
<html lang="pl">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Inicjalizacja bazy danych</title>
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/bootstrap-icons.css" rel="stylesheet">
|
|
<style>
|
|
body {
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
min-height: 100vh;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.card {
|
|
border: none;
|
|
border-radius: 15px;
|
|
box-shadow: 0 10px 40px rgba(0,0,0,0.2);
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<div class="row justify-content-center">
|
|
<div class="col-md-6">
|
|
<div class="card">
|
|
<div class="card-header bg-success text-white text-center py-3">
|
|
<i class="bi bi-database-check fs-1"></i>
|
|
<h4 class="mt-2 mb-0">Inicjalizacja zakończona</h4>
|
|
</div>
|
|
<div class="card-body p-4">
|
|
<div class="alert alert-success">
|
|
<i class="bi bi-check-circle-fill me-2"></i>
|
|
<strong>Baza danych została zainicjalizowana pomyślnie!</strong>
|
|
</div>
|
|
|
|
<h5 class="mt-4 mb-3">Status:</h5>
|
|
<ul class="list-group mb-4">
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
<span><i class="bi bi-table me-2"></i>Tabela <code>users</code></span>
|
|
<span class="badge bg-success">OK</span>
|
|
</li>
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
<span><i class="bi bi-table me-2"></i>Tabela <code>verification_codes</code></span>
|
|
<span class="badge bg-success">OK</span>
|
|
</li>
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
<span><i class="bi bi-person me-2"></i>Użytkownik testowy</span>
|
|
<span class="badge bg-<?= $userCreated ? 'success' : 'info' ?>">
|
|
<?= $userCreated ? 'Utworzony' : 'Już istnieje' ?>
|
|
</span>
|
|
</li>
|
|
</ul>
|
|
|
|
<h5 class="mb-3">Dane testowe:</h5>
|
|
<div class="bg-light p-3 rounded">
|
|
<p class="mb-2">
|
|
<strong>Login:</strong>
|
|
<code>projectpro</code>
|
|
</p>
|
|
<p class="mb-0">
|
|
<strong>Hasło:</strong>
|
|
<code>testowehaslo</code>
|
|
</p>
|
|
</div>
|
|
|
|
<div class="d-grid mt-4">
|
|
<a href="/logowanie" class="btn btn-primary btn-lg">
|
|
<i class="bi bi-box-arrow-in-right me-2"></i>Przejdź do logowania
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|
|
<?php
|
|
|
|
} catch (Exception $e) {
|
|
?>
|
|
<!DOCTYPE html>
|
|
<html lang="pl">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Błąd inicjalizacji</title>
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
|
|
</head>
|
|
<body class="bg-danger bg-opacity-10">
|
|
<div class="container py-5">
|
|
<div class="alert alert-danger">
|
|
<h4><i class="bi bi-exclamation-triangle me-2"></i>Błąd inicjalizacji bazy danych</h4>
|
|
<hr>
|
|
<p class="mb-0"><?= htmlspecialchars($e->getMessage()) ?></p>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|
|
<?php
|
|
}
|