The following files exists in this folder. Click to view.
moviedata.php58 lines UTF-8 Unix (LF) 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
<?php
session_start();
// Startar sessionen för att kunna använda $_SESSION
if (!isset($_SESSION["userID"]))
header("location: login.php");
// Om användaren inte är inloggad, omdirigera till login-sidan
require_once "functions/database.php";
// Inkluderar databashanteringsfilen
$userData = $db->query(
"SELECT * FROM accountData WHERE userID=:userID",
array("userID" => $_SESSION["userID"])
);
if ($userData["isAdmin"])
// Hämtar mediafilen ifall man är admin
$data = $db->query(
"SELECT f.* FROM mediaFiles f WHERE f.mediaID=:mediaID",
array("mediaID" => $_GET['id'])
);
else
// Hämtar mediafilen som användaren har tillgång till
$data = $db->query(
"SELECT f.* FROM allowedIDs a INNER JOIN mediaFiles f ON a.categoryID = f.categoryID WHERE f.mediaID = :mediaID AND a.userID = :userID AND CURRENT_DATE>=f.releaseDate AND hasAccess",
array("userID" => $_SESSION["userID"], "mediaID" => $_GET["id"])
);
if (!$data) {
// ChatGPT tipsade mig om detta kommando
http_response_code(403);
return;
// Om ingen fil hittas eller användaren saknar tillgång, returnera 403 Forbidden
}
$filePath = "mediaFiles/{$data['fileURL']}";
// Sätter sökvägen till filen på servern
// finfo_open funkar inte i MAMP så får göra snabbsätt
$isMamp = false;
if ($isMamp)
$mimeType = "video/quicktime";
//$mimeType = "video/mp4";
else {
// ChatGPT hjälpte mig med detta
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mimeType = finfo_file($finfo, $filePath);
finfo_close($finfo);
}
// Bestämmer filens MIME-typ för att kunna skicka korrekt Content-Type
header("Content-Type: {$mimeType}");
// Sätter HTTP-headern för innehållstyp baserat på filens MIME-typ
echo file_get_contents($filePath);
// Läser filens innehåll och skickar det till klienten
?>