Webbserverprogrammering 1

Show sourcecode

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

Webserver1/Ovningar/Slutprojekt/

.env
DEBUG/
Media/
account.js
account.php
callback_log.txt
change_account_details.php
composer.json
composer.lock
forgot_pass.php
forgot_pass_new_pass.php
header.php
index.php
login.php
mediaplayer.php
node_modules/
package-lock.json
package.json
signup.php
style.css
upload.js
upload_callback.php
upload_callback_simulated.php
upload_chunk.php
upload_errors.log
upload_form.php
upload_handler.php
upload_success.log
vendor/
verify_file.php
verifypage.php

mediaplayer.php

106 lines UTF-8 Windows (CRLF)
<?php
session_start
();

$video_id $_GET['id'] ?? null;

if (!
$video_id) {
  
header("Location:index.php");
  exit;
}

$user_id $_SESSION["userId"] ?? null;
$IS_ADMIN $_SESSION['isAdmin'] ?: false;

if (!
$user_id) {
  
$_SESSION['lastVisited'] = "mediaplayer.php?id=$video_id";
  
header("Location:login.php?redirect=true");
  exit;
}

/**
 * @var PDO $dbconn
 * @var bool $local
 * @var class DBManager
 */
include('../../incl/dbconnection.php');

$dbmanager = new DBManager();

$media_data $dbmanager->fetch_from_table(
  [
"title""description""href_video""hidden""bay_users.username"],
  
"bay_media",
  [
"bay_media.id" => $video_id],
  [
    [
      
"type" => "INNER",
      
"table" => "bay_users",
      
"condition" => "bay_media.uploaded_by_user_id = bay_users.id"
    
]
  ]
)[
0] ?? null;

if (!
$media_data) {
  
header("Location:index.php");
  exit;
}
if (
$media_data['hidden'] == && !$IS_ADMIN) {
  
$_SESSION['flash_msg'] = "Videon du försökte se inväntar godkännande. Vänligen försök senare.";
  
header("Location:index.php");
  exit;
}

// Uppdatera watch history
if (empty($dbmanager->fetch_from_table(
  [
"*"],
  
"bay_watch_history",
  [
"user_id" => $user_id"media_id" => $video_id]
  ))) {
    
// Om man aldrig sett denna video, skapa ny rad
    
$dbmanager->insert_into_table(
      [
        
"user_id" => intval($user_id),
        
"media_id" => intval($video_id)
      ],
      
"bay_watch_history"
    
);
  }
else {
  
// Uppdatera befintlig rad
  
$dbmanager->update_table_values(
    
"bay_watch_history",
    [
"last_watched" => date('Y-m-d H:i:s')],
    [
      
"user_id" => intval($user_id),
      
"media_id" => intval($video_id)
    ]);
}

?>
<!DOCTYPE html>
<html lang="sv">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title><?php echo $media_data['title']; ?> - <?php echo $media_data['username']; ?></title>
  <link rel="stylesheet" href="style.css">
  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
</head>

<body>
  <?php include("./header.php"?>
  
  <div class="video-container">
    <h1 id="mediaplayer-video-title"><?php echo $media_data['title']; ?></h1>
    <video controls src="<?php echo $media_data['href_video']; ?>">
      Din webbläsare stödjer inte denna video eller så har den tagits bort från servern.
    </video>
    <h2>Upladdat av: <?php echo $media_data['username']; ?></h2>
    <div id="mediaplayer-video-description">
      <h3>Beskrivning:</h3>
      <p><?php echo $media_data['description']; ?></p>
    </div>
  </div>
</body>

</html>