[FÁZE-1][install] Tabulky přejmenovány na anglické názvy s prefixem auth_
This commit is contained in:
+45
-38
@@ -36,11 +36,11 @@ $uspech = false;
|
|||||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||||
|
|
||||||
// Načtení hodnot z formuláře
|
// Načtení hodnot z formuláře
|
||||||
$email = trim($_POST['email'] ?? '');
|
$email = trim($_POST['email'] ?? '');
|
||||||
$heslo = $_POST['heslo'] ?? '';
|
$heslo = $_POST['heslo'] ?? '';
|
||||||
$heslo2 = $_POST['heslo2'] ?? '';
|
$heslo2 = $_POST['heslo2'] ?? '';
|
||||||
|
|
||||||
// Základní validace emailu
|
// Validace emailu
|
||||||
if (empty($email)) {
|
if (empty($email)) {
|
||||||
$chyba = 'Email nesmí být prázdný.';
|
$chyba = 'Email nesmí být prázdný.';
|
||||||
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||||
@@ -66,43 +66,45 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|||||||
// ------------------------------------------------
|
// ------------------------------------------------
|
||||||
|
|
||||||
// Tabulka uživatelů přihlašovacího systému
|
// Tabulka uživatelů přihlašovacího systému
|
||||||
// utf8mb4 = plná podpora Unicode (diakritika, emoji)
|
// utf8mb4 = plná podpora Unicode (diakritika, emoji, ...)
|
||||||
$pdo->exec("
|
$pdo->exec("
|
||||||
CREATE TABLE IF NOT EXISTS `" . DB_TABULKA_UZIVATELE . "` (
|
CREATE TABLE IF NOT EXISTS `" . DB_TABULKA_UZIVATELE . "` (
|
||||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
`email` VARCHAR(255) NOT NULL,
|
`email` VARCHAR(255) NOT NULL,
|
||||||
`heslo` VARCHAR(255) NOT NULL,
|
`heslo` VARCHAR(255) NOT NULL,
|
||||||
`admin` TINYINT(1) NOT NULL DEFAULT 0,
|
`admin` TINYINT(1) NOT NULL DEFAULT 0,
|
||||||
`vytvoreno` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
`vytvoreno` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
UNIQUE KEY `email` (`email`)
|
UNIQUE KEY `email` (`email`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
");
|
");
|
||||||
|
|
||||||
// Tabulka remember me tokenů
|
// Tabulka remember me tokenů
|
||||||
// selector = veřejný identifikátor pro vyhledání záznamu v DB
|
// selector = veřejný identifikátor pro vyhledání záznamu v DB
|
||||||
// token_hash = bcrypt hash tajného tokenu (samotný token je jen v cookie)
|
// token_hash = bcrypt hash tajného tokenu (samotný token je jen v cookie)
|
||||||
$pdo->exec("
|
$pdo->exec("
|
||||||
CREATE TABLE IF NOT EXISTS `" . DB_TABULKA_TOKENY . "` (
|
CREATE TABLE IF NOT EXISTS `" . DB_TABULKA_TOKENY . "` (
|
||||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
`uzivatel_id` INT UNSIGNED NOT NULL,
|
`uzivatel_id` INT UNSIGNED NOT NULL,
|
||||||
`selector` VARCHAR(32) NOT NULL,
|
`selector` VARCHAR(32) NOT NULL,
|
||||||
`token_hash` VARCHAR(255) NOT NULL,
|
`token_hash` VARCHAR(255) NOT NULL,
|
||||||
`expiruje` DATETIME NOT NULL,
|
`expiruje` DATETIME NOT NULL,
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
UNIQUE KEY `selector` (`selector`),
|
UNIQUE KEY `selector` (`selector`),
|
||||||
FOREIGN KEY (`uzivatel_id`) REFERENCES `" . DB_TABULKA_UZIVATELE . "` (`id`) ON DELETE CASCADE
|
FOREIGN KEY (`uzivatel_id`)
|
||||||
|
REFERENCES `" . DB_TABULKA_UZIVATELE . "` (`id`)
|
||||||
|
ON DELETE CASCADE
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
");
|
");
|
||||||
|
|
||||||
// Tabulka brute force záznamů
|
// Tabulka brute force záznamů
|
||||||
// Ukládají se neúspěšné pokusy o přihlášení
|
// Ukládají se neúspěšné pokusy o přihlášení (IP adresa, email, čas)
|
||||||
$pdo->exec("
|
$pdo->exec("
|
||||||
CREATE TABLE IF NOT EXISTS `" . DB_TABULKA_BRUTE . "` (
|
CREATE TABLE IF NOT EXISTS `" . DB_TABULKA_BRUTE . "` (
|
||||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
`ip_adresa` VARCHAR(45) NOT NULL,
|
`ip_adresa` VARCHAR(45) NOT NULL,
|
||||||
`email` VARCHAR(255) NOT NULL,
|
`email` VARCHAR(255) NOT NULL,
|
||||||
`cas` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
`cas` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
KEY `ip_adresa` (`ip_adresa`),
|
KEY `ip_adresa` (`ip_adresa`),
|
||||||
KEY `email` (`email`)
|
KEY `email` (`email`)
|
||||||
@@ -110,29 +112,33 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|||||||
");
|
");
|
||||||
|
|
||||||
// Tabulka tokenů pro obnovu hesla
|
// Tabulka tokenů pro obnovu hesla
|
||||||
// Token je platný jen omezenou dobu (viz config.php)
|
// Token je jednorázový a platí omezenou dobu (viz config.php)
|
||||||
$pdo->exec("
|
$pdo->exec("
|
||||||
CREATE TABLE IF NOT EXISTS `" . DB_TABULKA_RESET . "` (
|
CREATE TABLE IF NOT EXISTS `" . DB_TABULKA_RESET . "` (
|
||||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
`uzivatel_id` INT UNSIGNED NOT NULL,
|
`uzivatel_id` INT UNSIGNED NOT NULL,
|
||||||
`token_hash` VARCHAR(255) NOT NULL,
|
`token_hash` VARCHAR(255) NOT NULL,
|
||||||
`expiruje` DATETIME NOT NULL,
|
`expiruje` DATETIME NOT NULL,
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
FOREIGN KEY (`uzivatel_id`) REFERENCES `" . DB_TABULKA_UZIVATELE . "` (`id`) ON DELETE CASCADE
|
FOREIGN KEY (`uzivatel_id`)
|
||||||
|
REFERENCES `" . DB_TABULKA_UZIVATELE . "` (`id`)
|
||||||
|
ON DELETE CASCADE
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
");
|
");
|
||||||
|
|
||||||
// Tabulka uživatelů konkrétní služby (pokud je nastavena)
|
// Tabulka uživatelů konkrétní služby (pokud je nastavena v config.php)
|
||||||
// Tato tabulka slouží pro data specifická pro tvůj projekt
|
// Tato tabulka slouží pro data specifická pro tvůj projekt.
|
||||||
// (jméno, nastavení, kontaktní údaje apod.)
|
// Zatím obsahuje jen vazbu na auth_users – sloupce si přidáš sám.
|
||||||
if (DB_TABULKA_SLUZBA !== '') {
|
if (DB_TABULKA_SLUZBA !== '') {
|
||||||
$pdo->exec("
|
$pdo->exec("
|
||||||
CREATE TABLE IF NOT EXISTS `" . DB_TABULKA_SLUZBA . "` (
|
CREATE TABLE IF NOT EXISTS `" . DB_TABULKA_SLUZBA . "` (
|
||||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
`uzivatel_id` INT UNSIGNED NOT NULL,
|
`uzivatel_id` INT UNSIGNED NOT NULL,
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
UNIQUE KEY `uzivatel_id` (`uzivatel_id`),
|
UNIQUE KEY `uzivatel_id` (`uzivatel_id`),
|
||||||
FOREIGN KEY (`uzivatel_id`) REFERENCES `" . DB_TABULKA_UZIVATELE . "` (`id`) ON DELETE CASCADE
|
FOREIGN KEY (`uzivatel_id`)
|
||||||
|
REFERENCES `" . DB_TABULKA_UZIVATELE . "` (`id`)
|
||||||
|
ON DELETE CASCADE
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
");
|
");
|
||||||
}
|
}
|
||||||
@@ -141,6 +147,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|||||||
// VYTVOŘENÍ PRVNÍHO ADMIN UŽIVATELE
|
// VYTVOŘENÍ PRVNÍHO ADMIN UŽIVATELE
|
||||||
// ------------------------------------------------
|
// ------------------------------------------------
|
||||||
|
|
||||||
|
// Heslo zahashujeme pomocí bcrypt – nikdy neukládáme plaintext!
|
||||||
$heslo_hash = password_hash($heslo, PASSWORD_DEFAULT);
|
$heslo_hash = password_hash($heslo, PASSWORD_DEFAULT);
|
||||||
|
|
||||||
$stmt = $pdo->prepare("
|
$stmt = $pdo->prepare("
|
||||||
@@ -156,7 +163,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|||||||
|
|
||||||
$novy_uzivatel_id = $pdo->lastInsertId();
|
$novy_uzivatel_id = $pdo->lastInsertId();
|
||||||
|
|
||||||
// Pokud existuje tabulka služby, vytvoříme prázdný řádek
|
// Pokud existuje tabulka služby, vytvoříme k novému uživateli prázdný řádek
|
||||||
if (DB_TABULKA_SLUZBA !== '') {
|
if (DB_TABULKA_SLUZBA !== '') {
|
||||||
$stmt2 = $pdo->prepare("
|
$stmt2 = $pdo->prepare("
|
||||||
INSERT INTO `" . DB_TABULKA_SLUZBA . "`
|
INSERT INTO `" . DB_TABULKA_SLUZBA . "`
|
||||||
@@ -288,10 +295,10 @@ const POPISKY_SILY = [
|
|||||||
'Velmi silné'
|
'Velmi silné'
|
||||||
];
|
];
|
||||||
|
|
||||||
const inputHeslo = document.getElementById('heslo');
|
const inputHeslo = document.getElementById('heslo');
|
||||||
const spanSila = document.getElementById('heslo-sila');
|
const spanSila = document.getElementById('heslo-sila');
|
||||||
const tlacitko = document.getElementById('tlacitko-odeslat');
|
const tlacitko = document.getElementById('tlacitko-odeslat');
|
||||||
const spanDuvod = document.getElementById('tlacitko-duvod');
|
const spanDuvod = document.getElementById('tlacitko-duvod');
|
||||||
|
|
||||||
inputHeslo.addEventListener('input', function () {
|
inputHeslo.addEventListener('input', function () {
|
||||||
const hodnota = this.value;
|
const hodnota = this.value;
|
||||||
|
|||||||
Reference in New Issue
Block a user