The following files exist in this folder. Click to view.
| Namn | Typ | Storlek |
|---|---|---|
| account.php | PHP Fil | 11.6 KB |
| admin.php | PHP Fil | 23.6 KB |
| authors.php | PHP Fil | 4.1 KB |
| book.php | PHP Fil | 5.9 KB |
| db_cnnt.php | PHP Fil | 407 B |
| header.php | PHP Fil | 1.7 KB |
| home.php | PHP Fil | 8.4 KB |
| index.php | PHP Fil | 5.3 KB |
| loan_handler.php | PHP Fil | 1.9 KB |
| manage_authors.php | PHP Fil | 4.7 KB |
| my_loans.php | PHP Fil | 6.9 KB |
| S.sql | SQL Fil | 3.3 KB |
| search.php | PHP Fil | 11 KB |
loan_handler.php55 lines UTF-8 Windows (CRLF) - Type: PHP Fil12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
<?php
session_start();
require_once 'db_cnnt.php';
global $pdo;
if (!isset($_SESSION['user_id'])) {
header('Location: index.php?noaccess=1');
exit;
}
if (!isset($_POST['book_id']) || empty($_POST['book_id'])) {
$_SESSION['loan_error'] = 'Ingen bok vald.';
header('Location: ' . ($_SERVER['HTTP_REFERER'] ?? 'home.php'));
exit;
}
$book_id = (int)$_POST['book_id'];
$user_id = $_SESSION['user_id'];
// raadi copy-ga (find available exemplar)
$statement = $pdo->prepare("SELECT exemplar_id FROM exemplar WHERE bok_id = ? AND status = 'available' LIMIT 1");
$statement->execute([$book_id]);
$exemplar = $statement->fetch();
if (!$exemplar) {
$_SESSION['loan_error'] = 'Ingen tillgänglig kopia av denna bok finns just nu.';
header('Location: ' . ($_SERVER['HTTP_REFERER'] ?? 'home.php'));
exit;
}
$exemplar_id = $exemplar['exemplar_id'];
// check if user already has this book
$statement = $pdo->prepare("SELECT COUNT(*) as count FROM lån l JOIN exemplar e ON l.exemplar_id = e.exemplar_id WHERE l.användare_id = ? AND e.bok_id = ? AND l.återlämnad_datum IS NULL");
$statement->execute([$user_id, $book_id]);
$existing = $statement->fetch();
if ($existing['count'] > 0) {
$_SESSION['loan_error'] = 'Du har redan lånat denna bok.';
header('Location: ' . ($_SERVER['HTTP_REFERER'] ?? 'home.php'));
exit;
}
// markera bok exemplen som utlånat
$statement = $pdo->prepare("UPDATE exemplar SET status = 'loaned' WHERE exemplar_id = ?");
$statement->execute([$exemplar_id]);
// 14 dagar lån
$statement = $pdo->prepare("INSERT INTO lån (exemplar_id, användare_id, lånedatum, förfallodatum) VALUES (?, ?, NOW(), DATE_ADD(NOW(), INTERVAL 14 DAY))");
$statement->execute([$exemplar_id, $user_id]);
$_SESSION['loan_success'] = 'Boken har lånats! Återlämnas senast ' . date('Y-m-d', strtotime('+14 days')) . '.';
header('Location: my_loans.php');
exit;