mirror of
https://github.com/Fluffy-Bean/image-gallery.git
synced 2025-06-06 10:23:12 +00:00
Im so sorry for the database code
This commit is contained in:
parent
60f0877a5c
commit
6a28f6022d
3 changed files with 144 additions and 28 deletions
110
app/sanity/check/_database.php
Normal file
110
app/sanity/check/_database.php
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
|
||||||
|
<?php
|
||||||
|
// Database check, this will check if the database table is setup correctly
|
||||||
|
// Adding these check hopefully will make the gallery more stable as I dont
|
||||||
|
// Trust my programming skills nor my ability to write good documentation
|
||||||
|
|
||||||
|
// Im also so sorry for the code you're about to read
|
||||||
|
|
||||||
|
if (defined('ROOT') && $_SESSION['id'] == 1) {
|
||||||
|
// Column name Type Null Key Default Extra
|
||||||
|
$table_templates = array(
|
||||||
|
'images' => array(
|
||||||
|
array('id', 'int(11)', 'NO', 'PRI', '', 'auto_increment'),
|
||||||
|
array('imagename', 'varchar(255)', 'NO', 'UNI', '', ''),
|
||||||
|
array('alt', 'text', 'NO', '', '', ''),
|
||||||
|
array('tags', 'text', 'NO', '', '', ''),
|
||||||
|
array('author', 'int(11)', 'NO', '', '', ''),
|
||||||
|
array('last_modified', 'timestamp', 'NO', '', 'CURRENT_TIMESTAMP', 'on update CURRENT_TIMESTAMP'),
|
||||||
|
array('upload_date', 'timestamp', 'NO', '', 'CURRENT_TIMESTAMP', '')
|
||||||
|
),
|
||||||
|
'users' => array(
|
||||||
|
array('id', 'int(11)', 'NO', 'PRI', '', 'auto_increment'),
|
||||||
|
array('username', 'varchar(255)', 'NO', 'UNI', '', ''),
|
||||||
|
array('password', 'varchar(255)', 'NO', '', '', ''),
|
||||||
|
array('pfp_path', 'varchar(255)', 'NO', '', '', ''),
|
||||||
|
array('admin', 'boolean', 'NO', '', 'FALSE', ''),
|
||||||
|
array('last_modified', 'timestamp', 'NO', '', 'CURRENT_TIMESTAMP', 'on update CURRENT_TIMESTAMP'),
|
||||||
|
array('created_at', 'timestamp', 'NO', '', 'CURRENT_TIMESTAMP', '')
|
||||||
|
),
|
||||||
|
'groups' => array(
|
||||||
|
array('id', 'int(11)', 'NO', 'PRI', '', 'auto_increment'),
|
||||||
|
array('group_name', 'varchar(255)', 'NO', 'UNI', '', ''),
|
||||||
|
array('image_list', 'text', 'NO', '', '', ''),
|
||||||
|
array('last_modified', 'timestamp', 'NO', '', 'CURRENT_TIMESTAMP', 'on update CURRENT_TIMESTAMP'),
|
||||||
|
array('created_at', 'timestamp', 'NO', '', 'CURRENT_TIMESTAMP', '')
|
||||||
|
),
|
||||||
|
'logs' => array(
|
||||||
|
array('id', 'int(11)', 'NO', 'PRI', '', 'auto_increment'),
|
||||||
|
array('ipaddress', 'varchar(16)', 'NO', '', '', ''),
|
||||||
|
array('action', 'varchar(255)', 'NO', '', '', ''),
|
||||||
|
array('created_at', 'timestamp', 'NO', '', 'CURRENT_TIMESTAMP', '')
|
||||||
|
),
|
||||||
|
'bans' => array(
|
||||||
|
array('id', 'int(11)', 'NO', 'PRI', '', 'auto_increment'),
|
||||||
|
array('ipaddress', 'varchar(16)', 'NO', '', '', ''),
|
||||||
|
array('reason', 'varchar(255)', 'NO', '', '', ''),
|
||||||
|
array('time', 'timestamp', 'NO', '', 'CURRENT_TIMESTAMP', ''),
|
||||||
|
array('length', 'int(255)', 'NO', '', '', ''),
|
||||||
|
array('pernament', 'boolean', 'NO', '', 'FALSE', '')
|
||||||
|
),
|
||||||
|
'tokens' => array(
|
||||||
|
array('id', 'int(11)', 'NO', 'PRI', '', 'auto_increment'),
|
||||||
|
array('code', 'varchar(255)', 'NO', '', '', ''),
|
||||||
|
array('used', 'boolean', 'NO', '', 'FALSE', ''),
|
||||||
|
array('created_at', 'timestamp', 'NO', '', 'CURRENT_TIMESTAMP', '')
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
function check_table($conn, $table) {
|
||||||
|
$results = array();
|
||||||
|
try {
|
||||||
|
$query = mysqli_query($conn, "DESCRIBE ".$table);
|
||||||
|
|
||||||
|
while($row = mysqli_fetch_array($query)) {
|
||||||
|
$results[] = array(
|
||||||
|
$row['Field'],
|
||||||
|
$row['Type'],
|
||||||
|
$row['Null'],
|
||||||
|
$row['Key'],
|
||||||
|
$row['Default'],
|
||||||
|
$row['Extra']
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} catch (Exception $e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $results;
|
||||||
|
}
|
||||||
|
|
||||||
|
$table_list = array('images', 'users', 'groups', 'tokens', 'logs', 'bans');
|
||||||
|
|
||||||
|
foreach ($table_list as $table) {
|
||||||
|
$error_count = 0;
|
||||||
|
$get_table = check_table($conn, $table);
|
||||||
|
|
||||||
|
if ($get_table != false) {
|
||||||
|
foreach ($table_templates[$table] as $key => $value) {
|
||||||
|
if (!empty(array_diff($get_table[$key], $value))) {
|
||||||
|
$error_count += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($error_count > 0) {
|
||||||
|
$results[] = array(
|
||||||
|
'type'=>'warning',
|
||||||
|
'message'=> 'Table '.$table.' is not setup correctly, '.$error_count.' errors found',
|
||||||
|
'fix'=>'auto'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$results[] = array(
|
||||||
|
'type'=>'critical',
|
||||||
|
'message'=> 'Could not find table '.$table,
|
||||||
|
'fix'=>'auto'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -14,7 +14,7 @@ if (defined('ROOT') && $_SESSION['id'] == 1) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
if (check_database($conn, 'images')) {
|
if (check_database($conn, 'images')) {
|
||||||
echo "<p><span style='color: var(--accent);'>[INFO]</span> Found images table</p>";
|
echo "<p><span style='color: var(--accent);'>[INFO]</span> Found images table</p>";
|
||||||
} else {
|
} else {
|
||||||
|
@ -23,9 +23,9 @@ if (defined('ROOT') && $_SESSION['id'] == 1) {
|
||||||
|
|
||||||
$sql = "CREATE TABLE IF NOT EXISTS images (
|
$sql = "CREATE TABLE IF NOT EXISTS images (
|
||||||
id INT(11) AUTO_INCREMENT PRIMARY KEY,
|
id INT(11) AUTO_INCREMENT PRIMARY KEY,
|
||||||
imagename VARCHAR(255) NOT NULL,
|
imagename VARCHAR(255) NOT NULL UNIQUE,
|
||||||
alt VARCHAR(text) NOT NULL,
|
alt TEXT NOT NULL,
|
||||||
tags VARCHAR(text) NOT NULL,
|
tags TEXT NOT NULL,
|
||||||
author INT(11) NOT NULL,
|
author INT(11) NOT NULL,
|
||||||
last_modified TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
last_modified TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
upload_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
upload_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||||
|
@ -124,7 +124,7 @@ if (defined('ROOT') && $_SESSION['id'] == 1) {
|
||||||
if ($conn->query($sql) === TRUE) {
|
if ($conn->query($sql) === TRUE) {
|
||||||
echo "<p><span style='color: var(--accent);'>[INFO]</span> Table tokens made!</p>";
|
echo "<p><span style='color: var(--accent);'>[INFO]</span> Table tokens made!</p>";
|
||||||
}
|
}
|
||||||
}*/
|
}
|
||||||
|
|
||||||
if (check_database($conn, 'test')) {
|
if (check_database($conn, 'test')) {
|
||||||
echo "<p><span style='color: var(--accent);'>[INFO]</span> Found test table</p>";
|
echo "<p><span style='color: var(--accent);'>[INFO]</span> Found test table</p>";
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
session_start();
|
session_start();
|
||||||
|
|
||||||
include dirname(__DIR__) . "/../conn.php";
|
include "../conn.php";
|
||||||
|
|
||||||
if (isset($_POST['fix'])) {
|
if (isset($_POST['fix'])) {
|
||||||
$autofix_start = microtime(true);
|
$timer_start = microtime(true);
|
||||||
|
|
||||||
echo "<p><span style='color: var(--accent);'>[INFO]</span> Starting autofix</p>";
|
echo "<p><span style='color: var(--accent);'>[INFO]</span> Starting autofix</p>";
|
||||||
|
|
||||||
|
@ -24,14 +24,12 @@ if (isset($_POST['fix'])) {
|
||||||
echo "<p>==== Folders ====</p>";
|
echo "<p>==== Folders ====</p>";
|
||||||
require_once "fix/_folders.php";
|
require_once "fix/_folders.php";
|
||||||
|
|
||||||
$autofix_end = microtime(true);
|
$timer_end = microtime(true);
|
||||||
$autofix_time = ($autofix_end - $autofix_start);
|
$timer_diff = ($timer_end - $timer_start);
|
||||||
$autofix_time = round($autofix_time, 6) * 1000;
|
$timer_diff = round($timer_diff, 6) * 1000;
|
||||||
|
|
||||||
echo "<p><span style='color: var(--accent);'>[INFO]</span> Autofix complete in $autofix_time ms</p>";
|
echo "<p><span style='color: var(--accent);'>[INFO]</span> Autofix complete in $timer_diff ms</p>";
|
||||||
}
|
} elseif (isset($_POST['check'])) {
|
||||||
|
|
||||||
elseif (isset($_POST['check'])) {
|
|
||||||
if (empty($_SESSION['id'])) {
|
if (empty($_SESSION['id'])) {
|
||||||
echo "<p><span style='color: var(--warning);'>[ERROR]</span> You are not logged in</p>";
|
echo "<p><span style='color: var(--warning);'>[ERROR]</span> You are not logged in</p>";
|
||||||
exit();
|
exit();
|
||||||
|
@ -40,13 +38,17 @@ elseif (isset($_POST['check'])) {
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
define('ROOT', true); // Only run scripts from this file
|
$timer_start = microtime(true);
|
||||||
$results = array(); // Array to store results
|
|
||||||
|
|
||||||
require_once "check/_dir.php";
|
$autofix_enable = false;
|
||||||
require_once "check/_json.php";
|
$results = array(); // Array to store results
|
||||||
require_once "check/_perms.php";
|
define('ROOT', true); // Only run scripts from this file
|
||||||
require_once "check/_versions.php";
|
|
||||||
|
include_once "check/_dir.php";
|
||||||
|
include_once "check/_json.php";
|
||||||
|
include_once "check/_perms.php";
|
||||||
|
include_once "check/_versions.php";
|
||||||
|
include_once "check/_database.php";
|
||||||
|
|
||||||
if (empty($results)) {
|
if (empty($results)) {
|
||||||
echo "<p class='alert alert-good'>No errors! Lookin' good :3</p>";
|
echo "<p class='alert alert-good'>No errors! Lookin' good :3</p>";
|
||||||
|
@ -73,15 +75,19 @@ elseif (isset($_POST['check'])) {
|
||||||
|
|
||||||
echo $result['message']."</p>";
|
echo $result['message']."</p>";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($autofix_enable) {
|
|
||||||
echo "<button class='btn btn-bad' onclick=\"$('#sanityCheck').load('app/sanity/sanity.php', {fix: 'true'});\">
|
|
||||||
Attempt Autofix
|
|
||||||
</button>";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
else {
|
$timer_end = microtime(true);
|
||||||
|
$timer_diff = ($timer_end - $timer_start);
|
||||||
|
$timer_diff = round($timer_diff, 6) * 1000;
|
||||||
|
|
||||||
|
echo "<p class='alert alert-good'> Scan complete in $timer_diff ms</p>";
|
||||||
|
|
||||||
|
if ($autofix_enable) {
|
||||||
|
echo "<button class='btn btn-bad' onclick=\"$('#sanityCheck').load('app/sanity/sanity.php', {fix: 'true'});\">
|
||||||
|
Attempt Autofix
|
||||||
|
</button>";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
echo "<p class='alert alert-warning'><span class='badge badge-warning'>Warning</span> Bruh, what do you want?</p>";
|
echo "<p class='alert alert-warning'><span class='badge badge-warning'>Warning</span> Bruh, what do you want?</p>";
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue