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

login.php

102 lines UTF-8 Windows (CRLF)
<?php
session_start
();
include(
'../../incl/dbconnection.php');
/**
 * @var PDO $dbconn
 */

// För säkerhets skull
unset($_SESSION['pass_forgot_authorized']);

?>


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

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Inloggning</title>
  <link rel="stylesheet" href="style.css">
  <style>
    a {
      background-color: white;
    }
  </style>
</head>

<body>
  <div class="center-container" style="height: 95vh;">
    <div>
      <form action="" method="post">
        <?php
        
// Försök logga in
        
try {
          
$username = isset($_POST['username']) ? $_POST['username'] : null;
          
$password = isset($_POST['password']) ? $_POST['password'] : null;

          if (
$username && $password) {
            
$sqlSelect "SELECT * FROM bay_users WHERE username=?";
            
$selectStmt $dbconn->prepare($sqlSelect);
            
$selectStmt->execute([$username]);
            
$result $selectStmt->fetch(PDO::FETCH_ASSOC);
            if (
$result && password_verify($password$result['password'])) {
              echo 
"<p class='text-center'>Inloggning lyckades! Skickar vidare dig...</p>";
              
$_SESSION['isLoggedIn'] = true;
              
$_SESSION['userId'] = $result['id'];
              
$_SESSION['isAdmin'] = $result['is_admin'];
              
$_SESSION['username'] = $result['username'];
              
$pageToSendTo = isset($_SESSION['lastVisited']) ? $_SESSION['lastVisited'] : "index.php";
              
header("Location:$pageToSendTo");
              exit;
            } else {
              echo 
"<p class='text-center'>Inloggning misslyckades: Användarnamn eller lösenord hittades inte</p>";
            }
          }
        } catch (
PDOException $e) {
          echo 
"<br>" $e->getMessage();
        }

        unset(
$_SESSION['isAdmin']); // Säkerhet

        // Kolla om vi blivit redirectade hit
        
$redirect = isset($_GET["redirect"]) ? $_GET["redirect"] : "";
        if (
$redirect == true) {
        
?>
          <h1 class="text-center">För att fortsätta måste du logga in!</h1>
          <hr style="width: 100%;">
        <?php
        
}
        
?>
        <?php 
        
if (isset($_SESSION['flash_msg'])) {
          echo 
$_SESSION['flash_msg'];
          unset(
$_SESSION['flash_msg']);
        }
        
?>

        <h2>Logga in</h2>
        <div class="row">
          <label for="username">Användarnamn:</label>
          <input type="text" name="username" id="username" autocomplete="off" required>
        </div>
        <div class="row">
          <label for="password">Lösenord:</label>
          <input type="password" name="password" id="password" autocomplete="off" required>
        </div>
        <div class="row">
          <input type="submit" value="Logga in">
        </div>
        <div class="row">
          <p style="font-size:small">Inget konto? <a href="signup.php">Skapa ett konto</a></p>
        </div>
        <div class="row">
          <p style="font-size:small"><a href="forgot_pass.php">Jag har glömt mitt lösenord</a></p>
        </div>
      </form>
    </div>
  </div>
</body>

</html>