mirror of
https://github.com/Alvin-Zilverstand/Spik-en-span.git
synced 2026-03-06 11:17:09 +01:00
Update navigation links to point to employee-login.php and enhance login error handling
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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
78
employee-login.php
Normal 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>
|
||||||
@@ -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>
|
||||||
|
|||||||
18
js/script.js
18
js/script.js
@@ -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, {
|
||||||
@@ -22,25 +22,27 @@ 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();
|
||||||
|
|
||||||
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';
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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);
|
||||||
$stmt->bind_param("s", $username);
|
if ($stmt) {
|
||||||
$stmt->execute();
|
$stmt->bind_param("s", $username);
|
||||||
$stmt->bind_result($user_id, $password_hash);
|
$stmt->execute();
|
||||||
$stmt->fetch();
|
$stmt->bind_result($user_id, $password_hash);
|
||||||
|
$stmt->fetch();
|
||||||
|
} else {
|
||||||
|
header("Location: ../employee-login.html?error=server_error");
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
if ($password_hash && password_verify($password, $password_hash)) {
|
try {
|
||||||
|
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
|
||||||
} else {
|
exit();
|
||||||
echo "Invalid login credentials.";
|
} else {
|
||||||
|
// Redirect back to login page with an error message
|
||||||
|
header("Location: ../employee-login.html?error=invalid_credentials");
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
$stmt->close();
|
||||||
|
$conn->close();
|
||||||
}
|
}
|
||||||
|
|
||||||
$stmt->close();
|
|
||||||
$conn->close();
|
|
||||||
?>
|
?>
|
||||||
Reference in New Issue
Block a user