0% found this document useful (0 votes)
11 views9 pages

Lib Management

Uploaded by

vaishu123445
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views9 pages

Lib Management

Uploaded by

vaishu123445
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

###index.

php

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Library Management System</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<h1>Welcome to the Library Management System</h1>
<p>
<a href="login.php">Login</a> to manage your books.
</p>
<p>
<a href="register.php">Register</a> as a new user.
</p>
</body>
</html>

###login.php

<?php
session_start();
include 'db.php';

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = $_POST['username'];
$password = $_POST['password'];

$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username");


$stmt->execute(['username' => $username]);
$user = $stmt->fetch();

// Check for plain text password match


if ($user && $user['password'] === $password) {
$_SESSION['user_id'] = $user['id'];
$_SESSION['role'] = $user['role'];

// Redirect based on user role


if ($user['role'] === 'admin') {
header('Location: admin_dashboard.php');
} else {
header('Location: user_dashboard.php'); // Redirect to user dashboard
}
exit;
} else {
$error = "Invalid credentials!";
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Login</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<form method="POST">
<input type="text" name="username" placeholder="Username" required>
<input type="password" name="password" placeholder="Password" required>
<button type="submit">Login</button>
</form>
<?php if (isset($error)) echo "<p>$error</p>"; ?>
</body>
</html>

###logout.php

<?php
session_start();
session_unset(); // Unset all session variables
session_destroy(); // Destroy the session
header('Location: login.php'); // Redirect to login page
exit;
?>

###user_dashboard.php

<?php
session_start();
if (!isset($_SESSION['role']) || $_SESSION['role'] !== 'user') {
header('Location: login.php');
exit;
}

include 'db.php';

$user_id = $_SESSION['user_id'];

// Fetch availed books


$loans = $pdo->prepare("SELECT books.title FROM loans JOIN books ON loans.book_id =
books.id WHERE loans.user_id = :user_id");
$loans->execute(['user_id' => $user_id]);
$availed_books = $loans->fetchAll();

// Fetch available books


$available_books = $pdo->prepare("SELECT * FROM books WHERE available > 0");
$available_books->execute();
$books = $available_books->fetchAll();

// Handle availing a book


if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['avail'])) {
$book_id = $_POST['book_id'];

// Insert loan record


$stmt = $pdo->prepare("INSERT INTO loans (user_id, book_id) VALUES (:user_id,
:book_id)");
$stmt->execute(['user_id' => $user_id, 'book_id' => $book_id]);

// Decrease the available count


$updateBook = $pdo->prepare("UPDATE books SET available = available - 1 WHERE
id = :id");
$updateBook->execute(['id' => $book_id]);

// Refresh the page to show updated lists


header('Location: user_dashboard.php');
exit;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>User Dashboard</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<h1>User Dashboard</h1>
<h2>Availed Books</h2>
<ul>
<?php foreach ($availed_books as $book): ?>
<li><?= $book['title'] ?></li>
<?php endforeach; ?>
</ul>

<h2>Available Books</h2>
<form method="POST">
<select name="book_id" required>
<option value="">Select a book</option>
<?php foreach ($books as $book): ?>
<option value="<?= $book['id'] ?>"><?= $book['title'] ?> (Available:
<?= $book['available'] ?>)</option>
<?php endforeach; ?>
</select>
<button type="submit" name="avail">Avail Book</button>
</form>
<br/>
<br/>
<br/>
<br/>

<center>

<a href="logout.php">Log Out</a>

</center>
</body>
</html>

###admin_dashboard.php

<?php
session_start();
if (!isset($_SESSION['role']) || $_SESSION['role'] !== 'admin') {
header('Location: login.php');
exit;
}

include 'db.php';

// Handle book deletion


if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['delete'])) {
$book_id = $_POST['book_id'];
$deleteLoansStmt = $pdo->prepare("DELETE FROM loans WHERE book_id = :book_id");
$deleteLoansStmt->execute(['book_id' => $book_id]);

$stmt = $pdo->prepare("DELETE FROM books WHERE id = :id");


$stmt->execute(['id' => $book_id]);
}

// Handle adding a new book


