mirror of
https://github.com/Alvin-Zilverstand/Spik-en-span.git
synced 2026-03-06 13:26:49 +01:00
Fix redirect URL in process_login.php, update login form submission handling, and enhance QR scanner UI
This commit is contained in:
@@ -45,7 +45,7 @@ document.getElementById('loginForm').addEventListener('submit', function (e) {
|
|||||||
|
|
||||||
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';
|
||||||
} else {
|
} else {
|
||||||
alert('Ongeldige inloggegevens.');
|
alert('Ongeldige inloggegevens.');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ try {
|
|||||||
// 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;
|
||||||
header("Location: ../qr/qr.html"); // Redirect to the QR scanner page
|
header("Location: "); // Redirect to the QR scanner page
|
||||||
exit();
|
exit();
|
||||||
} else {
|
} else {
|
||||||
// Redirect back to login page with an error message
|
// Redirect back to login page with an error message
|
||||||
|
|||||||
@@ -1,56 +1,42 @@
|
|||||||
const video = document.createElement("video");
|
const btnScanQR = document.getElementById('btn-scan-qr');
|
||||||
const canvasElement = document.getElementById("qr-canvas");
|
const qrCanvas = document.getElementById('qr-canvas');
|
||||||
const canvas = canvasElement.getContext("2d");
|
const qrResult = document.getElementById('qr-result');
|
||||||
|
const outputData = document.getElementById('outputData');
|
||||||
|
|
||||||
const qrResult = document.getElementById("qr-result");
|
btnScanQR.addEventListener('click', () => {
|
||||||
const outputData = document.getElementById("outputData");
|
qrCanvas.hidden = false;
|
||||||
const btnScanQR = document.getElementById("btn-scan-qr");
|
|
||||||
|
|
||||||
let scanning = false;
|
|
||||||
|
|
||||||
qrcode.callback = res => {
|
|
||||||
if (res) {
|
|
||||||
outputData.innerText = res;
|
|
||||||
scanning = false;
|
|
||||||
|
|
||||||
video.srcObject.getTracks().forEach(track => {
|
|
||||||
track.stop();
|
|
||||||
});
|
|
||||||
|
|
||||||
qrResult.hidden = false;
|
|
||||||
canvasElement.hidden = true;
|
|
||||||
btnScanQR.hidden = false;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
btnScanQR.onclick = () => {
|
|
||||||
navigator.mediaDevices
|
|
||||||
.getUserMedia({ video: { facingMode: "environment" } })
|
|
||||||
.then(function(stream) {
|
|
||||||
scanning = true;
|
|
||||||
qrResult.hidden = true;
|
qrResult.hidden = true;
|
||||||
btnScanQR.hidden = true;
|
|
||||||
canvasElement.hidden = false;
|
const context = qrCanvas.getContext('2d');
|
||||||
video.setAttribute("playsinline", true); // required to tell iOS safari we don't want fullscreen
|
navigator.mediaDevices.getUserMedia({ video: { facingMode: 'environment' } })
|
||||||
|
.then((stream) => {
|
||||||
|
const video = document.createElement('video');
|
||||||
video.srcObject = stream;
|
video.srcObject = stream;
|
||||||
|
video.setAttribute('playsinline', true); // Required to work on iOS
|
||||||
video.play();
|
video.play();
|
||||||
tick();
|
|
||||||
scan();
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
function tick() {
|
const scan = () => {
|
||||||
canvasElement.height = video.videoHeight;
|
if (video.readyState === video.HAVE_ENOUGH_DATA) {
|
||||||
canvasElement.width = video.videoWidth;
|
qrCanvas.height = video.videoHeight;
|
||||||
canvas.drawImage(video, 0, 0, canvasElement.width, canvasElement.height);
|
qrCanvas.width = video.videoWidth;
|
||||||
|
context.drawImage(video, 0, 0, qrCanvas.width, qrCanvas.height);
|
||||||
|
|
||||||
scanning && requestAnimationFrame(tick);
|
|
||||||
}
|
|
||||||
|
|
||||||
function scan() {
|
|
||||||
try {
|
try {
|
||||||
qrcode.decode();
|
const qrCodeData = qrcode.decode();
|
||||||
|
outputData.innerText = qrCodeData;
|
||||||
|
qrResult.hidden = false;
|
||||||
|
qrCanvas.hidden = true;
|
||||||
|
stream.getTracks().forEach(track => track.stop());
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
setTimeout(scan, 300);
|
requestAnimationFrame(scan);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
|
requestAnimationFrame(scan);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
scan();
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.error('Error accessing camera:', err);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|||||||
@@ -29,6 +29,10 @@ html {
|
|||||||
|
|
||||||
#btn-scan-qr {
|
#btn-scan-qr {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
height: 75vh; /* Full viewport height for vertical centering */
|
||||||
}
|
}
|
||||||
|
|
||||||
#btn-scan-qr img {
|
#btn-scan-qr img {
|
||||||
@@ -36,6 +40,7 @@ html {
|
|||||||
padding: 15px;
|
padding: 15px;
|
||||||
margin: 15px;
|
margin: 15px;
|
||||||
background: white;
|
background: white;
|
||||||
|
border-radius: 10px; /* Optional: Add rounded corners */
|
||||||
}
|
}
|
||||||
|
|
||||||
#qr-result {
|
#qr-result {
|
||||||
@@ -45,4 +50,3 @@ html {
|
|||||||
max-width: 700px;
|
max-width: 700px;
|
||||||
background-color: white;
|
background-color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user