Webbserverprogrammering 1

Show sourcecode

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

ramverket/exercises/quiz/

css/
dashboard.php
inc/
index.php
js/
login.php
logout.php
profile.php
quizzes.php
register.php
results.php

login.php

92 lines UTF-8 Windows (CRLF)
<?php
/* =========================
   Inkludera konfiguration,
   databasanslutning och
   databasfunktioner
   ========================= */
include("inc/config.php");
include(
"inc/connect_db.php");
include(
"inc/db_manager.php");

/* =========================
   Kontrollera om användaren
   redan är inloggad
   ========================= */
$id $_SESSION['id'] ?? null;

if (
$id !== null) {
    
// Redan inloggad → skicka till startsidan
    
header("Location: index.php");
    exit();
}

/* =========================
   Hantera inloggningsförsök
   ========================= */
if (isset($_POST['username'], $_POST['password'])) {
    
$username $_POST['username'];
    
$password $_POST['password'];

    
// Hämta användare baserat på användarnamn
    
$user getUser($conn"username"$username);

    
// Om användaren inte finns
    
if (!$user) {
        
header("Location: login.php");
        exit();
    }

    
// Kontrollera lösenord mot hash i databasen
    
if (password_verify($password$user['password_hash'])) {

        
// Skydd mot session fixation
        
session_regenerate_id(true);

        
// Spara användar-ID i sessionen
        
$_SESSION['id'] = $user['id'];

        
// Sätt giltighetstid för sessionen (1 timme)
        
$_SESSION['expires_at'] = time() + 3600;

        
header("Location: index.php");
        exit();
    } else {
        
// Fel lösenord
        
header("Location: login.php");
        exit();
    }
}

/* =========================
   Sidtitel
   ========================= */
$page_title "Logga in - Quizzeria";
?>

<!DOCTYPE html>
<html lang="sv">
<?php include("inc/head.php"); ?>
<body>

<?php include("inc/header.php"); ?>

<!-- =========================
     Inloggningsformulär
     ========================= -->
<form method="POST">
    <input type="text" name="username" placeholder="Användarnamn" required>
    <input type="password" name="password" placeholder="Lösenord" required>
    <input type="submit" value="Logga in">
</form>

<!-- =========================
     Länk till registrering
     ========================= -->
<p>Har du inget konto?
    <a href="register.php">Registrera konto här</a>
</p>

<?php include("inc/footer.php"); ?>

</body>
</html>