Show sourcecode
The following files exists in this folder. Click to view.
webbserverprogrammering/submissions/projekt-quiz/
README.md
admin/
create_admin.php
create_quiz.php
css/
dashboard.php
debug_questions.php
includes/
index.php
leaderboard.php
login.php
logout.php
my_results.php
quiz.php
quiz_result.php
register.php
sqlcredentials
login.php
105 lines UTF-8 Unix (LF)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
<?php
session_start();
require_once 'includes/db_connect.php';
// PROCESSERING (om formulär är skickat)
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = trim($_POST['username']);
$password = $_POST['password'];
$error = '';
// Validering
if (empty($username) || empty($password)) {
$error = "Både användarnamn och lösenord måste fyllas i.";
} else {
// Hämta användare från databas
$stmt = $pdo->prepare("
SELECT id, name, username, password, is_admin
FROM users
WHERE username = :username
");
$stmt->execute([':username' => $username]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
// Kontrollera lösenord
if ($user && password_verify($password, $user['password'])) {
// INLOGGNING LYCKADES!
// Uppdatera senaste inloggningstid
$stmt = $pdo->prepare("
UPDATE users
SET last_login = NOW()
WHERE id = :id
");
$stmt->execute([':id' => $user['id']]);
// Regenerera session ID (säkerhet)
session_regenerate_id(true);
// Spara i session
$_SESSION['user_id'] = $user['id'];
$_SESSION['username'] = $user['username'];
$_SESSION['name'] = $user['name'];
$_SESSION['logged_in'] = true;
// Omdirigera till dashboard
header("Location: dashboard.php");
exit();
} else {
$error = "Felaktigt användarnamn eller lösenord.";
}
}
}
$page_title = 'Logga in';
require_once 'includes/header.php';
?>
<div class="container">
<div class="login-box">
<h1>Logga in</h1>
<?php if (isset($error)): ?>
<div class="error-message">
<?php echo htmlspecialchars($error); ?>
</div>
<?php endif; ?>
<form method="POST" action="login.php">
<div class="form-group">
<label for="username">Användarnamn:</label>
<input
type="text"
id="username"
name="username"
value="<?php echo isset($_POST['username']) ? htmlspecialchars($_POST['username']) : ''; ?>"
required
>
</div>
<div class="form-group">
<label for="password">Lösenord:</label>
<input
type="password"
id="password"
name="password"
required
>
</div>
<button type="submit" class="btn btn-primary">Logga in</button>
</form>
<p class="register-link">
Inget konto? <a href="register.php">Registrera dig här</a>
</p>
</div>
</div>
<?php require_once 'includes/footer.php'; ?>