87 lines
2.2 KiB
PHP
87 lines
2.2 KiB
PHP
<?php
|
|
require_once('./open_db.lib.php');
|
|
open_db('open');
|
|
require_once('./get_data.lib.php');
|
|
$queue = get_queue();
|
|
if ($queue) session_cache_limiter('nocache');
|
|
else session_cache_limiter('none');
|
|
session_set_cookie_params(array('lifetime' => strtotime('+1 year'), 'path' => '/', 'domain' => '.xxx.org.za', 'secure' => TRUE, 'httponly' => TRUE, 'samesite' => 'Lax'));
|
|
session_start();
|
|
if (isset($_SESSION['editor'])) {
|
|
$is_admin = TRUE;
|
|
$username = $_SESSION['editor'];
|
|
} else {
|
|
$is_admin = FALSE;
|
|
}
|
|
|
|
if (isset($_GET['pending']))
|
|
display_pending_img();
|
|
else
|
|
display_img(get_id());
|
|
|
|
// Show the image this session uploaded at the preview step
|
|
function display_pending_img() {
|
|
$file = pending_upload();
|
|
$info = $file ? getimagesize($file) : FALSE;
|
|
if (!$info) {
|
|
header("HTTP/1.1 404 Not Found");
|
|
return;
|
|
}
|
|
header("Content-type: ".$info['mime']);
|
|
header("Content-length: ".filesize($file));
|
|
header("X-Content-Type-Options: nosniff");
|
|
header("Cache-Control: private, no-store");
|
|
readfile($file);
|
|
}
|
|
|
|
function display_img($id) {
|
|
global $db, $is_admin, $queue;
|
|
$queue = get_queue();
|
|
|
|
if ((isset($_SESSION['allow_queue_image']) &&
|
|
$_SESSION['allow_queue_image'] == $id) ||
|
|
$is_admin) {
|
|
$allow_queue = TRUE;
|
|
} else {
|
|
$allow_queue = FALSE;
|
|
}
|
|
|
|
// Visitors can only see the image they submitted themselves, and no hidden stories
|
|
if ($queue) {
|
|
if (!$allow_queue) {
|
|
header("HTTP/1.1 401 Access Denied");
|
|
return;
|
|
}
|
|
$table = 'queue';
|
|
$hidden = "";
|
|
} else {
|
|
$table = 'xxx';
|
|
$hidden = $is_admin ? "" : " AND hidden IS NOT TRUE";
|
|
}
|
|
|
|
$query = "SELECT img, mime FROM $table WHERE 1 AND ID = ?".$hidden." LIMIT 0, 1";
|
|
$result = $db->execute_query($query, array((int)$id)) or die("Query failed : ".$db->error);
|
|
|
|
$row = $result->fetch_assoc();
|
|
if ($row) {
|
|
$img_data = $row['img'];
|
|
$mimetype = $row['mime'];
|
|
|
|
ob_start();
|
|
print $img_data;
|
|
$size = ob_get_length();
|
|
$img = ob_get_clean();
|
|
|
|
header("Content-type: $mimetype");
|
|
header("Content-length: $size");
|
|
print $img;
|
|
|
|
} else {
|
|
header("HTTP/1.1 404 Not Found");
|
|
return;
|
|
}
|
|
$result->close();
|
|
}
|
|
open_db('close');
|
|
?>
|