Källkodsbrowser

login.php

43 lines UTF-8 Unix (LF)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
session_start
(); // Starta sessionen
$username trim($_POST['username'] ?? '');
$password trim($_POST['password'] ?? '');

require 
'db_connect.php';

$validUser false;

try {
    
// Hämta användardata baserat på cus_name (som är användarnamnet)
    
$stmt $pdo->prepare("SELECT cus_id, cus_pass, cus_roll, cus_name FROM customer WHERE cus_name = ?");
    
$stmt->execute([$username]);
    
$user $stmt->fetch();

    if (
$user && password_verify($password$user['cus_pass'])) {
        
// Om användaren hittas och lösenordet matchar
        
$validUser true;
        
        
// Sätt sessionsvariabler
        
$_SESSION['logged_in'] = true;
        
$_SESSION['user_id'] = $user['cus_id']; // Lagra ID istället för bara namn
        
$_SESSION['username'] = $user['cus_name'];
        
$_SESSION['role'] = $user['cus_roll'];

        
// Omdirigera till startsidan (som nu blir bookstore-sidan)
        
header("Location: index.php");
        exit();
    }
} catch (
\PDOException $e) {
    
// Hantera databasfel
    
error_log("Database error in login: " $e->getMessage());
    
header("Location: login_form.php?msg=Ett fel uppstod vid inloggning.");
    exit();
}

// Om användaren inte finns, skicka tillbaka med felmeddelande
if (!$validUser) {
    
header("Location: login_form.php?msg=Fel användarnamn eller lösenord!");
    exit();
}
?>