The following files exists in this folder. Click to view.
locked.php112 lines UTF-8 Unix (LF) 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
<?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
if (isset($_GET["requestID"]))
$db->query("INSERT INTO allowedIDs(categoryID, userID) VALUES (:categoryID, :userID)", array("categoryID"=>$_GET["requestID"], "userID"=>$_SESSION["userID"]));
?>
<!DOCTYPE html>
<html lang="en" data-bs-theme="dark">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HogeNView</title>
<!-- Bootstrap CSS från CDN -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB" crossorigin="anonymous">
<!-- Bootstrap JS-bundle från CDN -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js"
integrity="sha384-FKyoEForCGlyvwx9Hj09JcYn3nv7wiPVlz7YYwJrWVcXK/BmnVDxM+D2scQbITxI"
crossorigin="anonymous"></script>
<style>
.link-unchanged {
text-decoration: unset;
color: unset;
}
/* Klass för att behålla länkutseende oförändrat */
</style>
</head>
<body>
<?php include "page/navbar.php" ?>
<!-- Inkluderar navigationsfältet -->
<div class="container">
<br>
<?php
$name = $db->query(
"SELECT username FROM accountData WHERE userID=:userID",
array("userID" => $_SESSION["userID"])
)["username"];
echo "<h1>Låsta filmkategorier för ";
echo htmlspecialchars($name, ENT_QUOTES, "UTF-8");
echo "</h1>";
?>
<br>
<?php
$data = $db->queryAll(
"SELECT c.*, NOT ISNULL(hasAccess) hasRequested FROM category c LEFT OUTER JOIN allowedIDs a ON c.categoryID = a.categoryID AND a.userID=:userID WHERE ISNULL(a.userID) OR NOT hasAccess ORDER BY hasAccess ASC, categoryID ASC;",
array("userID" => $_SESSION["userID"])
);
// Hämtar alla kategorier som användaren har tillgång till
if($data == null){
echo '<h5 class="text-center" style="color: rgb(100,100,100)";>Du har inga låsta filmkategorier.</h5>';
// Om inga kategorier finns, visa meddelande
}
$cardRowSize = 2;
// Antal kolumner per rad i kort-layouten
function print_cell($data)
{
// Funktion för att skriva ut ett kort med kategori
if (isset($data))
{
$button = $data["hasRequested"] ? '<a class="btn btn-info mt-2 disabled">Begärd</a>' : "<a href=\"locked.php?requestID={$data["categoryID"]}\" class=\"btn btn-info mt-2\">Begär</a>";
$categorysafe = htmlspecialchars($data["name"]);
$categorysafedesc = htmlspecialchars($data["description"]);
echo <<<EOD
<div class="col">
<div class="card">
<div class="card-body">
<h5 class="card-title">{$categorysafe}</h5>
<p class="card-text">{$categorysafedesc}</p>
{$button}
</div>
</div>
</div>
EOD;
}
else
echo '<div class="col"></div>';
// Tom kolumn om ingen data finns
}
for ($row = 0; $row < ceil(sizeof($data) / $cardRowSize); $row++) {
echo '<div class="row">';
for ($col = 0; $col < $cardRowSize; $col++) {
if (isset($data[$row * $cardRowSize + $col]))
print_cell($data[$row * $cardRowSize + $col]);
else
print_cell(null);
// Loopar igenom data och skriver ut rader/kolumner med kort
}
echo '</div><br>';
}
?>
</div>
</body>
</html>