2022-07-30 12:40:30 +00:00
|
|
|
<?php
|
|
|
|
/*
|
|
|
|
Why are you putting all the image checking up here?
|
|
|
|
Wasn't it fine below the header????
|
|
|
|
|
|
|
|
The reason why all this is up here, is so link previews can generate correctly in the header
|
|
|
|
I would rather it all not be up here, but due to variables not being able to be set after already being mentioned
|
|
|
|
(at least to my knowlage)
|
|
|
|
|
|
|
|
I am forced to put ALLL of this up here :c
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
include_once("ui/conn.php");
|
|
|
|
|
|
|
|
// If ID present pull all image data
|
|
|
|
if (isset($_GET['id'])) {
|
|
|
|
$get_image = "SELECT * FROM swag_table WHERE id = ".$_GET['id'];
|
|
|
|
$image_results = mysqli_query($conn, $get_image);
|
|
|
|
$image = mysqli_fetch_assoc($image_results);
|
|
|
|
|
|
|
|
// Check if image is avalible
|
|
|
|
if (isset($image['imagename'])) {
|
|
|
|
// Display image
|
|
|
|
$image_path = "images/".$image['imagename'];
|
|
|
|
$image_alt = $image['alt'];
|
|
|
|
} else {
|
|
|
|
// ID not avalible toast
|
|
|
|
echo "<p class='alert alert-low space-bottom-large'>Could not find image with ID: ".$_GET['id']."</p>";
|
|
|
|
|
|
|
|
// Replacement "no image" image and description
|
|
|
|
$image_path = "assets/no_image.png";
|
|
|
|
$image_alt = "No image could be found, sowwy";
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
// No ID toast
|
|
|
|
echo "<p class='alert alert-low space-bottom-large'>No ID present</p>";
|
|
|
|
|
|
|
|
// Replacement "no image" image and description
|
|
|
|
$image_path = "assets/no_image.png";
|
|
|
|
$image_alt = "No image could be found, sowwy";
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Get all user details
|
|
|
|
if (isset($image['author'])) {
|
|
|
|
$get_user = "SELECT * FROM users WHERE id = ".$image['author'];
|
|
|
|
$user_results = mysqli_query($conn, $get_user);
|
|
|
|
$user = mysqli_fetch_assoc($user_results);
|
|
|
|
}
|
|
|
|
?>
|
|
|
|
|
2022-07-21 14:53:04 +00:00
|
|
|
<!DOCTYPE html>
|
|
|
|
<html>
|
|
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
2022-07-25 15:13:26 +00:00
|
|
|
<title>Gallery</title>
|
2022-07-21 14:53:04 +00:00
|
|
|
<link rel="stylesheet" href="css/master.css">
|
|
|
|
<link href="https://fonts.googleapis.com/css2?family=Rubik" rel="stylesheet">
|
2022-07-23 14:03:11 +00:00
|
|
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Lexend+Deca:wght@600&display=swap">
|
|
|
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Fira+Code:wght@500&display=swap">
|
2022-07-30 12:40:30 +00:00
|
|
|
<?php echo "<meta property='og:image' content='https://superdupersecteteuploadtest.fluffybean.gay/".$image_path."'/>"; ?>
|
|
|
|
<?php echo "<meta itemprop='image' content='https://superdupersecteteuploadtest.fluffybean.gay/".$image_path."'/>"; ?>
|
2022-07-21 14:53:04 +00:00
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<?php
|
2022-07-23 07:44:43 +00:00
|
|
|
include("ui/header.php");
|
2022-07-21 14:53:04 +00:00
|
|
|
|
2022-07-30 10:41:37 +00:00
|
|
|
// Include flyout for extra actions
|
|
|
|
include("ui/flyout.php");
|
|
|
|
|
|
|
|
/*
|
|
|
|
If theres a success in updating the image,
|
|
|
|
it'll let the user know
|
|
|
|
*/
|
2022-07-24 09:43:54 +00:00
|
|
|
if ($_GET["update"] == "success") {
|
2022-07-25 15:13:26 +00:00
|
|
|
echo "<p class='alert alert-high space-bottom-large'>Information updated</p>";
|
2022-07-30 12:40:30 +00:00
|
|
|
} elseif ($_GET["update"] == "error") {
|
|
|
|
echo "<p class='alert alert-default space-bottom-large'>Something went fuckywucky, please try later</p>";
|
2022-07-30 10:41:37 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
Check if the user is an admin session id = 1
|
|
|
|
Or the owner of the image, image author == session id
|
|
|
|
|
|
|
|
This may not be the best system of doing this, but much better than not having it at all
|
|
|
|
I plan on adding an array of privilaged users that user with the id of 1 can modify,
|
|
|
|
sort of like a mod/admin list of users
|
|
|
|
*/
|
|
|
|
if (isset($_SESSION['id']) && $image['author'] == $_SESSION['id'] || $_SESSION['id'] == 1) {
|
|
|
|
$privilaged = True;
|
|
|
|
} else {
|
|
|
|
$privilaged = False;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2022-07-30 12:40:30 +00:00
|
|
|
/*
|
|
|
|
Test flyout button
|
|
|
|
*/
|
|
|
|
if (isset($_POST['test_flyout'])) {
|
|
|
|
$header = "Sus";
|
|
|
|
$content = "This is a test UwU. You are currently viewing image: ".$_GET['id'];
|
|
|
|
$action = "<a class='btn alert-high'>This button does nothing!</a> <a class='btn alert-low space-top-small'>I'm another button, but scawwy</a>";
|
|
|
|
|
|
|
|
flyout($header, $content, $action);
|
|
|
|
}
|
|
|
|
|
2022-07-30 10:41:37 +00:00
|
|
|
/*
|
|
|
|
Delete flyout
|
|
|
|
|
|
|
|
This goes with the confirm script below, to use flyout, you must include the js script and php function
|
|
|
|
*/
|
|
|
|
if (isset($_POST['delete_flyout']) && $privilaged) {
|
|
|
|
$header = "Are you sure?";
|
|
|
|
$content = "Deleting this image is pernament, there is no going back after this!!!!!";
|
|
|
|
$action = "<form method='POST' enctype='multipart/form-data'>
|
|
|
|
<button class='btn alert-low' type='submit' name='delete_confirm' value='".$image['id']."'><img class='svg' src='assets/icons/trash.svg'>Delete image</button>
|
|
|
|
</form>";
|
|
|
|
|
|
|
|
flyout($header, $content, $action);
|
|
|
|
}
|
|
|
|
/*
|
|
|
|
Confirm deleting user
|
|
|
|
|
|
|
|
user must be privilaged to do this action this the privilaged == true
|
|
|
|
*/
|
|
|
|
if (isset($_POST['delete_confirm']) && $privilaged) {
|
|
|
|
// Unset all the variables, needed by flyout
|
|
|
|
unset($header, $content, $action);
|
|
|
|
|
|
|
|
// Delete from table
|
|
|
|
$image_delete_request = "DELETE FROM swag_table WHERE id =".$image['id'];
|
|
|
|
$image_delete = mysqli_query($conn,$image_delete_request);
|
|
|
|
|
|
|
|
if ($image_delete) {
|
|
|
|
// See if image is in the directory
|
|
|
|
if (is_file("images/".$image['imagename'])) {
|
|
|
|
unlink("images/".$image['imagename']);
|
|
|
|
}
|
|
|
|
// Delete thumbnail if exitsts
|
|
|
|
if (is_file("images/thumbnails/".$image['imagename'])) {
|
|
|
|
unlink("images/thumbnails/".$image['imagename']);
|
|
|
|
}
|
|
|
|
header("Location:index.php?del=true&id=".$image['id']);
|
|
|
|
} else {
|
|
|
|
$error = "Could not delete image";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-07-30 12:40:30 +00:00
|
|
|
/*
|
|
|
|
Description edit
|
|
|
|
*/
|
|
|
|
if (isset($_POST['description_flyout']) && $privilaged) {
|
|
|
|
$header = "Enter new Description/Alt";
|
|
|
|
$content = "Whatcha gonna put in there 👀";
|
|
|
|
$action = "<form class='flex-down between' method='POST' enctype='multipart/form-data'>
|
|
|
|
<input class='btn alert-default space-bottom' type='text' name='update_alt' placeholder='Description/Alt for image'>
|
|
|
|
<button class='btn alert-low' type='submit' name='description_confirm' value='".$image["id"]."'><img class='svg' src='assets/icons/edit.svg'>Update information</button>
|
|
|
|
</form>";
|
2022-07-30 10:41:37 +00:00
|
|
|
|
2022-07-30 12:40:30 +00:00
|
|
|
flyout($header, $content, $action);
|
|
|
|
}
|
2022-07-30 10:41:37 +00:00
|
|
|
/*
|
2022-07-30 12:40:30 +00:00
|
|
|
Description confirm
|
2022-07-30 10:41:37 +00:00
|
|
|
*/
|
2022-07-30 12:40:30 +00:00
|
|
|
if (isset($_POST['description_confirm']) && $privilaged) {
|
|
|
|
// Unset all the variables, needed by flyout
|
|
|
|
unset($header, $content, $action);
|
|
|
|
|
|
|
|
// getting ready forSQL asky asky
|
|
|
|
$sql = "UPDATE swag_table SET alt=? WHERE id=?";
|
|
|
|
|
|
|
|
// Checking if databse is doing ok
|
|
|
|
if ($stmt = mysqli_prepare($conn, $sql)) {
|
|
|
|
mysqli_stmt_bind_param($stmt, "si", $param_alt, $param_id);
|
|
|
|
|
|
|
|
// Setting parameters
|
|
|
|
$param_alt = $_POST['update_alt'];
|
|
|
|
$param_id = $image["id"];
|
|
|
|
|
|
|
|
// Attempt to execute the prepared statement
|
|
|
|
if (mysqli_stmt_execute($stmt)) {
|
|
|
|
header("Location:https://superdupersecteteuploadtest.fluffybean.gay/image.php?id=".$image["id"]."&update=success");
|
|
|
|
} else {
|
|
|
|
header("Location:https://superdupersecteteuploadtest.fluffybean.gay/image.php?id=".$image["id"]."&update=error");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
Description athor
|
|
|
|
*/
|
|
|
|
if (isset($_POST['author_flyout']) && $_SESSION['id'] == 1) {
|
|
|
|
$header = "Who owns the image?????";
|
|
|
|
$content = "Enter ID of image owner";
|
|
|
|
$action = "<form class='flex-down between' method='POST' enctype='multipart/form-data'>
|
|
|
|
<input class='btn alert-default space-bottom' type='text' name='update_author' placeholder='New user ID'>
|
|
|
|
<button class='btn alert-low' type='submit' name='author_confirm' value='".$image["id"]."'><img class='svg' src='assets/icons/edit.svg'>Update information</button>
|
|
|
|
</form>";
|
2022-07-30 10:41:37 +00:00
|
|
|
|
|
|
|
flyout($header, $content, $action);
|
|
|
|
}
|
2022-07-30 12:40:30 +00:00
|
|
|
/*
|
|
|
|
Author confirm
|
|
|
|
*/
|
|
|
|
if (isset($_POST['author_confirm']) && $_SESSION['id'] == 1) {
|
|
|
|
// Unset all the variables, needed by flyout
|
|
|
|
unset($header, $content, $action);
|
|
|
|
|
|
|
|
// getting ready forSQL asky asky
|
|
|
|
$sql = "UPDATE swag_table SET author=? WHERE id=?";
|
|
|
|
|
|
|
|
// Checking if databse is doing ok
|
|
|
|
if ($stmt = mysqli_prepare($conn, $sql)) {
|
|
|
|
mysqli_stmt_bind_param($stmt, "si", $param_author, $param_id);
|
|
|
|
|
|
|
|
// Setting parameters
|
|
|
|
$param_author = $_POST['update_author'];
|
|
|
|
$param_id = $image["id"];
|
|
|
|
|
|
|
|
// Attempt to execute the prepared statement
|
|
|
|
if (mysqli_stmt_execute($stmt)) {
|
|
|
|
header("Location:https://superdupersecteteuploadtest.fluffybean.gay/image.php?id=".$image["id"]."&update=success");
|
|
|
|
} else {
|
|
|
|
header("Location:https://superdupersecteteuploadtest.fluffybean.gay/image.php?id=".$image["id"]."&update=error");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2022-07-23 07:44:43 +00:00
|
|
|
?>
|
|
|
|
|
|
|
|
<div class="image-container">
|
2022-07-28 10:35:57 +00:00
|
|
|
<?php
|
|
|
|
// Displaying image
|
|
|
|
echo "<img class='image' id='".$image['id']."' src='".$image_path."' alt='".$image_alt."'>";
|
|
|
|
?>
|
2022-07-21 14:53:04 +00:00
|
|
|
</div>
|
|
|
|
|
2022-07-27 11:46:10 +00:00
|
|
|
<div class="image-description default-window">
|
2022-07-22 00:21:48 +00:00
|
|
|
<h2>Description</h2>
|
|
|
|
<?php
|
2022-07-22 13:55:56 +00:00
|
|
|
// Image Description/Alt
|
2022-07-28 21:18:14 +00:00
|
|
|
if (isset($image_alt) && !empty($image_alt)) {
|
2022-07-23 07:44:43 +00:00
|
|
|
echo "<p>".$image_alt."</p>";
|
2022-07-28 10:35:57 +00:00
|
|
|
} else {
|
|
|
|
echo "<p>No description provided</p>";
|
2022-07-22 13:55:56 +00:00
|
|
|
}
|
2022-07-22 00:21:48 +00:00
|
|
|
?>
|
|
|
|
</div>
|
|
|
|
|
2022-07-27 11:46:10 +00:00
|
|
|
<div class="image-detail flex-down default-window">
|
2022-07-22 00:21:48 +00:00
|
|
|
<h2>Details</h2>
|
2022-07-21 14:53:04 +00:00
|
|
|
<?php
|
2022-07-25 17:28:55 +00:00
|
|
|
// Image ID
|
|
|
|
if (isset($image['author'])) {
|
2022-07-28 10:35:57 +00:00
|
|
|
if (isset($user['username'])) {
|
|
|
|
echo "<p>Author: ".$user['username']."</p>";
|
|
|
|
} else {
|
|
|
|
echo "<p>Author: Deleted User</p>";
|
|
|
|
}
|
2022-07-25 17:28:55 +00:00
|
|
|
} else {
|
|
|
|
echo "<p>Author: No author</p>";
|
|
|
|
}
|
|
|
|
|
2022-07-22 13:55:56 +00:00
|
|
|
// Image ID
|
2022-07-21 14:53:04 +00:00
|
|
|
echo "<p>ID: ".$image['id']."</p>";
|
2022-07-22 13:55:56 +00:00
|
|
|
|
|
|
|
// File name
|
2022-07-21 14:53:04 +00:00
|
|
|
echo "<p>File Name: ".$image['imagename']."</p>";
|
2022-07-22 13:55:56 +00:00
|
|
|
|
|
|
|
// Image Upload date
|
2022-07-26 11:33:28 +00:00
|
|
|
echo "<p>Last updated: ".$image['upload']." (+0)</p>";
|
2022-07-22 13:55:56 +00:00
|
|
|
|
|
|
|
// Image resolution
|
|
|
|
list($width, $height) = getimagesize($image_path);
|
|
|
|
echo "<p>Image resolution: ".$width."x".$height."</p>";
|
2022-07-23 14:03:11 +00:00
|
|
|
|
|
|
|
// Image download
|
|
|
|
echo "<a class='btn alert-high space-top' href='images/".$image['imagename']."' download='".$image['imagename']."'><img class='svg' src='assets/icons/download.svg'>Download image</a>";
|
2022-07-29 15:41:05 +00:00
|
|
|
|
|
|
|
// Flyout test button
|
2022-07-21 14:53:04 +00:00
|
|
|
?>
|
2022-07-30 10:41:37 +00:00
|
|
|
<form method='POST'>
|
2022-07-30 10:52:16 +00:00
|
|
|
<button class='btn alert-high space-top-small flyout-display' type='submit' name='test_flyout'>Test button</button>
|
2022-07-30 10:41:37 +00:00
|
|
|
</form>
|
2022-07-21 14:53:04 +00:00
|
|
|
</div>
|
|
|
|
|
2022-07-28 21:18:14 +00:00
|
|
|
<div class="tags-root default-window">
|
|
|
|
<h2>Tags</h2>
|
2022-07-29 12:53:36 +00:00
|
|
|
<div class="tags flex-left">
|
2022-07-28 21:18:14 +00:00
|
|
|
<?php
|
|
|
|
function clean($string) {
|
|
|
|
$string = str_replace('-', '_', $string);
|
|
|
|
$string = preg_replace('/[^A-Za-z0-9\_ ]/', '', $string);
|
|
|
|
return preg_replace('/ +/', ' ', $string);
|
|
|
|
}
|
|
|
|
$tags_string = "This is a test of ta.gs and their s//ystem_of_ignoring ran!!dom characters BUT THIS DOES$$$$$$.NT WORK YET!!!!";
|
|
|
|
$tags_string = strtolower($tags_string);
|
|
|
|
$tags_string = clean($tags_string);
|
|
|
|
$image_tags_array = explode(" ", $tags_string);
|
|
|
|
|
|
|
|
foreach ($image_tags_array as $tag) {
|
|
|
|
echo "<p class='tag alert-high'>".$tag."</p>";
|
|
|
|
}
|
|
|
|
?>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
2022-07-25 17:28:55 +00:00
|
|
|
<?php
|
2022-07-28 10:35:57 +00:00
|
|
|
// Check if user is admin or the owner of image, if yes, display the edit and delete div
|
2022-07-30 10:41:37 +00:00
|
|
|
if ($privilaged) {
|
2022-07-29 15:41:05 +00:00
|
|
|
// Danger zone
|
|
|
|
echo "<div class='danger-zone flex-down default-window'>
|
|
|
|
<h2>Danger zone</h2>";
|
|
|
|
|
2022-07-30 12:40:30 +00:00
|
|
|
// Delete
|
|
|
|
echo "<form method='POST'>
|
|
|
|
<button class='btn alert-low flyout-display' type='submit' name='delete_flyout'><img class='svg' src='assets/icons/trash.svg'>Delete image</button>
|
|
|
|
</form>";
|
|
|
|
|
|
|
|
// Edit description
|
|
|
|
echo "<form method='POST'>
|
|
|
|
<button class='btn alert-low space-top-small flyout-display' type='submit' name='description_flyout'><img class='svg' src='assets/icons/edit.svg'>Edit description</button>
|
|
|
|
</form>";
|
|
|
|
|
|
|
|
// Edit authro
|
2022-07-30 10:41:37 +00:00
|
|
|
echo "<form method='POST'>
|
2022-07-30 12:40:30 +00:00
|
|
|
<button class='btn alert-low space-top-small flyout-display' type='submit' name='author_flyout'><img class='svg' src='assets/icons/edit.svg'>Edit author</button>
|
2022-07-30 10:41:37 +00:00
|
|
|
</form>";
|
2022-07-29 15:41:05 +00:00
|
|
|
|
2022-07-25 17:28:55 +00:00
|
|
|
echo "</div>";
|
|
|
|
}
|
|
|
|
?>
|
2022-07-21 14:53:04 +00:00
|
|
|
|
2022-07-26 12:34:48 +00:00
|
|
|
<?php
|
2022-07-30 10:41:37 +00:00
|
|
|
// Must be included with flyout.php
|
|
|
|
echo "<script src='scripts/flyout.js'></script>";
|
2022-07-29 12:53:36 +00:00
|
|
|
|
2022-07-26 12:34:48 +00:00
|
|
|
include("ui/top.html");
|
2022-07-26 13:52:41 +00:00
|
|
|
include("ui/footer.php");
|
2022-07-26 12:34:48 +00:00
|
|
|
?>
|
2022-07-21 14:53:04 +00:00
|
|
|
</body>
|
|
|
|
</html>
|