Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 44 additions & 11 deletions install_manager.php
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,39 @@ function doInstall(&$POSTJ){

if (mysqli_connect_errno())
echo json_encode(['error' => "Connection failed: " . mysqli_connect_error()]);

/* --------------------------------
AUTO-DETECT DB TYPE & COLLATION
--------------------------------- */

function detectDatabaseCollation($conn)
{
$info = strtolower(mysqli_get_server_info($conn));

// Safe default for MariaDB & MySQL < 8
$collation = 'utf8mb4_unicode_ci';

// MariaDB detection
if (strpos($info, 'mariadb') !== false) {
return $collation;
}

// MySQL version detection
if (preg_match('/(\d+)\./', $info, $matches)) {
$major = (int)$matches[1];

// MySQL 8+
if ($major >= 8) {
return 'utf8mb4_0900_ai_ci';
}
}

return $collation;
}

mysqli_set_charset($conn, 'utf8mb4');
$DB_COLLATION = detectDatabaseCollation($conn);

else
{
$file_contents = '<?php
Expand Down Expand Up @@ -211,7 +244,7 @@ function createTables($conn){
CREATE TABLE `tb_access_ctrl` (
`tk_id` varchar(11) NOT NULL,
`ctrl_ids` varchar(111) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE'.$DB_COLLATION.';

-- --------------------------------------------------------

Expand All @@ -224,7 +257,7 @@ function createTables($conn){
`mconfig_name` varchar(50) DEFAULT NULL,
`mconfig_data` mediumtext DEFAULT NULL,
`date` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE'.$DB_COLLATION.';

-- --------------------------------------------------------

Expand Down Expand Up @@ -349,7 +382,7 @@ function createTables($conn){
`platform` mediumtext DEFAULT NULL,
`device_type` mediumtext DEFAULT NULL,
`all_headers` mediumtext DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE'.$DB_COLLATION.';

-- --------------------------------------------------------

Expand Down Expand Up @@ -426,7 +459,7 @@ function createTables($conn){
`file_original_name` varchar(111) DEFAULT NULL,
`file_header` varchar(111) NOT NULL,
`date` varchar(111) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE'.$DB_COLLATION.';

-- --------------------------------------------------------

Expand All @@ -439,7 +472,7 @@ function createTables($conn){
`page_name` mediumtext DEFAULT NULL,
`page_file_name` varchar(111) DEFAULT NULL,
`date` varchar(111) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE'.$DB_COLLATION.';

-- --------------------------------------------------------

Expand All @@ -454,7 +487,7 @@ function createTables($conn){
`file_extension` varchar(111) DEFAULT NULL,
`file_header` varchar(111) DEFAULT NULL,
`date` varchar(111) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE'.$DB_COLLATION.';

-- --------------------------------------------------------

Expand All @@ -468,7 +501,7 @@ function createTables($conn){
`log` text DEFAULT NULL,
`ip` varchar(55) DEFAULT NULL,
`date` varchar(111) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE'.$DB_COLLATION.';

-- --------------------------------------------------------

Expand Down Expand Up @@ -499,7 +532,7 @@ function createTables($conn){
CREATE TABLE `tb_main_cron` (
`id` int(11) NOT NULL,
`pid` int(111) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE'.$DB_COLLATION.';

-- --------------------------------------------------------

Expand All @@ -514,7 +547,7 @@ function createTables($conn){
`baseurl` varchar(111) DEFAULT NULL,
`time_zone` varchar(111) DEFAULT NULL,
`time_format` varchar(222) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE'.$DB_COLLATION.';

-- --------------------------------------------------------

Expand All @@ -529,7 +562,7 @@ function createTables($conn){
`pl_type` varchar(111) DEFAULT NULL,
`pl_sub_type` varchar(111) DEFAULT NULL,
`date` varchar(111) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE'.$DB_COLLATION.';

-- --------------------------------------------------------

Expand All @@ -542,7 +575,7 @@ function createTables($conn){
`name` varchar(111) NOT NULL,
`info` varchar(700) DEFAULT NULL,
`content` mediumtext DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE'.$DB_COLLATION.';

--
-- Indexes for dumped tables
Expand Down