connect_error) { $msg_error = "Connessione MySQL fallita: " . $conn->connect_error; } else { // Create database $db_name_escaped = str_replace('`', '``', $db_name); if (!$conn->query("CREATE DATABASE IF NOT EXISTS `$db_name_escaped` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci")) { $msg_error = "Impossibile creare il database '$db_name': " . $conn->error; } else { $conn->select_db($db_name); // Create users table $sql_users = "CREATE TABLE IF NOT EXISTS users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL, role ENUM('owner', 'admin', 'user') NOT NULL DEFAULT 'user', theme_pri INT DEFAULT 98, theme_sec INT DEFAULT 207, theme_thi INT DEFAULT 280, language VARCHAR(5) NOT NULL DEFAULT 'it', default_blocknote VARCHAR(100) NOT NULL DEFAULT '', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"; $conn->query($sql_users); // Create site_settings table $sql_settings = "CREATE TABLE IF NOT EXISTS site_settings ( setting_key VARCHAR(50) PRIMARY KEY, setting_value TEXT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"; $conn->query($sql_settings); // Insert site_settings default values $conn->query("INSERT IGNORE INTO site_settings (setting_key, setting_value) VALUES ('site_title', 'Blocknotes')"); $conn->query("INSERT IGNORE INTO site_settings (setting_key, setting_value) VALUES ('site_favicon', 'assets/img/favicon.png')"); // Create Owner account $hash_owner = password_hash($owner_pass, PASSWORD_DEFAULT); $stmt = $conn->prepare("INSERT INTO users (username, password, role) VALUES (?, ?, 'owner') ON DUPLICATE KEY UPDATE password = VALUES(password), role = 'owner'"); $stmt->bind_param("ss", $owner_user, $hash_owner); $stmt->execute(); $stmt->close(); // Create Admin account $hash_admin = password_hash($admin_pass, PASSWORD_DEFAULT); $stmt = $conn->prepare("INSERT INTO users (username, password, role) VALUES (?, ?, 'admin') ON DUPLICATE KEY UPDATE password = VALUES(password), role = 'admin'"); $stmt->bind_param("ss", $admin_user, $hash_admin); $stmt->execute(); $stmt->close(); // Create blocknotes directory if missing $blocknotes_dir = __DIR__ . "/blocknotes/"; if (!is_dir($blocknotes_dir)) { @mkdir($blocknotes_dir, 0777, true); } // Update config/settings.php file $settings_file_content = ''; file_put_contents(__DIR__ . "/config/settings.php", $settings_file_content); // Rename first_start.php to first_start.php.completed to prevent installer re-entry @rename(__FILE__, __DIR__ . "/first_start.php.completed"); // Redirect to login page header("Location: index.php?page=login&installed=1"); exit; } } } } ?>
= __('setup_subtitle') ?>