if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['add'])) {
$title = $_POST['title'];
$author = $_POST['author'];
$available = $_POST['available'];

$stmt = $pdo->prepare("INSERT INTO books (title, author, available) VALUES


(:title, :author, :available)");
$stmt->execute(['title' => $title, 'author' => $author, 'available' =>
$available]);
}
// Handle updating an existing book
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['update'])) {
$book_id = $_POST['book_id'];
$title = $_POST['title'];
$author = $_POST['author'];
$available = $_POST['available'];

$stmt = $pdo->prepare("UPDATE books SET title = :title, author = :author,


available = :available WHERE id = :id");
$stmt->execute(['title' => $title, 'author' => $author, 'available' =>
$available, 'id' => $book_id]);
}

// Fetch all books


$books = $pdo->query("SELECT * FROM books")->fetchAll();

// Fetch loans with user information


$loans = $pdo->query("
SELECT users.username, books.title
FROM loans
JOIN users ON loans.user_id = users.id
JOIN books ON loans.book_id = books.id
")->fetchAll();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Admin Dashboard</title>
<link rel="stylesheet" href="styles.css">
<script>
function openUpdateModal(book) {
document.getElementById('updateBookId').value = book.id;
document.getElementById('updateTitle').value = book.title;
document.getElementById('updateAuthor').value = book.author;
document.getElementById('updateAvailable').value = book.available;
document.getElementById('updateModal').style.display = 'block';
}

function closeUpdateModal() {
document.getElementById('updateModal').style.display = 'none';
}
</script>
</head>
<body>
<h1>Admin Dashboard</h1>

<h2>Add New Book</h2>


<form method="POST">
<input type="text" name="title" placeholder="Book Title" required>
<input type="text" name="author" placeholder="Author" required>
<input type="number" name="available" placeholder="Available Copies"
required>
<button type="submit" name="add">Add Book</button>
</form>

<h2>Available Books</h2>
<table>
<tr>
<th>ID</th>
<th>Title</th>
<th>Author</th>
<th>Available</th>
<th>Actions</th>
</tr>
<?php foreach ($books as $book): ?>
<tr>
<td><?= $book['id'] ?></td>
<td><?= $book['title'] ?></td>
<td><?= $book['author'] ?></td>
<td><?= $book['available'] ?></td>
<td>
<button onclick='openUpdateModal(<?= json_encode($book)
?>)'>Update</button>
<form method="POST" style="display:inline;">
<input type="hidden" name="book_id" value="<?= $book['id'] ?>">
<button type="submit" name="delete">Delete</button>
</form>
</td>
</tr>
<?php endforeach; ?>
</table>

<!-- Update Book Modal -->


<div id="updateModal" style="display:none;">
<h2>Update Book</h2>
<form method="POST">
<input type="hidden" id="updateBookId" name="book_id">
<input type="text" id="updateTitle" name="title" placeholder="Book
Title" required>
<input type="text" id="updateAuthor" name="author" placeholder="Author"
required>
<input type="number" id="updateAvailable" name="available"
placeholder="Available Copies" required>
<button type="submit" name="update">Update Book</button>
<button type="button" onclick="closeUpdateModal()">Cancel</button>
</form>
</div>

<h2>Availed Books by Users</h2>


<table>
<tr>
<th>Username</th>
<th>Book Title</th>
</tr>
<?php foreach ($loans as $loan): ?>
<tr>
<td><?= $loan['username'] ?></td>
<td><?= $loan['title'] ?></td>
</tr>
<?php endforeach; ?>
</table>

<br/><br/><br/><br/>
<center>
<a href="logout.php">Log Out</a>
</center>
</body>
</html>

###avail_book.php

<?php
session_start();
if (!isset($_SESSION['role']) || $_SESSION['role'] !== 'user') {
header('Location: login.php');
exit;
}

include 'db.php';

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$book_id = $_POST['book_id'];
$user_id = $_SESSION['user_id'];

$stmt = $pdo->prepare("INSERT INTO loans (user_id, book_id) VALUES (:user_id,


:book_id)");
$stmt->execute(['user_id' => $user_id, 'book_id' => $book_id]);
}

$books = $pdo->query("SELECT * FROM books WHERE available > 0")->fetchAll();


?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Avail Books</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<h1>Avail Books</h1>
<table>
<tr>
<th>ID</th>
<th>Title</th>
<th>Author</th>
<th>Action</th>
</tr>
<?php foreach ($books as $book): ?>
<tr>
<td><?= $book['id'] ?></td>
<td><?= $book['title'] ?></td>
<td><?= $book['author'] ?></td>
<td>
<form method="POST">
<input type="hidden" name="book_id" value="<?= $book['id'] ?>">
<button type="submit">Avail</button>
</form>
</td>
</tr>
<?php endforeach; ?>
</table>
</body>
</html>

###db.php

<?php
$host = 'localhost';
$dbname = 'library_management';
$user = 'root'; // update with your database user
$pass = 'root'; // update with your database password
$port = 3307;

try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname;port=$port", $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Could not connect to the database $dbname :" . $e->getMessage());
}
?>

###style.css

body {
font-family: Arial, sans-serif;
margin: 20px;
/*background-image:
url('https://t4.ftcdn.net/jpg/05/58/48/45/360_F_558484537_vyuk2C23spArvlDHWFv8Z9rTq
zpMJk3t.jpg');*/
background-color: #5B99C2;
/* Update the path to your image */
background-size: cover; /* Cover the entire body */
background-position: center; /* Center the image */
background-repeat: no-repeat; /* Prevent the image from repeating */
color: white; /* Optional: Change text color for better visibility */
}

form {
margin-bottom: 20px;
}

input[type="text"],
input[type="password"] {
padding: 10px;
margin: 5px;
}

button {
padding: 10px;
}

table {
width: 100%;
border-collapse: collapse;
}

th, td {
border: 1px solid #ddd;
padding: 8px;
}

th {
background-color: rgba(255, 255, 255, 0.8); /* Slightly transparent white for
better visibility */
}

You might also like