Fix issues with register page and captcha on both login and register page
This commit is contained in:
1 parent
e63e596830
commit
f33c3ec72c
4 files changed
+115
-105
No files matched your search
+11
-1
@@ -3,7 +3,7 @@
|
|||||||
-- https://www.phpmyadmin.net/
|
-- https://www.phpmyadmin.net/
|
||||||
--
|
--
|
||||||
-- Host: 127.0.0.1:3306
|
-- Host: 127.0.0.1:3306
|
||||||
-- Generation Time: Mar 03, 2025 at 09:59 PM
|
-- Generation Time: Mar 03, 2025 at 11:34 PM
|
||||||
-- Server version: 11.4.3-MariaDB-1
|
-- Server version: 11.4.3-MariaDB-1
|
||||||
-- PHP Version: 8.3.11
|
-- PHP Version: 8.3.11
|
||||||
|
|
||||||
@@ -144,6 +144,16 @@ ALTER TABLE `users`
|
|||||||
--
|
--
|
||||||
ALTER TABLE `warnings`
|
ALTER TABLE `warnings`
|
||||||
ADD PRIMARY KEY (`id`);
|
ADD PRIMARY KEY (`id`);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- AUTO_INCREMENT for dumped tables
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- AUTO_INCREMENT for table `users`
|
||||||
|
--
|
||||||
|
ALTER TABLE `users`
|
||||||
|
MODIFY `uid` int(11) NOT NULL AUTO_INCREMENT;
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||||
|
|||||||
@@ -215,8 +215,10 @@ if ($result->num_rows > 0) {
|
|||||||
echo json_encode($response);
|
echo json_encode($response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$register_time = time();
|
||||||
|
|
||||||
$stmt = $conn->prepare("INSERT INTO users (username, password, email, api_key, emailconfirm, register_time) VALUES (?, ?, ?, ?, ?, ?)");
|
$stmt = $conn->prepare("INSERT INTO users (username, password, email, api_key, emailconfirm, register_time) VALUES (?, ?, ?, ?, ?, ?)");
|
||||||
$stmt->bind_param("ssssssi", $request_username, $hashed_password, $request_email, $api_key, $emailconfirm, time());
|
$stmt->bind_param("sssssi", $request_username, $hashed_password, $request_email, $api_key, $emailconfirm, $register_time);
|
||||||
$stmt->execute();
|
$stmt->execute();
|
||||||
|
|
||||||
$response = [
|
$response = [
|
||||||
|
|||||||
@@ -197,6 +197,7 @@ if (isset($_COOKIE['session'])) {
|
|||||||
} else {
|
} else {
|
||||||
var response = JSON.parse(xhr.responseText);
|
var response = JSON.parse(xhr.responseText);
|
||||||
alert(response.response + ' (' + xhr.status + ')');
|
alert(response.response + ' (' + xhr.status + ')');
|
||||||
|
document.querySelector('.cf-turnstile').innerHTML = '';
|
||||||
captcha_token = '';
|
captcha_token = '';
|
||||||
turnstile.render('.cf-turnstile', {
|
turnstile.render('.cf-turnstile', {
|
||||||
sitekey: '<?= $captcha_sitekey ?>',
|
sitekey: '<?= $captcha_sitekey ?>',
|
||||||
|
|||||||
+100
-103
@@ -13,13 +13,16 @@ if (isset($_COOKIE['session'])) {
|
|||||||
?>
|
?>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>Login Page</title>
|
<title>Login Page</title>
|
||||||
<link rel="icon" href="/assets/logo.png" type="image/png">
|
<link rel="icon" href="/assets/logo.png" type="image/png">
|
||||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Lexend:wght@100..900&display=swap">
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Lexend:wght@100..900&display=swap">
|
||||||
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit&onload=onloadTurnstileCallback" async defer></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
|
||||||
|
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit&onload=onloadTurnstileCallback"
|
||||||
|
async defer></script>
|
||||||
<style>
|
<style>
|
||||||
body {
|
body {
|
||||||
background-color: #1f1f1f;
|
background-color: #1f1f1f;
|
||||||
@@ -68,7 +71,71 @@ if (isset($_COOKIE['session'])) {
|
|||||||
transform: scale(1.08);
|
transform: scale(1.08);
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type="text"], input[type="password"] {
|
#topic-container {
|
||||||
|
text-align: left;
|
||||||
|
max-width: 600px;
|
||||||
|
margin-top: 10vh;
|
||||||
|
transition: margin-top 0.5s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.topic-wrapper {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-around;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.topic-box {
|
||||||
|
flex: 0 0 30%;
|
||||||
|
width: 320px;
|
||||||
|
border: 2px solid #3c076e;
|
||||||
|
margin: 10px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
padding: 15px;
|
||||||
|
border-radius: 10px;
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
transition: transform 0.3s ease;
|
||||||
|
background: #1B1B1B;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.topic-icon {
|
||||||
|
background-color: #3c076e;
|
||||||
|
padding: 10px;
|
||||||
|
border-radius: 50%;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.topic-text {
|
||||||
|
color: #fff;
|
||||||
|
font-size: 18px;
|
||||||
|
text-shadow: 1px 1px 2px #000;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.topic-text:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.topic-box:hover .topic-text {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.topic-box:hover {
|
||||||
|
transform: scale(1.02);
|
||||||
|
}
|
||||||
|
|
||||||
|
.topic-description {
|
||||||
|
color: #fff;
|
||||||
|
font-size: 18px;
|
||||||
|
text-shadow: 1px 1px 2px #000;
|
||||||
|
transition: transform 0.3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="text"],
|
||||||
|
input[type="password"] {
|
||||||
display: block;
|
display: block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
@@ -80,16 +147,13 @@ if (isset($_COOKIE['session'])) {
|
|||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type="text"]::placeholder, input[type="password"]::placeholder {
|
input[type="text"]::placeholder,
|
||||||
|
input[type="password"]::placeholder {
|
||||||
color: #aaa;
|
color: #aaa;
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div id="main-container">
|
<div id="main-container">
|
||||||
<h1>Welcome!</h1>
|
<h1>Welcome!</h1>
|
||||||
@@ -103,123 +167,56 @@ if (isset($_COOKIE['session'])) {
|
|||||||
</form>
|
</form>
|
||||||
<a id="btn" href="/dashboard/login.php">Already have an account?</a>
|
<a id="btn" href="/dashboard/login.php">Already have an account?</a>
|
||||||
</div>
|
</div>
|
||||||
<div id="check-email" style="display: none; text-align: center;">
|
|
||||||
<h1>Check your email</h1>
|
|
||||||
<p>We sent an email to confirm your email address.</p>
|
|
||||||
<p id="email-sender" style="display: none;"></p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
let captcha_token = '';
|
let captcha_token = ''
|
||||||
|
|
||||||
window.onloadTurnstileCallback = function () {
|
window.onloadTurnstileCallback = function () {
|
||||||
turnstile.render('.cf-turnstile', {
|
turnstile.render('.cf-turnstile', {
|
||||||
sitekey: '<?= $captcha_sitekey ?>',
|
sitekey: '<?= $captcha_sitekey ?>',
|
||||||
callback: function (token) {
|
callback: function (token) {
|
||||||
captcha_token = token;
|
captcha_token = token
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
$(document).ready(function () {
|
$('#loginForm').on('submit', function (event) {
|
||||||
$('#loginForm').on('submit', function (event) {
|
event.preventDefault();
|
||||||
event.preventDefault();
|
|
||||||
|
|
||||||
var email = $('#email').val();
|
if (captcha_token === '') {
|
||||||
var username = $('#username').val();
|
alert("Complete the captcha");
|
||||||
var password = $('#password').val();
|
return
|
||||||
|
}
|
||||||
|
|
||||||
$.ajax({
|
var email = $('#email').val();
|
||||||
type: "POST",
|
var username = $('#username').val();
|
||||||
url: '../../api/registerAccount.php',
|
var password = $('#password').val();
|
||||||
data: { email: email, username: username, password: password, captcha_token: captcha_token },
|
$.ajax({
|
||||||
success: function (data, textStatus, xhr) {
|
type: "POST",
|
||||||
console.log(data, xhr.status);
|
url: '../../api/registerAccount.php',
|
||||||
try {
|
data: { email: email, username: username, password: password, captcha_token: captcha_token },
|
||||||
var parts = email.split('@');
|
complete: function (xhr, textStatus) {
|
||||||
var domain = parts[1];
|
if (xhr.status === 200) {
|
||||||
|
var response = JSON.parse(xhr.responseText);
|
||||||
var emailProviders = {
|
window.location.href = '/dashboard/login.php';
|
||||||
'gmail.com': 'mail.google.com',
|
var date = new Date();
|
||||||
'yahoo.com': 'mail.yahoo.com',
|
date.setTime(date.getTime() + (3 * 24 * 60 * 60 * 1000));
|
||||||
'hotmail.com': 'mail.live.com',
|
var expires = "; expires=" + date.toGMTString();
|
||||||
'outlook.com': 'outlook.live.com',
|
document.cookie = "session=" + response.session + expires + "; path=/";
|
||||||
'aol.com': 'mail.aol.com',
|
} else {
|
||||||
'icloud.com': 'icloud.com',
|
|
||||||
'protonmail.com': 'protonmail.com',
|
|
||||||
'mail.com': 'mail.com',
|
|
||||||
'zoho.com': 'zoho.com',
|
|
||||||
'yandex.com': 'mail.yandex.com',
|
|
||||||
'live.com': 'mail.live.com',
|
|
||||||
'inbox.com': 'inbox.com',
|
|
||||||
'fastmail.com': 'fastmail.com',
|
|
||||||
'gmx.com': 'mail.gmx.com',
|
|
||||||
'rocketmail.com': 'mail.yahoo.com',
|
|
||||||
'mail.ru': 'mail.ru',
|
|
||||||
'naver.com': 'mail.naver.com',
|
|
||||||
'rediffmail.com': 'mail.rediff.com',
|
|
||||||
'tutanota.com': 'tutanota.com',
|
|
||||||
'seznam.cz': 'email.seznam.cz',
|
|
||||||
'me.com': 'me.com',
|
|
||||||
'cox.net': 'webmail.cox.net',
|
|
||||||
'sbcglobal.net': 'att.yahoo.com',
|
|
||||||
'att.net': 'att.yahoo.com',
|
|
||||||
'verizon.net': 'mail.aol.com',
|
|
||||||
'earthlink.net': 'webmail.earthlink.net',
|
|
||||||
'optonline.net': 'mail.optimum.net',
|
|
||||||
'roadrunner.com': 'webmail.spectrum.net',
|
|
||||||
'windstream.net': 'windstream.net',
|
|
||||||
'juno.com': 'webmail.juno.com',
|
|
||||||
'aim.com': 'mail.aol.com',
|
|
||||||
'mailinator.com': 'mailinator.com',
|
|
||||||
'comcast.net': 'xfinity.com',
|
|
||||||
'bellsouth.net': 'mail.yahoo.com',
|
|
||||||
'charter.net': 'spectrum.net',
|
|
||||||
'frontier.com': 'frontier.com',
|
|
||||||
'centurylink.net': 'centurylink.net',
|
|
||||||
'shaw.ca': 'webmail.shaw.ca',
|
|
||||||
'telus.net': 'webmail.telus.net',
|
|
||||||
'sympatico.ca': 'bell.net',
|
|
||||||
'rogers.com': 'rogers.com',
|
|
||||||
'videotron.ca': 'webmail.videotron.ca',
|
|
||||||
'hotmail.co.uk': 'mail.live.com',
|
|
||||||
'yahoo.co.uk': 'mail.yahoo.com',
|
|
||||||
'live.co.uk': 'mail.live.com',
|
|
||||||
'outlook.co.uk': 'outlook.live.com',
|
|
||||||
'btinternet.com': 'mail.yahoo.com',
|
|
||||||
'blueyonder.co.uk': 'blueyonder.co.uk',
|
|
||||||
'talktalk.net': 'webmail.talktalk.net',
|
|
||||||
'virginmedia.com': 'virginmedia.com'
|
|
||||||
};
|
|
||||||
|
|
||||||
if (emailProviders[domain] && /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) {
|
|
||||||
var emailSenderTag = document.getElementById("email-sender");
|
|
||||||
emailSenderTag.innerHTML = '<a href="https://' + emailProviders[domain] + '">Click here to view your inbox</a>';
|
|
||||||
emailSenderTag.style.display = "block";
|
|
||||||
}
|
|
||||||
} catch (ignoreError) {
|
|
||||||
}
|
|
||||||
|
|
||||||
//document.title = "Check your eamil";
|
|
||||||
//document.getElementById("main-container").style.display = "none";
|
|
||||||
//document.getElementById("check-email").style.display = "block";
|
|
||||||
//email shit coming soon!!!!!!
|
|
||||||
window.location.href = "/dashboard/login.php";
|
|
||||||
},
|
|
||||||
error: function (xhr, textStatus, errorThrown) {
|
|
||||||
var response = JSON.parse(xhr.responseText);
|
var response = JSON.parse(xhr.responseText);
|
||||||
alert(response.response + ' (' + xhr.status + ')');
|
alert(response.response + ' (' + xhr.status + ')');
|
||||||
|
document.querySelector('.cf-turnstile').innerHTML = '';
|
||||||
captcha_token = '';
|
captcha_token = '';
|
||||||
turnstile.render('.cf-turnstile', {
|
turnstile.render('.cf-turnstile', {
|
||||||
sitekey: '<?= $captcha_sitekey ?>',
|
sitekey: '<?= $captcha_sitekey ?>',
|
||||||
callback: function (token) {
|
callback: function (token) {
|
||||||
captcha_token = token;
|
captcha_token = token
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
Reference in new issue
Block a user