Update navigation links to point to employee-login.php and enhance login error handling

This commit is contained in:
vista-man
2025-04-10 17:13:49 +02:00
parent d5779156d2
commit c7300a2b0a
12 changed files with 168 additions and 74 deletions

View File

@@ -42,7 +42,7 @@
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" href="employee-login.html"> <a class="nav-link active" href="employee-login.php">
Medewerkers Medewerkers
</a> </a>
</li> </li>

View File

@@ -57,7 +57,7 @@
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" href="employee-login.html"> <a class="nav-link active" href="employee-login.php">
Medewerkers Medewerkers
</a> </a>
</li> </li>

View File

@@ -52,7 +52,12 @@
<div class="container mt-5"> <div class="container mt-5">
<h1 class="text-center">Medewerker Login</h1> <h1 class="text-center">Medewerker Login</h1>
<form id="loginForm" action="process_login.php" method="POST" class="mt-4"> <?php if (isset($_GET['error']) && $_GET['error'] === 'invalid_credentials'): ?>
<div class="alert alert-danger text-center" role="alert">
Ongeldige inloggegevens. Probeer het opnieuw.
</div>
<?php endif; ?>
<form id="loginForm" action="php/process_login.php" method="POST" class="mt-4">
<div class="mb-3"> <div class="mb-3">
<label for="username" class="form-label">Gebruikersnaam</label> <label for="username" class="form-label">Gebruikersnaam</label>
<input type="text" id="username" name="username" class="form-control" required> <input type="text" id="username" name="username" class="form-control" required>

78
employee-login.php Normal file
View File

@@ -0,0 +1,78 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Medewerker Login</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<nav class="navbar navbar-expand-lg bg-body-tertiary">
<div class="container-fluid">
<a class="navbar-brand" href="index.html">
<img src="assets/favicon.ico" alt="Bootstrap" width="30" height="24">
Spik & Span
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="index.html">
Home
</a>
</li>
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="bestellen.html">
Tickets Bestellen</a>
</li>
<li class="nav-item">
<a class="nav-link active" href="contact.html">
Contact
</a>
</li>
<li class="nav-item">
<a class="nav-link active" href="over-ons.html">
Over Ons
</a>
</li>
<li class="nav-item">
<a class="nav-link active" href="employee-login.php">
Medewerkers
</a>
</li>
</ul>
</div>
</div>
</nav>
<div class="container mt-5">
<h1 class="text-center">Medewerker Login</h1>
<?php if (isset($_GET['error']) && $_GET['error'] === 'invalid_credentials'): ?>
<div class="alert alert-danger text-center" role="alert">
Ongeldige inloggegevens. Probeer het opnieuw.
</div>
<?php endif; ?>
<form id="loginForm" action="php/process_login.php" method="POST" class="mt-4">
<div class="mb-3">
<label for="username" class="form-label">Gebruikersnaam</label>
<input type="text" id="username" name="username" class="form-control" required>
</div>
<div class="mb-3">
<label for="password" class="form-label">Wachtwoord</label>
<input type="password" id="password" name="password" class="form-control" required>
</div>
<button type="submit" class="btn btn-primary">Inloggen</button>
</form>
</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<script src="js/script.js"></script>
</html>

View File

@@ -42,7 +42,7 @@
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" href="employee-login.html"> <a class="nav-link active" href="employee-login.php">
Medewerkers Medewerkers
</a> </a>
</li> </li>

View File

