<?php
declare(strict_types=1);
session_start();
if (empty($_SESSION['miter'])) {
header('Location: ../../index.php');
exit;
}
require_once __DIR__ . '/../admin/otc.php';
if (!isset($o_file_date) || empty($o_file_date)) {
error_log('miter.php: Critical failure - otc.php did not provide $o_file_date.');
http_response_code(500);
exit('Critical System Error: Timestamp generation failed.');
}
$img_path = '';
if (!empty($_FILES['upload']['name']) && $_FILES['upload']['error'] === UPLOAD_ERR_OK) {
$tmp_name = $_FILES['upload']['tmp_name'];
$finfo = new finfo(FILEINFO_MIME_TYPE);
$mime_type = $finfo->file($tmp_name);
$allowed_mimes = [
'image/jpeg' => 'jpg',
'image/png' => 'png',
'image/gif' => 'gif',
'image/webp' => 'webp',
'image/avif' => 'avif'
];
if (array_key_exists($mime_type, $allowed_mimes)) {
$safe_filename = uniqid('img_', true) . '.' . $allowed_mimes[$mime_type];
$upload_dest = __DIR__ . '/../../images/' . $safe_filename;
if (move_uploaded_file($tmp_name, $upload_dest)) {
$img_path = $safe_filename;
}
}
}
$g_date = date('Y-m-d H:i:s');
$raw_miter = $_POST['miter'] ?? '';
$miter_post = str_replace(["\r\n", "\r", "\n"], '<br>', trim($raw_miter));
$safe_file_id = basename((string)$o_file_date);
$miter_file = __DIR__ . '/../../miters/' . $safe_file_id . '.txt';
$miter_data_array = [
$miter_post,
trim($_POST['url'] ?? ''),
$img_path,
'', // unused
$o_date ?? $g_date,
$g_date,
$g_date
];
if (empty($miter_post)) {
http_response_code(400);
exit('Error: Miter content cannot be empty.');
}
if (file_put_contents($miter_file, implode("\n", $miter_data_array), LOCK_EX) === false) {
error_log('miter.php: Atomic write failed for ' . $miter_file);
http_response_code(500);
exit('Write failure.');
}
header('Location: ../../index.php', true, 303);
exit;
?>