View sourcecode

The following files exists in this folder. Click to view.

moviedata.php

58 lines UTF-8 Unix (LF)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?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
?>