[FÁZE-1][config] Přidán konfigurační soubor systému přihlašování
[FÁZE-1][db] Přidáno připojení k databázi přes PDO [FÁZE-1][install] Přidán instalační skript s tvorbou tabulek a prvního admina
This commit is contained in:
+48
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
// ============================================================
|
||||
// PŘIPOJENÍ K DATABÁZI
|
||||
// ============================================================
|
||||
// Tento soubor vytvoří připojení k MySQL databázi přes PDO.
|
||||
// PDO je modernější a bezpečnější způsob práce s databází než
|
||||
// starší mysqli (které bylo použito v původním projektu).
|
||||
//
|
||||
// Výsledkem je proměnná $pdo, kterou pak používají ostatní
|
||||
// soubory pro dotazy na databázi.
|
||||
// ============================================================
|
||||
|
||||
// Pokud config.php ještě není načtený, načteme ho
|
||||
if (!defined('DB_HOST')) {
|
||||
require_once __DIR__ . '/config.php';
|
||||
}
|
||||
|
||||
// DSN = Data Source Name – řetězec popisující připojení k DB
|
||||
// utf8mb4 = plná podpora Unicode (diakritika, emoji, ...)
|
||||
// utf8mb4_unicode_ci = správné řazení a porovnávání znaků
|
||||
$dsn = 'mysql:host=' . DB_HOST
|
||||
. ';dbname=' . DB_NAME
|
||||
. ';charset=utf8mb4';
|
||||
|
||||
// Nastavení chování PDO
|
||||
$moznosti = [
|
||||
// Při chybě vyhoď výjimku (exception) místo tichého selhání
|
||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||
|
||||
// Výsledky vrací jako asociativní pole (např. $radek['email'])
|
||||
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
||||
|
||||
// Vypne emulovné prepared statements – používáme pravé,
|
||||
// které chrání před SQL injection na úrovni databáze
|
||||
PDO::ATTR_EMULATE_PREPARES => false,
|
||||
];
|
||||
|
||||
// Pokus o připojení k databázi
|
||||
try {
|
||||
$pdo = new PDO($dsn, DB_USER, DB_PASS, $moznosti);
|
||||
} catch (PDOException $e) {
|
||||
// Při chybě připojení zobrazíme obecnou chybovou hlášku.
|
||||
// Detailní chybu NEZOBRAZUJEME uživateli – mohla by prozradit
|
||||
// citlivé informace o struktuře serveru.
|
||||
// Chybu ale zalogujeme do PHP error logu pro administrátora.
|
||||
error_log('Chyba připojení k databázi: ' . $e->getMessage());
|
||||
die('Nepodařilo se připojit k databázi. Zkuste to prosím později.');
|
||||
}
|
||||
Reference in New Issue
Block a user