The following files exists in this folder. Click to view.
requests.php107 lines UTF-8 Unix (LF) 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
<?php
session_start();
// Startar sessionen för att kunna använda $_SESSION
if (!isset($_SESSION["userID"])) {
header("location: login.php");
exit();
// Om användaren inte är inloggad, omdirigera till login-sidan
}
require_once "functions/database.php";
// Inkluderar databashanteringsfilen
$userinfo = $db->query("SELECT * FROM accountData WHERE userID=:userID", array("userID" => $_SESSION["userID"]));
// Hämtar all användardata från databasen
if ($userinfo["isAdmin"] == 0) {
header("location: index.php");
exit();
// Om användaren inte är admin, omdirigera till startsidan
}
if (isset($_GET["userID"]) && isset($_GET["categoryID"]))
{
$db->query("UPDATE allowedIDs SET hasAccess=1 WHERE userID=:userID AND categoryID=:categoryID", $_GET);
}
?>
<!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>Document</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>
</head>
<body>
<?php include "page/navbar.php" ?>
<!-- Inkluderar navigationsfältet -->
<div class="container">
<br>
<h1>Förfrågningar</h1>
<?php
$data = $db->queryAll("SELECT u.userID, c.categoryID, u.username, c.name categoryName, id.time FROM allowedIDs id LEFT JOIN accountData u ON id.userID = u.userID LEFT JOIN category c ON id.categoryID = c.categoryID WHERE NOT hasAccess ORDER BY time DESC");
// Hämtar all förfrågan-information
//echo "<pre>"; var_export($data); echo "</pre>";
if (!$data) {
echo '<h5 class="text-center" style="color: rgb(100,100,100)";>Inga aktiva förfrågningar finns.</h5>';
// Om inga förfrågan finns, visa meddelande
}
$cardRowSize = 2;
// Antal kolumner per rad för kort-layout
function print_cell($data)
{
// Funktion för att skriva ut ett kort (card) med media
if (isset($data)){
$usernamesafe = htmlspecialchars($data["username"]);
$categorynamesafe = htmlspecialchars($data["categoryName"]);
$timesafe = htmlspecialchars($data["time"]);
echo <<<EOD
<div class="col">
<div class="card">
<div class="card-body">
<h5 class="card-title">Användare: $usernamesafe</h5>
<h5 class="card-title">Kategori: $categorynamesafe</h5>
<h5 class="card-title">Förfrågad vid: $timesafe</h5>
<a href="requests.php?userID={$data["userID"]}&categoryID={$data["categoryID"]}" class="btn btn-info mt-2">Godkänn</a>
</div>
</div>
</div>
EOD;
}else
echo '<div class="col"></div>';
// Om ingen data finns, skriv ut en tom kolumn
}
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 media-data och skapar rader/kolumner med kort
}
echo '</div><br>';
}
?>
<br>
</div>
</body>
</html>