Fixed First Start
This commit is contained in:
+10
-3
@@ -4,7 +4,9 @@ mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
|
|||||||
|
|
||||||
// Check if first_start.php installer file exists and database setup is needed
|
// Check if first_start.php installer file exists and database setup is needed
|
||||||
$first_start_path = ROOT_DIR . "first_start.php";
|
$first_start_path = ROOT_DIR . "first_start.php";
|
||||||
if (file_exists($first_start_path) && basename($_SERVER['SCRIPT_FILENAME'] ?? '') !== 'first_start.php') {
|
$first_start_completed = file_exists(ROOT_DIR . "first_start.php.completed") || file_exists(ROOT_DIR . "config/installed.lock");
|
||||||
|
|
||||||
|
if (file_exists($first_start_path) && !$first_start_completed && basename($_SERVER['SCRIPT_FILENAME'] ?? '') !== 'first_start.php') {
|
||||||
// Check connection first
|
// Check connection first
|
||||||
try {
|
try {
|
||||||
$test_conn = @new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
|
$test_conn = @new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
|
||||||
@@ -93,11 +95,16 @@ try {
|
|||||||
}
|
}
|
||||||
|
|
||||||
} catch (mysqli_sql_exception $e) {
|
} catch (mysqli_sql_exception $e) {
|
||||||
if (file_exists($first_start_path) && basename($_SERVER['SCRIPT_FILENAME'] ?? '') !== 'first_start.php') {
|
if (file_exists($first_start_path) && !$first_start_completed && basename($_SERVER['SCRIPT_FILENAME'] ?? '') !== 'first_start.php') {
|
||||||
header("Location: first_start.php");
|
header("Location: first_start.php");
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
include(PAGES_FOLD . "db-error.php");
|
$pages_fold = defined('PAGES_FOLD') ? PAGES_FOLD : ROOT_DIR . "pages/";
|
||||||
|
if (file_exists($pages_fold . "db-error.php")) {
|
||||||
|
include($pages_fold . "db-error.php");
|
||||||
|
} else {
|
||||||
|
echo "Database connection error: " . htmlspecialchars($e->getMessage());
|
||||||
|
}
|
||||||
debugStatusMes("Database setup error: " . $e->getMessage(), "High");
|
debugStatusMes("Database setup error: " . $e->getMessage(), "High");
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
|
|||||||
+12
-4
@@ -5,14 +5,22 @@
|
|||||||
switch($env){
|
switch($env){
|
||||||
/*------ DON'T TOUCH THIS PART ------ */
|
/*------ DON'T TOUCH THIS PART ------ */
|
||||||
case "generic":
|
case "generic":
|
||||||
$doc_root = !empty($_SERVER['DOCUMENT_ROOT']) ? $_SERVER['DOCUMENT_ROOT'] : dirname(__DIR__);
|
$app_dir = str_replace('\\', '/', dirname(__DIR__));
|
||||||
define('WEB_ROOT', $doc_root);
|
$doc_root = !empty($_SERVER['DOCUMENT_ROOT']) ? str_replace('\\', '/', $_SERVER['DOCUMENT_ROOT']) : '';
|
||||||
|
|
||||||
|
$base_url_path = '';
|
||||||
|
if (!empty($doc_root) && strpos($app_dir, $doc_root) === 0) {
|
||||||
|
$base_url_path = substr($app_dir, strlen($doc_root));
|
||||||
|
}
|
||||||
|
$base_url_path = rtrim(str_replace('\\', '/', $base_url_path), '/');
|
||||||
|
|
||||||
$host = !empty($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'localhost';
|
$host = !empty($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'localhost';
|
||||||
define('DOMAIN', $host);
|
define('DOMAIN', $host);
|
||||||
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https://' : 'http://';
|
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https://' : 'http://';
|
||||||
define('FULL_DOMAIN', $protocol . DOMAIN);
|
define('FULL_DOMAIN', $protocol . DOMAIN);
|
||||||
define("ROOT_URL", $protocol . DOMAIN );
|
define("ROOT_URL", $protocol . DOMAIN . $base_url_path);
|
||||||
define("ROOT_DIR", rtrim(WEB_ROOT, '/') . "/");
|
define("ROOT_DIR", $app_dir . "/");
|
||||||
|
define('WEB_ROOT', ROOT_DIR);
|
||||||
break;
|
break;
|
||||||
/* ----------------------------------- */
|
/* ----------------------------------- */
|
||||||
default:
|
default:
|
||||||
|
|||||||
+2
-2
@@ -8,8 +8,8 @@ $db_needed="yes";
|
|||||||
$db_debug="yes";
|
$db_debug="yes";
|
||||||
$db_host="localhost";
|
$db_host="localhost";
|
||||||
$db_name="sld_blocknotes_db";
|
$db_name="sld_blocknotes_db";
|
||||||
$db_user="root";
|
$db_user="simone";
|
||||||
$db_pass="";
|
$db_pass="Angela";
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------
|
||||||
// --- DON'T CHANGE ALL THE CODE BELOW!!! ---
|
// --- DON'T CHANGE ALL THE CODE BELOW!!! ---
|
||||||
|
|||||||
Regular → Executable
+18
-3
@@ -11,6 +11,17 @@ if (session_status() === PHP_SESSION_NONE) {
|
|||||||
define("ROOT_DIR", __DIR__ . "/");
|
define("ROOT_DIR", __DIR__ . "/");
|
||||||
require_once(__DIR__ . "/functions/lang.php");
|
require_once(__DIR__ . "/functions/lang.php");
|
||||||
|
|
||||||
|
// Check if installation is already completed or lock file exists
|
||||||
|
$installed_lock = __DIR__ . "/config/installed.lock";
|
||||||
|
$completed_file = __DIR__ . "/first_start.php.completed";
|
||||||
|
|
||||||
|
if (file_exists($completed_file) || file_exists($installed_lock)) {
|
||||||
|
header("Location: index.php?page=login");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Handle language selection
|
// Handle language selection
|
||||||
if (isset($_GET['set_lang'])) {
|
if (isset($_GET['set_lang'])) {
|
||||||
set_active_lang($_GET['set_lang']);
|
set_active_lang($_GET['set_lang']);
|
||||||
@@ -142,10 +153,13 @@ if ($db_needed == "yes"){
|
|||||||
require_once(CONFIG_FOLD . "db.php");
|
require_once(CONFIG_FOLD . "db.php");
|
||||||
}
|
}
|
||||||
?>';
|
?>';
|
||||||
file_put_contents(__DIR__ . "/config/settings.php", $settings_file_content);
|
if (@file_put_contents(__DIR__ . "/config/settings.php", $settings_file_content) === false) {
|
||||||
|
$msg_error = __('err_setup_write_permissions');
|
||||||
|
} else {
|
||||||
// Rename first_start.php to first_start.php.completed to prevent installer re-entry
|
// Rename first_start.php to first_start.php.completed to prevent installer re-entry
|
||||||
@rename(__FILE__, __DIR__ . "/first_start.php.completed");
|
if (!@rename(__FILE__, __DIR__ . "/first_start.php.completed")) {
|
||||||
|
@file_put_contents(__DIR__ . "/config/installed.lock", date('Y-m-d H:i:s'));
|
||||||
|
}
|
||||||
|
|
||||||
// Redirect to login page
|
// Redirect to login page
|
||||||
header("Location: index.php?page=login&installed=1");
|
header("Location: index.php?page=login&installed=1");
|
||||||
@@ -153,6 +167,7 @@ if ($db_needed == "yes"){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
|
|||||||
+8
-4
@@ -200,7 +200,8 @@ function get_translations() {
|
|||||||
'err_setup_db_fields' => 'Compila tutti i dati di connessione al Database MySQL.',
|
'err_setup_db_fields' => 'Compila tutti i dati di connessione al Database MySQL.',
|
||||||
'err_setup_owner_fields' => 'Inserisci username e password per l\'utente Owner (Proprietario).',
|
'err_setup_owner_fields' => 'Inserisci username e password per l\'utente Owner (Proprietario).',
|
||||||
'err_setup_admin_fields' => 'Inserisci username e password per il primo utente Admin.',
|
'err_setup_admin_fields' => 'Inserisci username e password per il primo utente Admin.',
|
||||||
'err_setup_same_user' => 'L\'utente Owner e l\'utente Admin devono avere nomi utente differenti.'
|
'err_setup_same_user' => 'L\'utente Owner e l\'utente Admin devono avere nomi utente differenti.',
|
||||||
|
'err_setup_write_permissions' => 'Impossibile scrivere il file config/settings.php. Verifica i permessi di scrittura sulla cartella.'
|
||||||
],
|
],
|
||||||
|
|
||||||
'en' => [
|
'en' => [
|
||||||
@@ -365,7 +366,8 @@ function get_translations() {
|
|||||||
'err_setup_db_fields' => 'Please fill in all MySQL database connection fields.',
|
'err_setup_db_fields' => 'Please fill in all MySQL database connection fields.',
|
||||||
'err_setup_owner_fields' => 'Please enter username and password for the Owner user.',
|
'err_setup_owner_fields' => 'Please enter username and password for the Owner user.',
|
||||||
'err_setup_admin_fields' => 'Please enter username and password for the first Admin user.',
|
'err_setup_admin_fields' => 'Please enter username and password for the first Admin user.',
|
||||||
'err_setup_same_user' => 'Owner user and Admin user must have different usernames.'
|
'err_setup_same_user' => 'Owner user and Admin user must have different usernames.',
|
||||||
|
'err_setup_write_permissions' => 'Unable to write to config/settings.php file. Check folder write permissions.'
|
||||||
],
|
],
|
||||||
|
|
||||||
'es' => [
|
'es' => [
|
||||||
@@ -530,7 +532,8 @@ function get_translations() {
|
|||||||
'err_setup_db_fields' => 'Por favor completa todos los campos de conexión a la base de datos MySQL.',
|
'err_setup_db_fields' => 'Por favor completa todos los campos de conexión a la base de datos MySQL.',
|
||||||
'err_setup_owner_fields' => 'Por favor introduce nombre de usuario y contraseña para el Propietario.',
|
'err_setup_owner_fields' => 'Por favor introduce nombre de usuario y contraseña para el Propietario.',
|
||||||
'err_setup_admin_fields' => 'Por favor introduce nombre de usuario y contraseña para el primer Admin.',
|
'err_setup_admin_fields' => 'Por favor introduce nombre de usuario y contraseña para el primer Admin.',
|
||||||
'err_setup_same_user' => 'El usuario Propietario y el usuario Admin deben tener nombres diferentes.'
|
'err_setup_same_user' => 'El usuario Propietario y el usuario Admin deben tener nombres diferentes.',
|
||||||
|
'err_setup_write_permissions' => 'No se pudo escribir en el archivo config/settings.php. Verifica los permisos de escritura.'
|
||||||
],
|
],
|
||||||
|
|
||||||
'fr' => [
|
'fr' => [
|
||||||
@@ -695,7 +698,8 @@ function get_translations() {
|
|||||||
'err_setup_db_fields' => 'Veuillez remplir tous les champs de connexion à la base de données MySQL.',
|
'err_setup_db_fields' => 'Veuillez remplir tous les champs de connexion à la base de données MySQL.',
|
||||||
'err_setup_owner_fields' => 'Veuillez entrer le nom d\'utilisateur et le mot de passe pour le Propriétaire.',
|
'err_setup_owner_fields' => 'Veuillez entrer le nom d\'utilisateur et le mot de passe pour le Propriétaire.',
|
||||||
'err_setup_admin_fields' => 'Veuillez entrer le nom d\'utilisateur et le mot de passe pour le premier Admin.',
|
'err_setup_admin_fields' => 'Veuillez entrer le nom d\'utilisateur et le mot de passe pour le premier Admin.',
|
||||||
'err_setup_same_user' => 'L\'utilisateur Propriétaire et l\'utilisateur Admin doivent avoir des noms différents.'
|
'err_setup_same_user' => 'L\'utilisateur Propriétaire et l\'utilisateur Admin doivent avoir des noms différents.',
|
||||||
|
'err_setup_write_permissions' => 'Impossible d\'écrire dans le fichier config/settings.php. Vérifiez les permissions de dossier.'
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user