@@ -1,4 +1,7 @@
document.getElementById('ticketForm').addEventListener('submit', function (e) { // Check if the ticket form exists before adding an event listener
const ticketForm = document.getElementById('ticketForm');
if (ticketForm) {
ticketForm.addEventListener('submit', function (e) {
e.preventDefault(); e.preventDefault();
const name = document.getElementById('name').value; const name = document.getElementById('name').value;
@@ -6,13 +9,10 @@ document.getElementById('ticketForm').addEventListener('submit', function (e) {
const category = document.getElementById('ticketCategory').value; const category = document.getElementById('ticketCategory').value;
const quantity = document.getElementById('ticketQuantity').value; const quantity = document.getElementById('ticketQuantity').value;
const ticketId = `TICKET-${Date.now()}`; const ticketId = `TICKET-${Date.now()}`;
const qrContent = `Name: ${name}, Email: ${email}, Category: ${category}, Quantity: ${quantity}, Ticket ID: ${ticketId}`; const qrContent = `Name: ${name}, Email: ${email}, Category: ${category}, Quantity: ${quantity}, Ticket ID: ${ticketId}`;
const qrCodeContainer = document.getElementById('qrCodeContainer'); const qrCodeContainer = document.getElementById('qrCodeContainer');
qrCodeContainer.innerHTML = ''; qrCodeContainer.innerHTML = '';
const qrCode = new QRCode(qrCodeContainer, { const qrCode = new QRCode(qrCodeContainer, {
@@ -23,16 +23,19 @@ document.getElementById('ticketForm').addEventListener('submit', function (e) {
alert('Ticket(s) successfully generated!'); alert('Ticket(s) successfully generated!');
}); });
}
// Function to toggle video playback
function toggleVideo() { function toggleVideo() {
const video = document.getElementById('myVideo'); const video = document.getElementById('myVideo');
if (video) {
if (video.paused) { if (video.paused) {
video.play(); video.play();
} else { } else {
video.pause(); video.pause();
} }
} }
}
document.getElementById('loginForm').addEventListener('submit', function (e) { document.getElementById('loginForm').addEventListener('submit', function (e) {
e.preventDefault(); e.preventDefault();
@@ -40,7 +43,6 @@ function toggleVideo() {
const username = document.getElementById('username').value; const username = document.getElementById('username').value;
const password = document.getElementById('password').value; const password = document.getElementById('password').value;
if (username === 'admin' && password === 'password') { if (username === 'admin' && password === 'password') {
alert('Succesvol ingelogd!'); alert('Succesvol ingelogd!');
window.location.href = '../qr/qr.html'; window.location.href = '../qr/qr.html';

View File

@@ -13,7 +13,7 @@
<nav class="navbar navbar-expand-lg bg-body-tertiary"> <nav class="navbar navbar-expand-lg bg-body-tertiary">
<div class="container-fluid"> <div class="container-fluid">
<a class="navbar-brand" href="index.html"> <a class="navbar-brand" href="../index.html">
<img src="../assets/favicon.ico" alt="Bootstrap" width="30" height="24"> <img src="../assets/favicon.ico" alt="Bootstrap" width="30" height="24">
Spik & Span Spik & Span
</a> </a>
@@ -23,26 +23,26 @@
<div class="collapse navbar-collapse" id="navbarNav"> <div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav"> <ul class="navbar-nav">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" aria-current="page" href="index.html"> <a class="nav-link active" aria-current="page" href="../index.html">
Home Home
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" aria-current="page" href="bestellen.html"> <a class="nav-link active" aria-current="page" href="../bestellen.html">
Tickets Bestellen</a> Tickets Bestellen</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" href="contact.html"> <a class="nav-link active" href="../contact.html">
Contact Contact
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" href="over-ons.html"> <a class="nav-link active" href="../over-ons.html">
Over Ons Over Ons
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" href="employee-login.html"> <a class="nav-link active" href="../employee-login.php">
Medewerkers Medewerkers
</a> </a>
</li> </li>

View File

@@ -13,7 +13,7 @@
<nav class="navbar navbar-expand-lg bg-body-tertiary"> <nav class="navbar navbar-expand-lg bg-body-tertiary">
<div class="container-fluid"> <div class="container-fluid">
<a class="navbar-brand" href="index.html"> <a class="navbar-brand" href="../index.html">
<img src="../assets/favicon.ico" alt="Bootstrap" width="30" height="24"> <img src="../assets/favicon.ico" alt="Bootstrap" width="30" height="24">
Spik & Span Spik & Span
</a> </a>
@@ -23,26 +23,26 @@
<div class="collapse navbar-collapse" id="navbarNav"> <div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav"> <ul class="navbar-nav">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" aria-current="page" href="index.html"> <a class="nav-link active" aria-current="page" href="../index.html">
Home Home
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" aria-current="page" href="bestellen.html"> <a class="nav-link active" aria-current="page" href="../bestellen.html">
Tickets Bestellen</a> Tickets Bestellen</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" href="contact.html"> <a class="nav-link active" href="../contact.html">
Contact Contact
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" href="over-ons.html"> <a class="nav-link active" href="../over-ons.html">
Over Ons Over Ons
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" href="employee-login.html"> <a class="nav-link active" href="../employee-login.php">
Medewerkers Medewerkers
</a> </a>
</li> </li>

View File

@@ -13,7 +13,7 @@
<nav class="navbar navbar-expand-lg bg-body-tertiary"> <nav class="navbar navbar-expand-lg bg-body-tertiary">
<div class="container-fluid"> <div class="container-fluid">
<a class="navbar-brand" href="index.html"> <a class="navbar-brand" href="../index.html">
<img src="../assets/favicon.ico" alt="Bootstrap" width="30" height="24"> <img src="../assets/favicon.ico" alt="Bootstrap" width="30" height="24">
Spik & Span Spik & Span
</a> </a>
@@ -23,26 +23,26 @@
<div class="collapse navbar-collapse" id="navbarNav"> <div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav"> <ul class="navbar-nav">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" aria-current="page" href="index.html"> <a class="nav-link active" aria-current="page" href="../index.html">
Home Home
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" aria-current="page" href="bestellen.html"> <a class="nav-link active" aria-current="page" href="../bestellen.html">
Tickets Bestellen</a> Tickets Bestellen</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" href="contact.html"> <a class="nav-link active" href="../contact.html">
Contact Contact
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" href="over-ons.html"> <a class="nav-link active" href="../over-ons.html">
Over Ons Over Ons
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" href="employee-login.html"> <a class="nav-link active" href="../employee-login.php">
Medewerkers Medewerkers
</a> </a>
</li> </li>

View File

@@ -13,7 +13,7 @@
<nav class="navbar navbar-expand-lg bg-body-tertiary"> <nav class="navbar navbar-expand-lg bg-body-tertiary">
<div class="container-fluid"> <div class="container-fluid">
<a class="navbar-brand" href="index.html"> <a class="navbar-brand" href="../index.html">
<img src="../assets/favicon.ico" alt="Bootstrap" width="30" height="24"> <img src="../assets/favicon.ico" alt="Bootstrap" width="30" height="24">
Spik & Span Spik & Span
</a> </a>
@@ -23,26 +23,26 @@
<div class="collapse navbar-collapse" id="navbarNav"> <div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav"> <ul class="navbar-nav">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" aria-current="page" href="index.html"> <a class="nav-link active" aria-current="page" href="../index.html">
Home Home
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" aria-current="page" href="bestellen.html"> <a class="nav-link active" aria-current="page" href="../bestellen.html">
Tickets Bestellen</a> Tickets Bestellen</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" href="contact.html"> <a class="nav-link active" href="../contact.html">
Contact Contact
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" href="over-ons.html"> <a class="nav-link active" href="../over-ons.html">
Over Ons Over Ons
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" href="employee-login.html"> <a class="nav-link active" href="../employee-login.php">
Medewerkers Medewerkers
</a> </a>
</li> </li>

View File

@@ -50,7 +50,7 @@
<a class="nav-link active" href="over-ons.html">Over Ons</a> <a class="nav-link active" href="over-ons.html">Over Ons</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" href="employee-login.html">Medewerkers</a> <a class="nav-link active" href="employee-login.php">Medewerkers</a>
</li> </li>
</ul> </ul>
</div> </div>

View File

@@ -14,27 +14,36 @@ if ($conn->connect_error) {
} }
// Retrieve form data // Retrieve form data
$username = $_POST['username']; $username = isset($_POST['username']) ? trim(htmlspecialchars($_POST['username'])) : '';
$password = $_POST['password']; $password = isset($_POST['password']) ? trim(htmlspecialchars($_POST['password'])) : '';
// Validate credentials // Validate credentials
$sql = "SELECT id, password_hash FROM employees WHERE username = ?"; $sql = "SELECT id, password_hash FROM employees WHERE username = ?";
$stmt = $conn->prepare($sql); $stmt = $conn->prepare($sql);
if ($stmt) {
$stmt->bind_param("s", $username); $stmt->bind_param("s", $username);
$stmt->execute(); $stmt->execute();
$stmt->bind_result($user_id, $password_hash); $stmt->bind_result($user_id, $password_hash);
$stmt->fetch(); $stmt->fetch();
} else {
header("Location: ../employee-login.html?error=server_error");
exit();
}
try {
if ($password_hash && password_verify($password, $password_hash)) { if ($password_hash && password_verify($password, $password_hash)) {
// Start session and store user ID // Start session and store user ID
session_start(); session_start();
$_SESSION['user_id'] = $user_id; $_SESSION['user_id'] = $user_id;
echo "Login successful!";
header("Location: ../qr/qr.html"); // Redirect to QR scanner page header("Location: ../qr/qr.html"); // Redirect to QR scanner page
exit();
} else { } else {
echo "Invalid login credentials."; // Redirect back to login page with an error message
header("Location: ../employee-login.html?error=invalid_credentials");
exit();
} }
} finally {
$stmt->close(); $stmt->close();
$conn->close(); $conn->close();
}
?> ?>