mirror of
https://github.com/xodivorce/xeorl.git
synced 2025-12-20 00:29:34 +05:30
v4.2.3
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
session_start();
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
|
||||
if (!isset($_SESSION['user_id'])) {
|
||||
header("Location: login.php");
|
||||
exit();
|
||||
@@ -11,29 +12,28 @@ if (!isset($_SESSION['user_id'])) {
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta charset="UTF-8">
|
||||
<meta charset="UTF-8">
|
||||
<title>Account</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="Xeorl - The All-In-One, Fully Free to Use Advanced Link Shortener and Management Tool - Equipped with Multi-layered URL encryption, URL metadata remover, Mass shrinker, Quick link and Many more! - Powered by @xodivorce...">
|
||||
<link rel="icon" type="image/png" href="./assets/images/favicon-96x96.png" sizes="96x96" />
|
||||
<link rel="icon" type="image/svg+xml" href="./assets/images/favicon.svg" />
|
||||
<link rel="shortcut icon" href="./assets/images/favicon.ico" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="./assets/images/apple-touch-icon.png" />
|
||||
<link rel="icon" type="image/png" href="./assets/images/favicon-96x96.png" sizes="96x96">
|
||||
<link rel="icon" type="image/svg+xml" href="./assets/images/favicon.svg">
|
||||
<link rel="shortcut icon" href="./assets/images/favicon.ico">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="./assets/images/apple-touch-icon.png">
|
||||
<meta name="apple-mobile-web-app-title" content="Xeorl">
|
||||
<link rel="manifest" href="./assets/images/site.webmanifest" />
|
||||
<link rel="manifest" href="./assets/images/site.webmanifest">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet">
|
||||
<link rel="stylesheet" href="assets/css/_monetization.css">
|
||||
</head>
|
||||
<body>
|
||||
<?php include "assets/_header.php"; ?>
|
||||
<main>
|
||||
<h2>Welcome, <?php echo $_SESSION['user_name']; ?>!</h2>
|
||||
<p>Email: <?php echo $_SESSION['user_email']; ?></p>
|
||||
<a href="logout.php">Logout</a>
|
||||
</main>
|
||||
<?php include "assets/_footer.php"; ?>
|
||||
<?php include "assets/_header.php"; ?>
|
||||
<main>
|
||||
<h2>Welcome, <?php echo $_SESSION['user_name']; ?>!</h2>
|
||||
<p>Email: <?php echo $_SESSION['user_email']; ?></p>
|
||||
<a href="logout.php">Logout</a>
|
||||
</main>
|
||||
<?php include "assets/_footer.php"; ?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,39 +1,6 @@
|
||||
<?php
|
||||
if (isset($_POST['acceptCookies'])) {
|
||||
setcookie("user_cookies", "accepted", time() + (86400 * 30), "/");
|
||||
exit;
|
||||
} elseif (isset($_POST['rejectCookies'])) {
|
||||
setcookie("user_cookies", "rejected", time() + (86400 * 30), "/");
|
||||
exit;
|
||||
}
|
||||
?>
|
||||
<link rel="stylesheet" href="_cookies.css">
|
||||
<link rel="stylesheet" href="assets/css/_cookies.css">
|
||||
<div id="cookieBanner">
|
||||
<p>By clicking "Accept All Cookies", you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts.</p>
|
||||
<button class="cookie-settings">Cookies Settings</button>
|
||||
<button class="reject" onclick="setCookieChoice('reject')">Reject All</button>
|
||||
<button class="accept" onclick="setCookieChoice('accept')">Accept All Cookies</button>
|
||||
<span class="close" onclick="hideBanner()">×</span>
|
||||
<p>This website uses cookies to ensure you get the best experience on our website. <a href="/privacy-policy">Learn more</a>.</p>
|
||||
<button class="accept" onclick="acceptCookies()">GOT IT!</button>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function setCookieChoice(choice) {
|
||||
fetch("_cookies.php", {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
||||
body: choice === "accept" ? "acceptCookies=true" : "rejectCookies=true"
|
||||
}).then(() => {
|
||||
document.getElementById("cookieBanner").style.display = "none";
|
||||
});
|
||||
}
|
||||
|
||||
function hideBanner() {
|
||||
document.getElementById("cookieBanner").style.display = "none";
|
||||
}
|
||||
|
||||
window.onload = function() {
|
||||
if (!document.cookie.includes("user_cookies")) {
|
||||
document.getElementById("cookieBanner").style.display = "flex";
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<script src="assets/js/_cookies.js"></script>
|
||||
@@ -10,10 +10,9 @@ if (session_status() === PHP_SESSION_NONE) {
|
||||
<div class="logo">
|
||||
<img src="assets/images/url.png" alt="Xeorl Logo" class="logo-img">
|
||||
<span>Xeorl</span>
|
||||
<span class="version-number">4.1.4</span>
|
||||
<span class="version-number">4.2.3</span>
|
||||
</div>
|
||||
|
||||
<!-- Burger Menu -->
|
||||
<label class="burger">
|
||||
<input type="checkbox" id="burger-toggle">
|
||||
<span></span>
|
||||
@@ -21,23 +20,21 @@ if (session_status() === PHP_SESSION_NONE) {
|
||||
<span></span>
|
||||
</label>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="sidebar">
|
||||
<nav>
|
||||
<ul>
|
||||
<li><a href="home.php" class="<?php echo in_array(basename($_SERVER['PHP_SELF']), ['index.php', 'home.php']) ? 'active disabled' : ''; ?>">Home</a></li>
|
||||
<li><a href="monetization.php" class="<?php echo basename($_SERVER['PHP_SELF']) == 'monetization.php' ? 'active disabled' : ''; ?>">Monetization</a></li>
|
||||
<?php if (isset($_SESSION['user_id'])): ?>
|
||||
<li><a href="account.php" class="<?php echo basename($_SERVER['PHP_SELF']) == 'account.php' ? 'active disabled' : ''; ?>">Account</a></li>
|
||||
<?php else: ?>
|
||||
<li><a href="login.php" class="<?php echo basename($_SERVER['PHP_SELF']) == 'login.php' ? 'active disabled' : ''; ?>">Get-Started</a></li>
|
||||
<?php endif; ?>
|
||||
<li><a href="contact.php" class="<?php echo basename($_SERVER['PHP_SELF']) == 'contact.php' ? 'active disabled' : ''; ?>">Contact</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
<nav>
|
||||
<ul>
|
||||
<li><a href="home.php" class="<?php echo in_array(basename($_SERVER['PHP_SELF']), ['index.php', 'home.php']) ? 'active disabled' : ''; ?>">Home</a></li>
|
||||
<li><a href="monetization.php" class="<?php echo basename($_SERVER['PHP_SELF']) == 'monetization.php' ? 'active disabled' : ''; ?>">Monetization</a></li>
|
||||
<?php if (isset($_SESSION['user_id'])): ?>
|
||||
<li><a href="account.php" class="<?php echo basename($_SERVER['PHP_SELF']) == 'account.php' ? 'active disabled' : ''; ?>">Account</a></li>
|
||||
<?php else: ?>
|
||||
<li><a href="login.php" class="<?php echo basename($_SERVER['PHP_SELF']) == 'login.php' ? 'active disabled' : ''; ?>">Get-Started</a></li>
|
||||
<?php endif; ?>
|
||||
<li><a href="contact.php" class="<?php echo basename($_SERVER['PHP_SELF']) == 'contact.php' ? 'active disabled' : ''; ?>">Contact</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<!-- Regular Navigation (Hidden on Mobile) -->
|
||||
<nav>
|
||||
<ul>
|
||||
<li><a href="home.php" class="<?php echo in_array(basename($_SERVER['PHP_SELF']), ['index.php', 'home.php']) ? 'active disabled' : ''; ?>">Home</a></li>
|
||||
@@ -47,9 +44,9 @@ if (session_status() === PHP_SESSION_NONE) {
|
||||
<?php else: ?>
|
||||
<li><a href="login.php" class="<?php echo basename($_SERVER['PHP_SELF']) == 'login.php' ? 'active disabled' : ''; ?>">Get-Started</a></li>
|
||||
<?php endif; ?>
|
||||
<li><a href="contact.php" class="<?php echo basename($_SERVER['PHP_SELF']) == 'contact.php' ? 'active disabled' : ''; ?>">Contact</a></li>
|
||||
<li><a href="home.php" class="<?php echo basename($_SERVER['PHP_SELF']) == 'contact.php' ? 'active disabled' : ''; ?>">Contact</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
<script src="assets/js/_header.js"> </script>
|
||||
<script src="assets/js/_header.js"></script>
|
||||
|
||||
@@ -3,45 +3,104 @@
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
background: white;
|
||||
background: #ffffff;
|
||||
box-shadow: 0 -2px 10px rgba(0,0,0,0.1);
|
||||
padding: 15px;
|
||||
padding: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
font-family: Arial, sans-serif;
|
||||
z-index: 10;
|
||||
color: #333;
|
||||
border-top: 1px solid #ddd;
|
||||
font-size: 14px;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
#cookieBanner p {
|
||||
font-size: 14px;
|
||||
color: #333;
|
||||
font-size: 16px;
|
||||
margin: 0;
|
||||
flex: 1;
|
||||
margin-left: 1.5em;
|
||||
max-width: 70%;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
button {
|
||||
padding: 10px 15px;
|
||||
border: 1px solid #002147;
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
border-radius: 4px;
|
||||
margin: 0 5px;
|
||||
}
|
||||
|
||||
.cookie-settings {
|
||||
background: white;
|
||||
color: #002147;
|
||||
}
|
||||
|
||||
.reject, .accept {
|
||||
background: #002147;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.close {
|
||||
font-size: 18px;
|
||||
#cookieBanner a {
|
||||
color: #677583;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
margin-left: 10px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.accept {
|
||||
font-family: "Montserrat", sans-serif;
|
||||
padding: 10px 20px;
|
||||
background-color: #4d555cec;
|
||||
margin-right: 3em;
|
||||
color: #ffffff;
|
||||
border: none;
|
||||
border-radius: 20px;
|
||||
cursor: pointer;
|
||||
font-weight: 600;
|
||||
font-size: 14px;
|
||||
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.082);
|
||||
outline: none;
|
||||
box-sizing: border-box;
|
||||
transition: box-shadow 0.3s ease, background-color 0.3s ease;
|
||||
}
|
||||
|
||||
.accept:hover {
|
||||
background-color: #171C24;
|
||||
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.250);
|
||||
}
|
||||
|
||||
/* Mobile and Tablet Responsive Styles */
|
||||
@media (max-width: 720px) {
|
||||
#cookieBanner p {
|
||||
font-size: 16px;
|
||||
margin: 0;
|
||||
flex: 1;
|
||||
margin-left: 1.5em;
|
||||
max-width: 70%;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
#cookieBanner a {
|
||||
color: #677583;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
}
|
||||
.accept {
|
||||
background-color:#171C24 ;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media (max-width: 509px) {
|
||||
#cookieBanner p {
|
||||
font-size: 14px;
|
||||
margin: 0;
|
||||
flex: 1;
|
||||
margin-left: 1.5em;
|
||||
max-width: 70%;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
#cookieBanner a {
|
||||
text-decoration: none;
|
||||
}
|
||||
.accept {
|
||||
font-size: 12px;
|
||||
background-color:#171C24 ;
|
||||
padding: 9px 18px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 409px){
|
||||
|
||||
.accept {
|
||||
font-size: 12px;
|
||||
background-color:#171C24 ;
|
||||
padding: 8px 16px;
|
||||
}
|
||||
}
|
||||
@@ -52,7 +52,6 @@ h2 {
|
||||
.countdown {
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
margin-top: -px;
|
||||
color: rgb(70, 41, 204);
|
||||
text-align: center;
|
||||
}
|
||||
@@ -83,17 +82,19 @@ button:active {
|
||||
box-shadow: rgba(68, 68, 68, 0.572) 3px 2px 10px 0px;
|
||||
cursor: pointer;
|
||||
}
|
||||
@media (max-width: 1170px){
|
||||
|
||||
.container{
|
||||
@media (max-width: 1170px) {
|
||||
.container {
|
||||
width: 650px;
|
||||
}
|
||||
}
|
||||
@media (max-width: 1024px){
|
||||
.container{
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.container {
|
||||
width: 500px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.container {
|
||||
padding: 40px 20px;
|
||||
@@ -129,7 +130,6 @@ button:active {
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
|
||||
.countdown span {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
12
htdocs/assets/js/_cookies.js
Normal file
12
htdocs/assets/js/_cookies.js
Normal file
@@ -0,0 +1,12 @@
|
||||
function acceptCookies() {
|
||||
document.cookie = "user_cookies=accepted; path=/; max-age=" + 60*60*24*30;
|
||||
document.getElementById("cookieBanner").style.display = "none";
|
||||
}
|
||||
|
||||
window.onload = function() {
|
||||
if (document.cookie.indexOf("user_cookies") === -1) {
|
||||
document.getElementById("cookieBanner").style.display = "flex";
|
||||
} else {
|
||||
document.getElementById("cookieBanner").style.display = "none";
|
||||
}
|
||||
};
|
||||
23
htdocs/assets/js/_developer_tools.js
Executable file
23
htdocs/assets/js/_developer_tools.js
Executable file
@@ -0,0 +1,23 @@
|
||||
(function() {
|
||||
function checkDevTools() {
|
||||
console.clear();
|
||||
console.log('%cSTOP!', 'color: red; font-size: 50px; font-weight: bold;');
|
||||
console.log('%cThis is a browser feature intended for developers.', 'color: white; background: red; font-size: 16px; padding: 5px;');
|
||||
console.log('%cIf someone told you to copy-paste something here to enable a premium feature or "hack" someone\'s account, it is a scam and will give them access to your Xeorl account.', 'color: white; background: black; font-size: 14px; padding: 5px;');
|
||||
}
|
||||
|
||||
function detectDevTools() {
|
||||
const threshold = 160;
|
||||
const widthThreshold = 400;
|
||||
|
||||
if (
|
||||
window.outerHeight - window.innerHeight > threshold ||
|
||||
window.outerWidth - window.innerWidth > widthThreshold
|
||||
) {
|
||||
checkDevTools();
|
||||
}
|
||||
}
|
||||
|
||||
window.addEventListener('resize', detectDevTools);
|
||||
setInterval(detectDevTools, 1000);
|
||||
})();
|
||||
@@ -1,13 +1,7 @@
|
||||
function storeEmailAndContinue() {
|
||||
// Get the email entered by the user
|
||||
var email = document.getElementById('email').value;
|
||||
|
||||
// Store the email in sessionStorage
|
||||
sessionStorage.setItem('userEmail', email);
|
||||
|
||||
// Redirect to the next step
|
||||
location.href = 'forgot_pass_step_two.php';
|
||||
}
|
||||
|
||||
// Retrieve the email from sessionStorage and display it
|
||||
document.getElementById('userEmail').textContent = sessionStorage.getItem('userEmail') || 'hygeonhealth@example.com';
|
||||
document.getElementById('userEmail').textContent = sessionStorage.getItem('userEmail') || 'supportxeorl@example.com';
|
||||
|
||||
@@ -1,66 +1,33 @@
|
||||
// // Array of background image sources
|
||||
// const images = ['assets/images/dna.jpg', 'assets/images/dna2.jpg', 'assets/images/dna3.jpg', 'assets/images/dna4.jpg'];
|
||||
// let currentIndex = 0;
|
||||
|
||||
// function changeBackgroundImage() {
|
||||
// const imgElement = document.getElementById('background-image');
|
||||
// // Fade out
|
||||
// imgElement.style.opacity = 0;
|
||||
|
||||
// setTimeout(() => {
|
||||
// // Change image source
|
||||
// currentIndex = (currentIndex + 1) % images.length;
|
||||
// imgElement.src = images[currentIndex];
|
||||
|
||||
// // Fade in
|
||||
// imgElement.style.opacity = 1;
|
||||
// }, 800); // Match this timeout with the CSS transition duration
|
||||
// }
|
||||
|
||||
// // Change image every 5 seconds
|
||||
// setInterval(changeBackgroundImage, 5000);
|
||||
|
||||
|
||||
// Password visibility toggle logic
|
||||
const passwordField = document.getElementById('password-field');
|
||||
const togglePassword = document.getElementById('toggle-password');
|
||||
|
||||
togglePassword.addEventListener('click', function () {
|
||||
// Toggle between 'password' and 'text'
|
||||
const type = passwordField.getAttribute('type') === 'password' ? 'text' : 'password';
|
||||
passwordField.setAttribute('type', type);
|
||||
|
||||
// Optionally toggle the eye icon image (if different images are needed)
|
||||
this.src = type === 'password' ? 'assets/images/eye.svg' : 'assets/images/eye-off.svg';
|
||||
});
|
||||
|
||||
// Password Reset Function
|
||||
function togglePasswordVisibility() {
|
||||
const confirmPasswordInput = document.getElementById('confirmPassword');
|
||||
if (confirmPasswordInput.type === 'password') {
|
||||
confirmPasswordInput.type = 'text'; // Show password
|
||||
} else {
|
||||
confirmPasswordInput.type = 'password'; // Hide password
|
||||
}
|
||||
confirmPasswordInput.type = confirmPasswordInput.type === 'password' ? 'text' : 'password';
|
||||
}
|
||||
// Conform Password Seen Function
|
||||
|
||||
function resetPassword() {
|
||||
const newPassword = document.getElementById('newPassword').value;
|
||||
const confirmPassword = document.getElementById('confirmPassword').value;
|
||||
const validationMessage = document.getElementById('validation-message');
|
||||
|
||||
if (newPassword.length < 8) {
|
||||
showMessage('Password must be at least 8 characters long.', '#FF0000'); // Red color for error
|
||||
showMessage('Password must be at least 8 characters long.', '#FF0000');
|
||||
return;
|
||||
}
|
||||
|
||||
if (newPassword !== confirmPassword) {
|
||||
showMessage('Passwords do not match. Please try again.', '#FF0000'); // Red color for error
|
||||
showMessage('Passwords do not match. Please try again.', '#FF0000');
|
||||
return;
|
||||
}
|
||||
|
||||
// Redirect or submit form after validation
|
||||
location.href = 'password_reset_success.php'; // Change this to your success page
|
||||
location.href = 'password_reset_success.php';
|
||||
}
|
||||
|
||||
function showMessage(message, color) {
|
||||
@@ -69,8 +36,7 @@ function showMessage(message, color) {
|
||||
validationMessage.style.color = color;
|
||||
validationMessage.style.display = 'block';
|
||||
|
||||
// Hide the message after 5 seconds (5000ms)
|
||||
setTimeout(function() {
|
||||
validationMessage.style.display = 'none';
|
||||
}, 5000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ document.addEventListener("DOMContentLoaded", function () {
|
||||
const burgerToggle = document.getElementById("burger-toggle");
|
||||
const sidebar = document.querySelector(".sidebar");
|
||||
|
||||
// Ensure sidebar is hidden initially
|
||||
sidebar.style.display = "none";
|
||||
|
||||
burgerToggle.addEventListener("click", function () {
|
||||
@@ -17,12 +16,11 @@ document.addEventListener("DOMContentLoaded", function () {
|
||||
});
|
||||
|
||||
window.addEventListener('scroll', function () {
|
||||
const header = document.querySelector('.header'); // Get the header element
|
||||
const header = document.querySelector('.header');
|
||||
|
||||
// Check if the page has been scrolled
|
||||
if (window.scrollY > 0) {
|
||||
header.classList.add('scrolled'); // Add the "scrolled" class
|
||||
header.classList.add('scrolled');
|
||||
} else {
|
||||
header.classList.remove('scrolled'); // Remove the "scrolled" class
|
||||
header.classList.remove('scrolled');
|
||||
}
|
||||
});
|
||||
|
||||
@@ -3,7 +3,6 @@ const form = document.querySelector(".shorten-form"),
|
||||
shortenBtn = document.querySelector("#shorten-btn"),
|
||||
linksList = document.querySelector("#links-list");
|
||||
|
||||
// Clear the list and show the "You don't have any shortened links" message
|
||||
function resetLinksList() {
|
||||
linksList.innerHTML = `
|
||||
<li id="default-message">
|
||||
@@ -18,7 +17,6 @@ function resetLinksList() {
|
||||
`;
|
||||
}
|
||||
|
||||
// Check session storage for existing links on page load
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
const savedLinks = sessionStorage.getItem("shortenedLinks");
|
||||
if (savedLinks) {
|
||||
@@ -35,17 +33,15 @@ shortenBtn.onclick = () => {
|
||||
if (xhr.readyState == 4 && xhr.status == 200) {
|
||||
let data = xhr.response;
|
||||
if (data.length <= 5) {
|
||||
//This is your domain name
|
||||
const domain = "xeorl.buzz/";
|
||||
// This is your shoeten domain name
|
||||
const domain = "http://localhost/Php-Projects/xeorl/htdocs//";
|
||||
let shortenURL = domain + data;
|
||||
|
||||
// Remove the default message if it exists
|
||||
const defaultMessage = document.getElementById("default-message");
|
||||
if (defaultMessage) {
|
||||
defaultMessage.remove();
|
||||
}
|
||||
|
||||
// Add the new link to the list
|
||||
let newRow = `
|
||||
<li>
|
||||
<div class="link-icon"><img src="assets/images/url.png" class="logo-img"></div>
|
||||
@@ -58,12 +54,9 @@ shortenBtn.onclick = () => {
|
||||
</li>
|
||||
`;
|
||||
|
||||
// Append the new link to the list and update session storage
|
||||
linksList.insertAdjacentHTML('afterbegin', newRow);
|
||||
sessionStorage.setItem("shortenedLinks", linksList.innerHTML);
|
||||
|
||||
// Clear the input field
|
||||
urlInput.value = "";
|
||||
urlInput.value = "";
|
||||
} else {
|
||||
alert(data);
|
||||
}
|
||||
@@ -74,7 +67,6 @@ shortenBtn.onclick = () => {
|
||||
xhr.send(formData);
|
||||
};
|
||||
|
||||
// Handle copy button clicks
|
||||
document.addEventListener('click', function(e) {
|
||||
if (e.target.closest('.copy-btn')) {
|
||||
const linkInfo = e.target.closest('li').querySelector('.short-link').textContent;
|
||||
@@ -84,13 +76,13 @@ document.addEventListener('click', function(e) {
|
||||
}
|
||||
});
|
||||
|
||||
// Handle members only delete button clicks!!
|
||||
document.addEventListener('click', function(e) {
|
||||
if (e.target.closest('.delete-btn')) {
|
||||
alert("This feature is available for members only.");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// Handle delete button clicks
|
||||
/*
|
||||
document.addEventListener('click', function(e) {
|
||||
@@ -118,5 +110,3 @@ document.addEventListener('click', function(e) {
|
||||
}
|
||||
|
||||
});*/
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// script.js
|
||||
|
||||
// Add any form validation or interactivity here, like checking if the fields are filled
|
||||
document.querySelector("form").addEventListener("submit", function(event) {
|
||||
const inputs = document.querySelectorAll(".input-field");
|
||||
let valid = true;
|
||||
@@ -15,40 +12,14 @@ document.querySelector("form").addEventListener("submit", function(event) {
|
||||
});
|
||||
|
||||
if (!valid) {
|
||||
event.preventDefault(); // Prevent form submission if validation fails
|
||||
event.preventDefault();
|
||||
alert("Please fill all the fields.");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
document.getElementById('toggle-password').addEventListener('click', function () {
|
||||
const passwordField = document.getElementById('password-field');
|
||||
const passwordType = passwordField.getAttribute('type') === 'password' ? 'text' : 'password';
|
||||
passwordField.setAttribute('type', passwordType);
|
||||
|
||||
// Optionally, you can change the eye icon to an "eye-off" icon when the password is visible
|
||||
this.src = passwordType === 'password' ? 'assets/images/eye.svg' : 'assets/images/eye-off.svg';
|
||||
});
|
||||
|
||||
// // Array of background image sources
|
||||
// const images = ['assets/images/wire.jpg', 'assets/images/internet.jpg','assets/images/redworld.jpg','assets/images/travel.jpg'];
|
||||
// let currentIndex = 0;
|
||||
|
||||
// function changeBackgroundImage() {
|
||||
// const imgElement = document.getElementById('background-image');
|
||||
// // Fade out
|
||||
// imgElement.style.opacity = 0;
|
||||
|
||||
// setTimeout(() => {
|
||||
// // Change image source
|
||||
// currentIndex = (currentIndex + 1) % images.length;
|
||||
// imgElement.src = images[currentIndex];
|
||||
|
||||
// // Fade in
|
||||
// imgElement.style.opacity = 1;
|
||||
// }, 800); // Match this timeout with the CSS transition duration
|
||||
// }
|
||||
|
||||
// // Change image every 5 seconds
|
||||
// setInterval(changeBackgroundImage, 5000);
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
// script.js
|
||||
|
||||
// Add any form validation or interactivity here, like checking if the fields are filled
|
||||
document.querySelector("form").addEventListener("submit", function(event) {
|
||||
const inputs = document.querySelectorAll(".input-field");
|
||||
let valid = true;
|
||||
|
||||
|
||||
inputs.forEach(input => {
|
||||
if (input.value === "") {
|
||||
valid = false;
|
||||
@@ -15,39 +12,29 @@ document.querySelector("form").addEventListener("submit", function(event) {
|
||||
});
|
||||
|
||||
if (!valid) {
|
||||
event.preventDefault(); // Prevent form submission if validation fails
|
||||
event.preventDefault();
|
||||
alert("Please fill all the fields.");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
document.getElementById('toggle-password').addEventListener('click', function () {
|
||||
document.getElementById('toggle-password').addEventListener('click', function() {
|
||||
const passwordField = document.getElementById('password-field');
|
||||
const passwordType = passwordField.getAttribute('type') === 'password' ? 'text' : 'password';
|
||||
passwordField.setAttribute('type', passwordType);
|
||||
|
||||
// Optionally, you can change the eye icon to an "eye-off" icon when the password is visible
|
||||
this.src = passwordType === 'password' ? 'assets/images/eye.svg' : 'assets/images/eye-off.svg';
|
||||
});
|
||||
|
||||
// // Array of background image sources
|
||||
// const images = ['assets/images/dna.jpg', 'assets/images/dna2.jpg','assets/images/dna3.jpg','assets/images/dna4.jpg'];
|
||||
// let currentIndex = 0;
|
||||
function toggleSubmitButton() {
|
||||
const checkbox = document.getElementById("agree");
|
||||
const submitBtn = document.getElementById("submit-btn");
|
||||
const errorMessage = document.getElementById("error-message");
|
||||
|
||||
// function changeBackgroundImage() {
|
||||
// const imgElement = document.getElementById('background-image');
|
||||
// // Fade out
|
||||
// imgElement.style.opacity = 0;
|
||||
if (checkbox.checked) {
|
||||
submitBtn.disabled = false;
|
||||
errorMessage.style.display = "none";
|
||||
} else {
|
||||
submitBtn.disabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
// setTimeout(() => {
|
||||
// // Change image source
|
||||
// currentIndex = (currentIndex + 1) % images.length;
|
||||
// imgElement.src = images[currentIndex];
|
||||
|
||||
// // Fade in
|
||||
// imgElement.style.opacity = 1;
|
||||
// }, 800); // Match this timeout with the CSS transition duration
|
||||
// }
|
||||
|
||||
// // Change image every 5 seconds
|
||||
// setInterval(changeBackgroundImage, 5000);
|
||||
document.addEventListener("DOMContentLoaded", toggleSubmitButton);
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// Countdown logic
|
||||
let countdown = 10;
|
||||
let countdownInterval;
|
||||
const timerElement = document.getElementById("timer");
|
||||
@@ -10,15 +9,15 @@ function updateCountdown() {
|
||||
timerElement.textContent = countdown;
|
||||
}
|
||||
if (countdown <= 0) {
|
||||
button.disabled = false; // Enable the button when countdown ends
|
||||
button.classList.add("active"); // Optional, if you use active class for style
|
||||
button.style.cursor = "pointer"; // Enable cursor
|
||||
setTimeout(function () {
|
||||
button.textContent = "Getting links..."; // Change text before enabling
|
||||
}, 300); // 0.3 seconds delay
|
||||
setTimeout(function () {
|
||||
button.textContent = "Get link"; // Final button text
|
||||
}, 600); // After another 0.3 seconds
|
||||
button.disabled = false;
|
||||
button.classList.add("active");
|
||||
button.style.cursor = "pointer";
|
||||
setTimeout(() => {
|
||||
button.textContent = "Getting links...";
|
||||
}, 300);
|
||||
setTimeout(() => {
|
||||
button.textContent = "Get link";
|
||||
}, 600);
|
||||
clearInterval(countdownInterval);
|
||||
}
|
||||
}
|
||||
@@ -32,14 +31,12 @@ function stopCountdown() {
|
||||
}
|
||||
|
||||
function init() {
|
||||
// Initialize countdown value and button state
|
||||
countdown = 10;
|
||||
timerElement.textContent = countdown;
|
||||
button.disabled = true;
|
||||
button.classList.remove("active");
|
||||
button.style.cursor = "not-allowed";
|
||||
button.textContent = "PLEASE WAIT...";
|
||||
|
||||
startCountdown();
|
||||
}
|
||||
|
||||
@@ -52,11 +49,11 @@ document.addEventListener("visibilitychange", () => {
|
||||
});
|
||||
|
||||
window.addEventListener("beforeunload", () => {
|
||||
init(); // Reset state when the page is about to be unloaded
|
||||
init();
|
||||
});
|
||||
|
||||
init(); // Call init to initialize the countdown when the page loads
|
||||
init();
|
||||
|
||||
function redirect() {
|
||||
window.location.href = redirectUrl; // Redirect to the full URL
|
||||
window.location.href = redirectUrl;
|
||||
}
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
//Right-click disable
|
||||
document.addEventListener('contextmenu', event => event.preventDefault());
|
||||
|
||||
// Disable common keyboard shortcuts for developer tools
|
||||
document.addEventListener('keydown', function(event) {
|
||||
if (event.ctrlKey && (event.key === 'I' || event.key === 'i' || event.key === 'J' || event.key === 'j' || event.key === 'U' || event.key === 'u')) {
|
||||
event.preventDefault();
|
||||
}
|
||||
if (event.key === 'F12') {
|
||||
event.preventDefault();
|
||||
}
|
||||
});
|
||||
|
||||
// Detect developer tools opening
|
||||
(function() {
|
||||
const element = new Image();
|
||||
Object.defineProperty(element, 'id', {
|
||||
get: function() {
|
||||
alert('Developer tools opened!');
|
||||
}
|
||||
});
|
||||
console.log(element);
|
||||
})();
|
||||
@@ -1,18 +1,15 @@
|
||||
<?php
|
||||
// Load Composer's autoloader
|
||||
require_once __DIR__ . '/vendor/autoload.php'; // Correct path for vendor directory in core
|
||||
|
||||
// Initialize dotenv and load environment variables
|
||||
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__ . '/../'); // Adjusted to point to htdocs/.env
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__ . '/../');
|
||||
$dotenv->load();
|
||||
|
||||
// Database configuration
|
||||
$host = $_ENV['DB_HOST'];
|
||||
$user = $_ENV['DB_USER'];
|
||||
$pass = $_ENV['DB_PASS'];
|
||||
$db = $_ENV['DB_NAME'];
|
||||
|
||||
// Establish database connection
|
||||
$conn = mysqli_connect($host, $user, $pass, $db);
|
||||
if (!$conn) {
|
||||
die("Database connection error: " . mysqli_connect_error());
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
<?php
|
||||
// Start timer for debugging
|
||||
$start_time = microtime(true);
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
|
||||
// Include the environment variables and PHPMailer
|
||||
require 'vendor/autoload.php';
|
||||
|
||||
use PHPMailer\PHPMailer\PHPMailer;
|
||||
@@ -14,37 +12,30 @@ use Dotenv\Dotenv;
|
||||
$dotenv = Dotenv::createImmutable(__DIR__ . '/../');
|
||||
$dotenv->load();
|
||||
|
||||
// Database connection
|
||||
require_once 'config.php';
|
||||
|
||||
$email = $_POST['email'];
|
||||
|
||||
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||
// Generate a 6-digit OTP
|
||||
$otp = rand(100000, 999999); // 6-digit OTP
|
||||
$otp = rand(100000, 999999);
|
||||
|
||||
// Update the OTP in the database using mysqli
|
||||
$sql = "UPDATE user SET user_otp = '$otp' WHERE user_email = '$email'";
|
||||
|
||||
if ($conn->query($sql) === TRUE) {
|
||||
// Send OTP email
|
||||
$mail = new PHPMailer(true);
|
||||
|
||||
try {
|
||||
// Server settings
|
||||
$mail->isSMTP();
|
||||
$mail->Host = $_ENV['SMTP_HOST']; // Set the SMTP server to send through
|
||||
$mail->Host = $_ENV['SMTP_HOST'];
|
||||
$mail->SMTPAuth = true;
|
||||
$mail->Username = $_ENV['SMTP_USER']; // SMTP username
|
||||
$mail->Password = $_ENV['SMTP_PASS']; // SMTP password
|
||||
$mail->Username = $_ENV['SMTP_USER'];
|
||||
$mail->Password = $_ENV['SMTP_PASS'];
|
||||
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
|
||||
$mail->Port = $_ENV['SMTP_PORT'];
|
||||
|
||||
// Recipients
|
||||
$mail->setFrom($_ENV['SMTP_USER'], 'Xeorl Support');
|
||||
$mail->addAddress($email); // Add a recipient
|
||||
$mail->addAddress($email);
|
||||
|
||||
// Content
|
||||
$mail->isHTML(true);
|
||||
$mail->Subject = 'Password Reset - Xeorl';
|
||||
$mail->Body =
|
||||
@@ -62,11 +53,11 @@ if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||
$mail->AltBody = 'Your OTP code is ' . $otp;
|
||||
|
||||
$mail->send();
|
||||
// Redirect to ../forgot_pass_step_two.php
|
||||
session_start(); // Start the session
|
||||
$_SESSION['email'] = $email; // Store the email in the session
|
||||
header('Location: ../forgot_pass_step_two.php'); // Redirect to the next page
|
||||
exit; // Ensure no further script execution after redirection
|
||||
|
||||
session_start();
|
||||
$_SESSION['email'] = $email;
|
||||
header('Location: ../forgot_pass_step_two.php');
|
||||
exit;
|
||||
} catch (Exception $e) {
|
||||
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
|
||||
}
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
<?php
|
||||
session_start(); // Start the session to access session variables
|
||||
require_once 'config.php'; // Ensure this is your mysqli connection file
|
||||
session_start();
|
||||
require_once 'config.php';
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
|
||||
// Check if the email is stored in the session
|
||||
if (!isset($_SESSION['email'])) {
|
||||
header('Location: login.php');
|
||||
exit();
|
||||
@@ -16,28 +15,22 @@ if (isset($_POST['newPassword']) && isset($_POST['confirmPassword'])) {
|
||||
$newPassword = $_POST['newPassword'];
|
||||
$confirmPassword = $_POST['confirmPassword'];
|
||||
|
||||
// Check if the new password is at least 8 characters long
|
||||
if (strlen($newPassword) < 8) {
|
||||
$_SESSION['error_message'] = 'Password must be at least 8 characters long.';
|
||||
header('Location: ../forgot_pass_step_three.php');
|
||||
exit();
|
||||
}
|
||||
|
||||
// Check if the new password and confirm password match
|
||||
if ($newPassword !== $confirmPassword) {
|
||||
$_SESSION['error_message'] = 'Passwords do not match.';
|
||||
header('Location: ../forgot_pass_step_three.php');
|
||||
exit();
|
||||
}
|
||||
|
||||
// Hash the new password before storing it
|
||||
$hashedPassword = password_hash($newPassword, PASSWORD_BCRYPT);
|
||||
|
||||
// Prepare the SQL query using mysqli
|
||||
$sql = "UPDATE user SET user_pass = '$hashedPassword' WHERE user_email = '$email'";
|
||||
|
||||
if (mysqli_query($conn, $sql)) {
|
||||
// No additional code needed here
|
||||
header('Location: ../password_reset_success.php');
|
||||
exit();
|
||||
} else {
|
||||
|
||||
@@ -1,44 +1,40 @@
|
||||
<?php
|
||||
session_start(); // Start the session to access session variables
|
||||
require_once 'config.php'; // Include the database connection
|
||||
session_start();
|
||||
require_once 'config.php';
|
||||
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
|
||||
$email = isset($_SESSION['email']) ? $_SESSION['email'] : ''; // Retrieve the email from the session
|
||||
$email = $_SESSION['email'] ?? '';
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||
$userOtp = $_POST['otp']; // Get the OTP entered by the user
|
||||
$userOtp = $_POST['otp'];
|
||||
|
||||
// Validate if email and OTP are set
|
||||
if (!empty($email) && !empty($userOtp)) {
|
||||
// Query the database to get the OTP for the user with the provided email using MySQLi
|
||||
$sql = "SELECT user_otp FROM user WHERE user_email = '$email'";
|
||||
$result = $conn->query($sql); // Execute the query
|
||||
$sql = "SELECT user_otp FROM user WHERE user_email = ?";
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->bind_param('s', $email);
|
||||
$stmt->execute();
|
||||
$result = $stmt->get_result();
|
||||
|
||||
if ($result && $result->num_rows > 0) {
|
||||
$row = $result->fetch_assoc();
|
||||
$dbOtp = $row['user_otp']; // Fetch the OTP from the result set
|
||||
$dbOtp = $row['user_otp'];
|
||||
|
||||
// Check if the OTP entered by the user matches the one in the database
|
||||
if ($userOtp == $dbOtp) {
|
||||
// OTP is correct, redirect to the next step
|
||||
header('Location: ../forgot_pass_step_three.php');
|
||||
exit;
|
||||
} else {
|
||||
// OTP is incorrect, set error message
|
||||
$_SESSION['error_message'] = "Invalid OTP. Please double-check the OTP.";
|
||||
header('Location: ../forgot_pass_step_two.php');
|
||||
exit;
|
||||
}
|
||||
} else {
|
||||
// Query failed or no result, set error message
|
||||
$_SESSION['error_message'] = "Failed to retrieve OTP from the database.";
|
||||
header('Location: ../forgot_pass_step_two.php');
|
||||
exit;
|
||||
}
|
||||
} else {
|
||||
// If email or OTP is empty, set error message
|
||||
$_SESSION['error_message'] = "Please fill out the OTP.";
|
||||
header('Location: ../forgot_pass_step_two.php');
|
||||
exit;
|
||||
|
||||
@@ -4,12 +4,10 @@ include "config.php";
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
|
||||
// Check if the session variable for storing shortened links exists
|
||||
if (!isset($_SESSION['shortened_links'])) {
|
||||
$_SESSION['shortened_links'] = array();
|
||||
}
|
||||
|
||||
// Retrieve and return the list of shortened links for the current session
|
||||
$links = array();
|
||||
foreach ($_SESSION['shortened_links'] as $link_id) {
|
||||
$sql = mysqli_query($conn, "SELECT * FROM url WHERE id = '{$link_id}'");
|
||||
|
||||
@@ -1,16 +1,12 @@
|
||||
<?php
|
||||
// core/get_statistics.php
|
||||
|
||||
require 'config.php'; // Assuming config.php contains your database connection setup
|
||||
require 'config.php';
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
|
||||
// Initialize variables in case the queries fail
|
||||
$total_links = 0;
|
||||
$total_clicks = 0;
|
||||
$active_users = 0;
|
||||
|
||||
// Calculate total links
|
||||
$sql_total_links = "SELECT COUNT(*) as total_links FROM url";
|
||||
$result_total_links = mysqli_query($conn, $sql_total_links);
|
||||
if ($result_total_links) {
|
||||
@@ -20,7 +16,6 @@ if ($result_total_links) {
|
||||
echo "Error fetching total links: " . mysqli_error($conn);
|
||||
}
|
||||
|
||||
// Calculate total clicks
|
||||
$sql_total_clicks = "SELECT SUM(clicks) as total_clicks FROM url";
|
||||
$result_total_clicks = mysqli_query($conn, $sql_total_clicks);
|
||||
if ($result_total_clicks) {
|
||||
@@ -30,7 +25,6 @@ if ($result_total_clicks) {
|
||||
echo "Error fetching total clicks: " . mysqli_error($conn);
|
||||
}
|
||||
|
||||
// Calculate active users
|
||||
$sql_total_users = "SELECT COUNT(*) as total_users FROM user";
|
||||
$result_total_users = mysqli_query($conn, $sql_total_users);
|
||||
if ($result_total_users) {
|
||||
@@ -39,6 +33,4 @@ if ($result_total_users) {
|
||||
} else {
|
||||
echo "Error fetching total users: " . mysqli_error($conn);
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
|
||||
@@ -8,7 +8,6 @@ if (isset($_POST['login_btn'])) {
|
||||
$email = mysqli_real_escape_string($conn, $_POST['user_email']);
|
||||
$password = $_POST['user_pass'];
|
||||
|
||||
// Check if the email exists
|
||||
$stmt = mysqli_prepare($conn, "SELECT * FROM user WHERE user_email = ?");
|
||||
mysqli_stmt_bind_param($stmt, "s", $email);
|
||||
mysqli_stmt_execute($stmt);
|
||||
@@ -17,22 +16,18 @@ if (isset($_POST['login_btn'])) {
|
||||
if (mysqli_num_rows($result) > 0) {
|
||||
$row = mysqli_fetch_assoc($result);
|
||||
|
||||
// Check if the user is banned
|
||||
if ($row['user_type'] == 4) {
|
||||
$_SESSION['error'] = "Your account is banned. Please contact support.";
|
||||
header('Location: ../login.php');
|
||||
exit();
|
||||
}
|
||||
|
||||
// Verify the password
|
||||
if (password_verify($password, $row['user_pass'])) {
|
||||
// Set session variables
|
||||
$_SESSION['user_id'] = $row['id'];
|
||||
$_SESSION['user_name'] = $row['user_name'];
|
||||
$_SESSION['user_email'] = $row['user_email'];
|
||||
$_SESSION['user_type'] = $row['user_type'];
|
||||
|
||||
// Redirect to monetization after successful login
|
||||
header('Location: ../monetization.php');
|
||||
exit();
|
||||
} else {
|
||||
@@ -46,4 +41,4 @@ if (isset($_POST['login_btn'])) {
|
||||
exit();
|
||||
}
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -1,57 +1,42 @@
|
||||
<?php
|
||||
// Enable error reporting
|
||||
ini_set('display_errors', 1);
|
||||
ini_set('display_startup_errors', 1);
|
||||
error_reporting(E_ALL);
|
||||
|
||||
// Include the configuration file
|
||||
include "core/config.php";
|
||||
|
||||
// Start session management
|
||||
session_start();
|
||||
|
||||
// Initialize dotenv and load environment variables
|
||||
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__ . '/../');
|
||||
$dotenv->load();
|
||||
|
||||
// Retrieve environment variables
|
||||
$host = $_ENV['DB_HOST'];
|
||||
$user = $_ENV['DB_USER'];
|
||||
$pass = $_ENV['DB_PASS'];
|
||||
$db = $_ENV['DB_NAME'];
|
||||
|
||||
// Establish database connection
|
||||
$conn = mysqli_connect($host, $user, $pass, $db);
|
||||
if (!$conn) {
|
||||
die("Database connection error: " . mysqli_connect_error());
|
||||
}
|
||||
|
||||
// Initialize the shortened URL variable
|
||||
$new_url = "";
|
||||
|
||||
// Check if there's a GET request and process the shortened URL
|
||||
if (isset($_GET)) {
|
||||
foreach ($_GET as $key => $val) {
|
||||
$u = mysqli_real_escape_string($conn, $key);
|
||||
$new_url = str_replace('/', '', $u);
|
||||
}
|
||||
|
||||
// Query the database for the full URL associated with the shortened URL
|
||||
$sql = mysqli_query($conn, "SELECT full_url FROM url WHERE shorten_url = '{$new_url}'");
|
||||
if (mysqli_num_rows($sql) > 0) {
|
||||
// Increment the click count for the shortened URL
|
||||
$sql2 = mysqli_query($conn, "UPDATE url SET clicks = clicks + 1 WHERE shorten_url = '{$new_url}'");
|
||||
if ($sql2) {
|
||||
// Fetch the full URL and store it in the session
|
||||
$full_url = mysqli_fetch_assoc($sql);
|
||||
$_SESSION['redirect_url'] = $full_url['full_url'];
|
||||
|
||||
// Instead of header redirect, include the unzipper.php page here
|
||||
include 'unzipper.php'; // Include the unzipper.php page in this URL
|
||||
exit(); // Exit to ensure the rest of the script doesn't run
|
||||
include 'unzipper.php';
|
||||
exit();
|
||||
}
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -1,17 +1,14 @@
|
||||
<?php
|
||||
session_start();
|
||||
// Load Composer's autoloader
|
||||
require_once __DIR__ . '/vendor/autoload.php'; // Correct path for vendor directory in core
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
require_once 'config.php';
|
||||
|
||||
// Initialize dotenv and load environment variables
|
||||
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__ . '/../'); // Adjusted to point to htdocs/.env
|
||||
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__ . '/../');
|
||||
$dotenv->load();
|
||||
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
|
||||
// Database configuration
|
||||
$clientID = $_ENV['CLIENT_ID'];
|
||||
$clientSecret = $_ENV['CLIENT_SECRET'];
|
||||
$redirectUri = $_ENV['REDIRECT_URI'];
|
||||
@@ -34,33 +31,28 @@ if (isset($_GET['code'])) {
|
||||
$name = $google_account_info->name;
|
||||
$email = $google_account_info->email;
|
||||
|
||||
// Check if user exists in database
|
||||
$stmt = $conn->prepare("SELECT id, user_name, user_email, user_type FROM user WHERE google_id = ? OR user_email = ?");
|
||||
$stmt->bind_param("ss", $google_id, $email);
|
||||
$stmt->execute();
|
||||
$result = $stmt->get_result();
|
||||
|
||||
if ($result->num_rows == 0) {
|
||||
// Insert new user
|
||||
$default_user_type = 3; // Default user type
|
||||
$default_user_type = 3;
|
||||
$stmt = $conn->prepare("INSERT INTO user (google_id, user_email, user_name, user_type) VALUES (?, ?, ?, ?)");
|
||||
$stmt->bind_param("sssi", $google_id, $email, $name, $default_user_type);
|
||||
$stmt->execute();
|
||||
$user_id = $stmt->insert_id;
|
||||
} else {
|
||||
// User exists, fetch user ID
|
||||
$row = $result->fetch_assoc();
|
||||
$user_id = $row['id'];
|
||||
$name = $row['user_name'];
|
||||
$email = $row['user_email'];
|
||||
}
|
||||
|
||||
// Store user session
|
||||
$_SESSION['user_id'] = $user_id;
|
||||
$_SESSION['user_name'] = $name;
|
||||
$_SESSION['user_email'] = $email;
|
||||
|
||||
// Redirect to monetization
|
||||
header("Location: ../monetization.php");
|
||||
exit();
|
||||
} else {
|
||||
|
||||
@@ -1,57 +1,52 @@
|
||||
<?php
|
||||
include('config.php');
|
||||
session_start(); // Start the session for storing error messages
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
session_start();
|
||||
require_once 'config.php';
|
||||
|
||||
if (isset($_POST['submit_btn'])) {
|
||||
$fName = mysqli_real_escape_string($conn, $_POST['f_name']);
|
||||
$lName = mysqli_real_escape_string($conn, $_POST['l_name']);
|
||||
$email = mysqli_real_escape_string($conn, $_POST['user_email']);
|
||||
$password = mysqli_real_escape_string($conn, $_POST['user_pass']); // Plain text password
|
||||
$uName = $fName . " " . $lName;
|
||||
$uType = 3; // Default user type (can be changed as per requirements)
|
||||
|
||||
// Check if password is at least 8 characters long
|
||||
if (strlen($password) < 8) {
|
||||
$_SESSION['error'] = "Password must be at least 8 characters long.";
|
||||
header('Location: ../register.php'); // Redirect to the register page
|
||||
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||
if (!isset($_POST['user_agree'])) {
|
||||
$_SESSION['error'] = "You must agree to the Terms & Conditions.";
|
||||
header("Location: ../register.php");
|
||||
exit();
|
||||
}
|
||||
|
||||
// Check if email already exists
|
||||
$checkEmail = "SELECT * FROM user WHERE user_email = '$email'";
|
||||
$result = $conn->query($checkEmail);
|
||||
if (isset($_POST['submit_btn'])) {
|
||||
$fName = mysqli_real_escape_string($conn, $_POST['f_name']);
|
||||
$lName = mysqli_real_escape_string($conn, $_POST['l_name']);
|
||||
$email = mysqli_real_escape_string($conn, $_POST['user_email']);
|
||||
$password = mysqli_real_escape_string($conn, $_POST['user_pass']);
|
||||
$uName = $fName . " " . $lName;
|
||||
$uType = 3;
|
||||
|
||||
if ($result->num_rows > 0) {
|
||||
// Store the error message in the session
|
||||
$_SESSION['error'] = "Email already exists. Please use a different email.";
|
||||
header('Location: ../register.php'); // Redirect to the register page
|
||||
exit();
|
||||
} else {
|
||||
// Hash the password before storing it
|
||||
$hashedPassword = password_hash($password, PASSWORD_BCRYPT);
|
||||
|
||||
// Insert the user data with hashed password
|
||||
$sql = "INSERT INTO user (`user_name`, `user_email`, `user_pass`, `user_type`, `user_otp`)
|
||||
VALUES ('$uName', '$email', '$hashedPassword', '$uType', NULL)";
|
||||
|
||||
if ($conn->query($sql) === TRUE) {
|
||||
// Get the user ID of the newly registered user
|
||||
$userId = $conn->insert_id;
|
||||
|
||||
// Optionally, send an email or OTP for verification here
|
||||
|
||||
// Redirect to login page after successful registration
|
||||
header('Location: ../login.php');
|
||||
exit();
|
||||
} else {
|
||||
$_SESSION['error'] = "Error: " . $sql . "<br>" . $conn->error;
|
||||
if (strlen($password) < 8) {
|
||||
$_SESSION['error'] = "Password must be at least 8 characters long.";
|
||||
header('Location: ../register.php');
|
||||
exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$conn->close();
|
||||
$checkEmail = "SELECT * FROM user WHERE user_email = '$email'";
|
||||
$result = $conn->query($checkEmail);
|
||||
|
||||
if ($result->num_rows > 0) {
|
||||
$_SESSION['error'] = "Email already exists. Please use a different email.";
|
||||
header('Location: ../register.php');
|
||||
exit();
|
||||
} else {
|
||||
$hashedPassword = password_hash($password, PASSWORD_BCRYPT);
|
||||
$sql = "INSERT INTO user (`user_name`, `user_email`, `user_pass`, `user_type`, `user_otp`)
|
||||
VALUES ('$uName', '$email', '$hashedPassword', '$uType', NULL)";
|
||||
|
||||
if ($conn->query($sql) === TRUE) {
|
||||
$userId = $conn->insert_id;
|
||||
header('Location: ../login.php');
|
||||
exit();
|
||||
} else {
|
||||
$_SESSION['error'] = "Error: " . $sql . "<br>" . $conn->error;
|
||||
header('Location: ../register.php');
|
||||
exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$conn->close();
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -1,70 +1,46 @@
|
||||
<?php
|
||||
// Start the session
|
||||
session_start();
|
||||
|
||||
// Include necessary files
|
||||
require_once 'config.php'; // Ensure this is your mysqli connection file
|
||||
require_once 'config.php';
|
||||
require 'vendor/autoload.php';
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
|
||||
use PHPMailer\PHPMailer\PHPMailer;
|
||||
use PHPMailer\PHPMailer\Exception;
|
||||
use Dotenv\Dotenv;
|
||||
|
||||
// Load environment variables using Dotenv
|
||||
$dotenv = Dotenv::createImmutable(__DIR__ . '/../');
|
||||
$dotenv->load();
|
||||
|
||||
// Check if the email is stored in the session
|
||||
if (isset($_SESSION['email'])) {
|
||||
$email = $_SESSION['email'];
|
||||
$otp = rand(100000, 999999);
|
||||
|
||||
// Generate a new 6-digit OTP
|
||||
$otp = rand(100000, 999999); // Change this to generate a 6-digit OTP
|
||||
|
||||
// Update the OTP in the database for the user using mysqli
|
||||
$sql = "UPDATE user SET user_otp = '$otp' WHERE user_email = '$email'";
|
||||
|
||||
if (mysqli_query($conn, $sql)) {
|
||||
// Send the OTP to the user's email
|
||||
$mail = new PHPMailer(true);
|
||||
try {
|
||||
// Server settings
|
||||
$mail->isSMTP();
|
||||
$mail->Host = $_ENV['SMTP_HOST']; // SMTP server
|
||||
$mail->SMTPAuth = true;
|
||||
$mail->Username = $_ENV['SMTP_USER']; // SMTP username
|
||||
$mail->Password = $_ENV['SMTP_PASS']; // SMTP password
|
||||
$mail->Host = $_ENV['SMTP_HOST'];
|
||||
$mail->SMTPAuth = true;
|
||||
$mail->Username = $_ENV['SMTP_USER'];
|
||||
$mail->Password = $_ENV['SMTP_PASS'];
|
||||
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
|
||||
$mail->Port = $_ENV['SMTP_PORT'];
|
||||
$mail->Port = $_ENV['SMTP_PORT'];
|
||||
|
||||
// Recipients
|
||||
$mail->setFrom($_ENV['SMTP_USER'], 'Xeorl Support');
|
||||
$mail->addAddress($email); // Add a recipient
|
||||
$mail->addAddress($email);
|
||||
|
||||
// Content
|
||||
$mail->isHTML(true);
|
||||
$mail->Subject = 'Password Reset - Xeorl';
|
||||
$mail->Body =
|
||||
'Hello User,<br><br>
|
||||
Your one time password: <b>' . $otp . '</b>.<br><br>
|
||||
|
||||
Your one-time password (OTP) is valid for a single session. If you refresh the page or exit the Next Step portal, you will need to regenerate a new OTP.<br><br>
|
||||
|
||||
If you did not request this OTP, please contact us immediately at www.xeorl.buzz<br><br>
|
||||
|
||||
Regards,<br>
|
||||
Xeorl<br>
|
||||
' . date("Y") . ' © All rights reserved';
|
||||
|
||||
$mail->Body = 'Hello User,<br><br>Your one time password: <b>' . $otp . '</b>.<br><br>Your one-time password (OTP) is valid for a single session. If you refresh the page or exit the Next Step portal, you will need to regenerate a new OTP.<br><br>If you did not request this OTP, please contact us immediately at www.xeorl.buzz<br><br>Regards,<br>Xeorl<br>' . date("Y") . ' © All rights reserved';
|
||||
$mail->AltBody = 'Your OTP code is ' . $otp;
|
||||
|
||||
// Send the email
|
||||
$mail->send();
|
||||
$_SESSION['success_message'] = 'A new OTP has been sent to your email address.';
|
||||
header('Location: ../forgot_pass_step_two.php'); // Redirect back to the confirmation page
|
||||
header('Location: ../forgot_pass_step_two.php');
|
||||
exit;
|
||||
|
||||
} catch (Exception $e) {
|
||||
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
|
||||
}
|
||||
@@ -72,7 +48,6 @@ if (isset($_SESSION['email'])) {
|
||||
echo "Failed to update OTP in the database: " . mysqli_error($conn);
|
||||
}
|
||||
|
||||
// Close the MySQLi statement
|
||||
mysqli_close($conn);
|
||||
} else {
|
||||
echo "No email found in session.";
|
||||
|
||||
@@ -3,6 +3,7 @@ session_start();
|
||||
include "config.php";
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
|
||||
$full_url = mysqli_real_escape_string($conn, $_POST['full_url']);
|
||||
|
||||
if (!empty($full_url) && filter_var($full_url, FILTER_VALIDATE_URL)) {
|
||||
@@ -12,14 +13,22 @@ if (!empty($full_url) && filter_var($full_url, FILTER_VALIDATE_URL)) {
|
||||
if (mysqli_num_rows($sql) > 0) {
|
||||
echo "Something went wrong. Please generate again!";
|
||||
} else {
|
||||
$sql2 = mysqli_query($conn, "INSERT INTO url (full_url, shorten_url, clicks)
|
||||
VALUES ('{$full_url}', '{$ran_url}', '0')");
|
||||
$user_email = isset($_SESSION['user_email']) ? $_SESSION['user_email'] : NULL;
|
||||
|
||||
if ($user_email !== NULL) {
|
||||
$sql2 = mysqli_query($conn, "INSERT INTO url (full_url, shorten_url, clicks, user_email)
|
||||
VALUES ('{$full_url}', '{$ran_url}', '0', '{$user_email}')");
|
||||
} else {
|
||||
$sql2 = mysqli_query($conn, "INSERT INTO url (full_url, shorten_url, clicks)
|
||||
VALUES ('{$full_url}', '{$ran_url}', '0')");
|
||||
}
|
||||
|
||||
if ($sql2) {
|
||||
$link_id = mysqli_insert_id($conn); // Get the ID of the newly inserted row
|
||||
$link_id = mysqli_insert_id($conn);
|
||||
if (!isset($_SESSION['shortened_links'])) {
|
||||
$_SESSION['shortened_links'] = array();
|
||||
}
|
||||
$_SESSION['shortened_links'][] = $link_id; // Store the link ID in session
|
||||
$_SESSION['shortened_links'][] = $link_id;
|
||||
|
||||
$shorten_url = $ran_url;
|
||||
echo $shorten_url;
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" type="image/png" href="./assets/images/favicon-96x96.png" sizes="96x96" />
|
||||
<link rel="icon" type="image/svg+xml" href="./assets/images/favicon.svg" />
|
||||
<link rel="shortcut icon" href="./assets/images/favicon.ico" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="./assets/images/apple-touch-icon.png" />
|
||||
<link rel="icon" type="image/png" href="./assets/images/favicon-96x96.png" sizes="96x96">
|
||||
<link rel="icon" type="image/svg+xml" href="./assets/images/favicon.svg">
|
||||
<link rel="shortcut icon" href="./assets/images/favicon.ico">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="./assets/images/apple-touch-icon.png">
|
||||
<meta name="apple-mobile-web-app-title" content="Xeorl">
|
||||
<link rel="manifest" href="./assets/images/site.webmanifest" />
|
||||
<link rel="manifest" href="./assets/images/site.webmanifest">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Mulish:ital,wght@0,200..1000;1,200..1000&family=Work+Sans:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet">
|
||||
@@ -17,19 +17,16 @@
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<!-- Left Section (Image and Logo) -->
|
||||
<div class="left-section">
|
||||
<div class="header">
|
||||
<h1 class="logo">Xeorl</h1>
|
||||
<h1 class="logo">Xeorl</h1>
|
||||
<button class="back-button" onclick="window.location.href='login.php';">Back to Login →</button>
|
||||
</div>
|
||||
<div class="content">
|
||||
<img id="background-image" src="assets/images/travel.jpg" alt="Background Image" class="background-img">
|
||||
<h2>Unimited Shortens but,<br>One Link at a Time</h2>
|
||||
<h2>Unlimited Shortens but,<br>One Link at a Time</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Right Section (Form) -->
|
||||
<div class="right-section">
|
||||
<div class="form-container">
|
||||
<h2>Reset your password</h2>
|
||||
@@ -41,7 +38,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="assets/js/_forgot_pass.js"></script>
|
||||
<script src="assets/js/_email.js"></script>
|
||||
</body>
|
||||
|
||||
@@ -1,59 +1,51 @@
|
||||
<?php
|
||||
// Start the session to access session variables
|
||||
session_start();
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
$email = isset($_SESSION['email']) ? $_SESSION['email'] : ''; // Get the email from the session
|
||||
|
||||
// Display any error or success message if set in session
|
||||
$error_message = isset($_SESSION['error_message']) ? $_SESSION['error_message'] : '';
|
||||
$success_message = isset($_SESSION['success_message']) ? $_SESSION['success_message'] : '';
|
||||
$email = $_SESSION['email'] ?? '';
|
||||
$error_message = $_SESSION['error_message'] ?? '';
|
||||
$success_message = $_SESSION['success_message'] ?? '';
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" type="image/png" href="./assets/images/favicon-96x96.png" sizes="96x96" />
|
||||
<link rel="icon" type="image/svg+xml" href="./assets/images/favicon.svg" />
|
||||
<link rel="shortcut icon" href="./assets/images/favicon.ico" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="./assets/images/apple-touch-icon.png" />
|
||||
<link rel="icon" type="image/png" href="./assets/images/favicon-96x96.png" sizes="96x96">
|
||||
<link rel="icon" type="image/svg+xml" href="./assets/images/favicon.svg">
|
||||
<link rel="shortcut icon" href="./assets/images/favicon.ico">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="./assets/images/apple-touch-icon.png">
|
||||
<meta name="apple-mobile-web-app-title" content="Xeorl">
|
||||
<link rel="manifest" href="./assets/images/site.webmanifest" />
|
||||
<link rel="manifest" href="./assets/images/site.webmanifest">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Mulish:ital,wght@0,200..1000;1,200..1000&family=Work+Sans:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Mulish:wght@200..1000&family=Work+Sans:wght@100..900&display=swap" rel="stylesheet">
|
||||
<title>Reset Password</title>
|
||||
<link rel="stylesheet" href="assets/css/_forgot_pass.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<!-- Left Section (Image and Logo) -->
|
||||
<div class="left-section">
|
||||
<div class="header">
|
||||
<h1 class="logo">Xeorl</h1>
|
||||
<h1 class="logo">Xeorl</h1>
|
||||
<button class="back-button" onclick="window.location.href='login.php';">Back to Login →</button>
|
||||
</div>
|
||||
<div class="content">
|
||||
<img id="background-image" src="assets/images/travel.jpg" alt="Background Image" class="background-img">
|
||||
<h2>Unimited Shortens but,<br>One Link at a Time</h2>
|
||||
<h2>Unlimited Shortens but,<br>One Link at a Time</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Right Section (Create Password Form) -->
|
||||
<div class="right-section">
|
||||
<div class="form-container">
|
||||
<h2>Create a New Password</h2>
|
||||
<p>Please choose a password that hasn't been used before. Must be at least 8 characters.</p>
|
||||
|
||||
<!-- Display success or error message -->
|
||||
<?php if ($error_message): ?>
|
||||
<p class="error-message" style="color:red"><?= htmlspecialchars($error_message) ?></p>
|
||||
<?php endif; ?>
|
||||
<?php if ($success_message): ?>
|
||||
<p class="success-message"><?= htmlspecialchars($success_message) ?></p>
|
||||
<?php endif; ?>
|
||||
|
||||
<form action="./core/forgot_pass_action_three.php" method="post">
|
||||
<input type="password" placeholder="Set new password" class="input-field full-width" name="newPassword" required minlength="8">
|
||||
<input type="password" placeholder="Confirm new password" class="input-field full-width" name="confirmPassword" required minlength="8">
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<?php
|
||||
session_start(); // Start the session
|
||||
session_start();
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
$email = isset($_SESSION['email']) ? $_SESSION['email'] : ''; // Retrieve the email from the session
|
||||
$email = isset($_SESSION['email']) ? $_SESSION['email'] : '';
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
@@ -26,65 +26,48 @@ $email = isset($_SESSION['email']) ? $_SESSION['email'] : ''; // Retrieve the em
|
||||
|
||||
<body>
|
||||
<div class="container">
|
||||
<!-- Left Section (Image and Logo) -->
|
||||
<div class="left-section">
|
||||
<div class="header">
|
||||
<h1 class="logo">Xeorl</h1>
|
||||
<button class="back-button" onclick="window.location.href='login.php';">Back to Login →</button>
|
||||
<div class="left-section">
|
||||
<div class="header">
|
||||
<h1 class="logo">Xeorl</h1>
|
||||
<button class="back-button" onclick="window.location.href='login.php';">Back to Login →</button>
|
||||
</div>
|
||||
<div class="content">
|
||||
<img id="background-image" src="assets/images/travel.jpg" alt="Background Image" class="background-img">
|
||||
<h2>Unlimited Shortens but,<br>One Link at a Time</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<img id="background-image" src="assets/images/travel.jpg" alt="Background Image" class="background-img">
|
||||
<h2>Unimited Shortens but,<br>One Link at a Time</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Right Section (Form) -->
|
||||
<div class="right-section">
|
||||
<div class="form-container">
|
||||
<h2>Enter Confirmation Code</h2>
|
||||
<p>We sent a code to <strong id="userEmail"><?php echo htmlspecialchars($email); ?></strong></p>
|
||||
|
||||
<form id="codeForm" action="./core/forgot_pass_action_two.php" method="post">
|
||||
<!-- Input type set to 'tel' for numeric keyboard, with pattern for validation -->
|
||||
<input type="tel" name="otp" pattern="[0-9]*" inputmode="numeric" placeholder="Enter 6-digit code" class="input-field full-width" maxlength="6" required>
|
||||
<button type="submit" class="submit-button">Continue</button>
|
||||
</form>
|
||||
|
||||
<div class="resend-code">
|
||||
<p>Didn't receive the email? <a href="core/resend.php">Click to resend</a></p>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="success-message" class="success-message">
|
||||
<!-- Error message container -->
|
||||
<?php if (isset($_SESSION['error_message'])): ?>
|
||||
<div class="error-message" style="display: block; color: red; font-size: 14px; margin-top: 10px;">
|
||||
<?php echo htmlspecialchars($_SESSION['error_message']);
|
||||
unset($_SESSION['error_message']); ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<!-- Success message container -->
|
||||
<?php
|
||||
if (isset($_SESSION['success_message'])) {
|
||||
echo '<span style="display: block; color: #4CAF50; font-size: 14px; margin-top: 10px;">' . htmlspecialchars($_SESSION['success_message']) . '</span>';
|
||||
unset($_SESSION['success_message']);
|
||||
}
|
||||
?>
|
||||
<?php if (isset($_SESSION['success_message'])): ?>
|
||||
<span style="display: block; color: #4CAF50; font-size: 14px; margin-top: 10px;">
|
||||
<?php echo htmlspecialchars($_SESSION['success_message']);
|
||||
unset($_SESSION['success_message']); ?>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
// Pass the PHP email value to JavaScript and set it in the HTML
|
||||
document.getElementById('userEmail').textContent = "<?php echo isset($email) ? htmlspecialchars($email) : ''; ?>";
|
||||
</script>
|
||||
|
||||
<script src="assets/js/_forgot_pass.js"></script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
</html>
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
<?php
|
||||
require 'core/process.php';
|
||||
require 'core/get_statistics.php';
|
||||
require 'core/get_statistics.php';
|
||||
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1); // Include the statistics file
|
||||
ini_set('display_errors', 1);
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
@@ -24,7 +25,7 @@ ini_set('display_errors', 1); // Include the statistics file
|
||||
<link rel="stylesheet" href="assets/css/_home.css">
|
||||
</head>
|
||||
<body>
|
||||
<?php include "assets/_header.php"; ?>
|
||||
<?php include "assets/_header.php"; ?>
|
||||
|
||||
<main>
|
||||
<!-- Shorten Section -->
|
||||
@@ -38,8 +39,7 @@ ini_set('display_errors', 1); // Include the statistics file
|
||||
</div>
|
||||
<div class="shortened-links">
|
||||
<h2>Your shortened links :</h2>
|
||||
<ul id="links-list">
|
||||
</ul>
|
||||
<ul id="links-list"></ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -58,19 +58,16 @@ ini_set('display_errors', 1); // Include the statistics file
|
||||
<div class="stat-item">
|
||||
<img src="assets/images/total.png" alt="Total Clicks" class="stat-icon total-icon">
|
||||
<h3>Total Clicks</h3>
|
||||
<!-- Here we are adding extra values + total clicks for ranking up the website values -->
|
||||
<p><?php echo 77467 + $total_clicks; ?></p>
|
||||
</div>
|
||||
<div class="stat-item">
|
||||
<img src="assets/images/links.png" alt="Total Links" class="stat-icon links-icon">
|
||||
<h3>Total URLs</h3>
|
||||
<!-- Here we are adding extra values + total links for ranking up the website values -->
|
||||
<p><?php echo 9730 + $total_links; ?></p>
|
||||
</div>
|
||||
<div class="stat-item">
|
||||
<img src="assets/images/users.png" alt="Active Users" class="stat-icon users-icon">
|
||||
<h3>Register Users</h3>
|
||||
<!-- Here we are adding extra values + total users for ranking up the website values -->
|
||||
<strong style="font-weight: bold; font-size: 1.5em;"><?php echo 3987 + $total_users; ?></strong>
|
||||
</div>
|
||||
</div>
|
||||
@@ -91,8 +88,10 @@ ini_set('display_errors', 1); // Include the statistics file
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<?php include 'assets/_cookies.php'; ?>
|
||||
<?php include 'assets/_footer.php'; ?>
|
||||
<script src="assets/js/_home.js"></script>
|
||||
<script src="assets/js/developer_tools.js"></script>
|
||||
<script src="assets/js/_developer_tools.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -9,21 +9,20 @@ ini_set('display_errors', 1);
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" type="image/png" href="./assets/images/favicon-96x96.png" sizes="96x96" />
|
||||
<link rel="icon" type="image/svg+xml" href="./assets/images/favicon.svg" />
|
||||
<link rel="shortcut icon" href="./assets/images/favicon.ico" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="./assets/images/apple-touch-icon.png" />
|
||||
<link rel="icon" type="image/png" href="./assets/images/favicon-96x96.png" sizes="96x96">
|
||||
<link rel="icon" type="image/svg+xml" href="./assets/images/favicon.svg">
|
||||
<link rel="shortcut icon" href="./assets/images/favicon.ico">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="./assets/images/apple-touch-icon.png">
|
||||
<meta name="apple-mobile-web-app-title" content="Xeorl">
|
||||
<link rel="manifest" href="./assets/images/site.webmanifest" />
|
||||
<link rel="manifest" href="./assets/images/site.webmanifest">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Mulish:ital,wght@0,200..1000;1,200..1000&family=Work+Sans:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Mulish:wght@200..1000&family=Work+Sans:wght@100..900&display=swap" rel="stylesheet">
|
||||
<title>Login</title>
|
||||
<link rel="stylesheet" href="assets/css/_login.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="container" style="user-select: none;">
|
||||
<!-- Left Section (Image and Logo) -->
|
||||
<div class="left-section">
|
||||
<div class="header">
|
||||
<h1 class="logo">Xeorl</h1>
|
||||
@@ -34,29 +33,22 @@ ini_set('display_errors', 1);
|
||||
<h2>Unlocking Links,<br>One Link at a Time</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Right Section (Form) -->
|
||||
<div class="right-section">
|
||||
<div class="form-container">
|
||||
<h2>Login to your account</h2>
|
||||
<p>Don't have an account? <a href="register.php">Register</a></p>
|
||||
<form action="./core/login_action.php" method="post">
|
||||
<input type="email" placeholder="Email" class="input-field full-width" name="user_email" required>
|
||||
|
||||
<!-- Password field with eye icon -->
|
||||
<div class="input-container">
|
||||
<input type="password" placeholder="Enter your password" class="input-field full-width" id="password-field" name="user_pass" required>
|
||||
<img src="assets/images/eye.svg" alt="Show Password" class="eye-icon" id="toggle-password">
|
||||
</div>
|
||||
<!-- Displaying error messages -->
|
||||
<?php
|
||||
if (isset($_SESSION['error'])) {
|
||||
echo "<div style='color: red; font-size: 14px; margin-top: -20px; margin-bottom: 3px;' class='error-message'>" . $_SESSION['error'] . "</div>";
|
||||
unset($_SESSION['error']);
|
||||
}
|
||||
?>
|
||||
|
||||
<!-- Remember Me Checkbox, Forgot Password link, and Beta Notice -->
|
||||
<div class="checkbox-forgot-container">
|
||||
<div class="checkbox-container">
|
||||
<input type="checkbox" id="remember-me" class="custom-checkbox">
|
||||
@@ -64,23 +56,16 @@ ini_set('display_errors', 1);
|
||||
</div>
|
||||
<a href="forgot_pass_step_one.php" class="forgot-password-link">Forgot password?</a>
|
||||
</div>
|
||||
|
||||
<!-- Beta Notice -->
|
||||
<p class="beta-notice">
|
||||
This is a beta functionality. Please note that there are potential security concerns related to leaving your account logged in for long periods of time; especially when using an insecure, shared, or public device.
|
||||
</p>
|
||||
|
||||
<button type="submit" class="submit-button" name="login_btn">Login</button>
|
||||
</form>
|
||||
|
||||
<div class="divider">Or login with</div>
|
||||
|
||||
<div class="social-login">
|
||||
<!-- Link to Google login via redirect.php -->
|
||||
<button class="google-btn" onclick="window.location.href='core/redirect_google.php'">
|
||||
<img src="assets/images/google.png" alt="Google Logo"> Google
|
||||
</button>
|
||||
|
||||
<button class="apple-btn">
|
||||
<img src="assets/images/apple.png" alt="Apple Logo"> Apple
|
||||
</button>
|
||||
@@ -88,7 +73,6 @@ ini_set('display_errors', 1);
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="assets/js/_login.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
session_start();
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
|
||||
if (!isset($_SESSION['user_id'])) {
|
||||
header("Location: login.php");
|
||||
exit();
|
||||
@@ -11,29 +12,28 @@ if (!isset($_SESSION['user_id'])) {
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta charset="UTF-8">
|
||||
<meta charset="UTF-8">
|
||||
<title>Monetization</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="Xeorl - The All-In-One, Fully Free to Use Advanced Link Shortener and Management Tool - Equipped with Multi-layered URL encryption, URL metadata remover, Mass shrinker, Quick link and Many more! - Powered by @xodivorce...">
|
||||
<link rel="icon" type="image/png" href="./assets/images/favicon-96x96.png" sizes="96x96" />
|
||||
<link rel="icon" type="image/svg+xml" href="./assets/images/favicon.svg" />
|
||||
<link rel="shortcut icon" href="./assets/images/favicon.ico" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="./assets/images/apple-touch-icon.png" />
|
||||
<link rel="icon" type="image/png" href="./assets/images/favicon-96x96.png" sizes="96x96">
|
||||
<link rel="icon" type="image/svg+xml" href="./assets/images/favicon.svg">
|
||||
<link rel="shortcut icon" href="./assets/images/favicon.ico">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="./assets/images/apple-touch-icon.png">
|
||||
<meta name="apple-mobile-web-app-title" content="Xeorl">
|
||||
<link rel="manifest" href="./assets/images/site.webmanifest" />
|
||||
<link rel="manifest" href="./assets/images/site.webmanifest">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet">
|
||||
<link rel="stylesheet" href="assets/css/_monetization.css">
|
||||
</head>
|
||||
<body>
|
||||
<?php include "assets/_header.php"; ?>
|
||||
<main>
|
||||
<h2>Welcome, <?php echo $_SESSION['user_name']; ?>!</h2>
|
||||
<p>Email: <?php echo $_SESSION['user_email']; ?></p>
|
||||
<a href="logout.php">Logout</a>
|
||||
</main>
|
||||
<?php include "assets/_footer.php"; ?>
|
||||
<?php include "assets/_header.php"; ?>
|
||||
<main>
|
||||
<h2>Welcome, <?php echo htmlspecialchars($_SESSION['user_name']); ?>!</h2>
|
||||
<p>Email: <?php echo htmlspecialchars($_SESSION['user_email']); ?></p>
|
||||
<a href="logout.php">Logout</a>
|
||||
</main>
|
||||
<?php include "assets/_footer.php"; ?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" type="image/png" href="./assets/images/favicon-96x96.png" sizes="96x96" />
|
||||
<link rel="icon" type="image/svg+xml" href="./assets/images/favicon.svg" />
|
||||
<link rel="shortcut icon" href="./assets/images/favicon.ico" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="./assets/images/apple-touch-icon.png" />
|
||||
<link rel="icon" type="image/png" href="./assets/images/favicon-96x96.png" sizes="96x96">
|
||||
<link rel="icon" type="image/svg+xml" href="./assets/images/favicon.svg">
|
||||
<link rel="shortcut icon" href="./assets/images/favicon.ico">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="./assets/images/apple-touch-icon.png">
|
||||
<meta name="apple-mobile-web-app-title" content="Xeorl">
|
||||
<link rel="manifest" href="./assets/images/site.webmanifest" />
|
||||
<link rel="manifest" href="./assets/images/site.webmanifest">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Mulish:ital,wght@0,200..1000;1,200..1000&family=Work+Sans:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet">
|
||||
@@ -17,38 +17,24 @@
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<!-- Left Section (Image and Logo) -->
|
||||
<div class="left-section">
|
||||
<div class="header">
|
||||
<h1 class="logo">Xeorl</h1>
|
||||
<h1 class="logo">Xeorl</h1>
|
||||
<button class="back-button" onclick="window.location.href='login.php';">Back to Login →</button>
|
||||
</div>
|
||||
<div class="content">
|
||||
<img id="background-image" src="assets/images/travel.jpg" alt="Background Image" class="background-img">
|
||||
<h2>Unimited Shortens but,<br>One Link at a Time</h2>
|
||||
<h2>Unlimited Shortens but,<br>One Link at a Time</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Right Section (Success Message) -->
|
||||
<div class="right-section">
|
||||
<div class="form-container">
|
||||
<h2>Password Reset!</h2>
|
||||
<p>
|
||||
Your password has been successfully reset.
|
||||
We understand that keeping your account secure is important,
|
||||
and we're here to help you every step of the way.
|
||||
You can now log in using your new password.
|
||||
If you have any questions or need further assistance,
|
||||
feel free to reach out to our support team at
|
||||
<a href="mailto:hey@xodivorce.in" class="support-email">support@xeorl.buzz</a>.
|
||||
Click the button below to log in and access your account.
|
||||
</p>
|
||||
|
||||
<p>Your password has been successfully reset. We understand that keeping your account secure is important, and we're here to help you every step of the way. You can now log in using your new password. If you have any questions or need further assistance, feel free to reach out to our support team at <a href="mailto:hey@xodivorce.in" class="support-email">support@xeorl.buzz</a>. Click the button below to log in and access your account.</p>
|
||||
<button class="submit-button" onclick="window.location.href='login.php';">Continue</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="assets/js/_forgot_pass.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
session_start(); // Start the session to access error messages
|
||||
session_start();
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
?>
|
||||
@@ -9,12 +9,12 @@ ini_set('display_errors', 1);
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="icon" type="image/png" href="./assets/images/favicon-96x96.png" sizes="96x96" />
|
||||
<link rel="icon" type="image/svg+xml" href="./assets/images/favicon.svg" />
|
||||
<link rel="shortcut icon" href="./assets/images/favicon.ico" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="./assets/images/apple-touch-icon.png" />
|
||||
<link rel="icon" type="image/png" href="./assets/images/favicon-96x96.png" sizes="96x96">
|
||||
<link rel="icon" type="image/svg+xml" href="./assets/images/favicon.svg">
|
||||
<link rel="shortcut icon" href="./assets/images/favicon.ico">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="./assets/images/apple-touch-icon.png">
|
||||
<meta name="apple-mobile-web-app-title" content="Xeorl">
|
||||
<link rel="manifest" href="./assets/images/site.webmanifest" />
|
||||
<link rel="manifest" href="./assets/images/site.webmanifest">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Mulish:ital,wght@0,200..1000;1,200..1000&family=Work+Sans:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet">
|
||||
@@ -23,63 +23,63 @@ ini_set('display_errors', 1);
|
||||
</head>
|
||||
<body>
|
||||
<div class="container" style="user-select: none;">
|
||||
<!-- Left Section (Image and Logo) -->
|
||||
<div class="left-section">
|
||||
<div class="header">
|
||||
<h1 class="logo">Xeorl</h1>
|
||||
<h1 class="logo">Xeorl</h1>
|
||||
<button class="back-button" onclick="window.location.href='home.php';">Back to website →</button>
|
||||
</div>
|
||||
<div class="content">
|
||||
<img id="background-image" src="assets/images/travel.jpg" alt="Background Image" class="background-img">
|
||||
<img id="background-image" src="assets/images/travel.jpg" alt="Background Image" class="background-img">
|
||||
<h2>Capturing Links,<br>One Link at a Time</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Right Section (Form) -->
|
||||
<div class="right-section">
|
||||
<div class="form-container">
|
||||
<h2>Create an account</h2>
|
||||
<p>Already have an account? <a href="login.php">Log in</a></p>
|
||||
|
||||
<form action="./core/register_action.php" method="post">
|
||||
<div class="input-container">
|
||||
<input type="text" placeholder="First name" class="input-field" name="f_name">
|
||||
<input type="text" placeholder="Last name" class="input-field" name="l_name">
|
||||
</div>
|
||||
<input type="email" placeholder="Email" class="input-field full-width" name="user_email">
|
||||
|
||||
<!-- Password field with eye icon -->
|
||||
<div class="input-container">
|
||||
<input type="password" placeholder="Enter your password" class="input-field full-width" id="password-field" name="user_pass">
|
||||
<img src="assets/images/eye.svg" alt="Show Password" class="eye-icon" id="toggle-password">
|
||||
</div>
|
||||
|
||||
<!-- Displaying error messages -->
|
||||
<?php
|
||||
if (isset($_SESSION['error'])) {
|
||||
echo "<div style='color: red; font-size: 14px; margin-top: -24px; margin-bottom: 7px;'>" . $_SESSION['error'] . "</div>";
|
||||
unset($_SESSION['error']); // Clear the error message after displaying it
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
<?php if (isset($_SESSION['error'])): ?>
|
||||
<div style="color: red; font-size: 14px; margin-top: -24px; margin-bottom: 7px;">
|
||||
<?= $_SESSION['error'] ?>
|
||||
</div>
|
||||
<?php unset($_SESSION['error']); ?>
|
||||
<?php endif; ?>
|
||||
<div class="checkbox-container">
|
||||
<input type="checkbox" id="agree" class="custom-checkbox" name="user_agree" value="1">
|
||||
<label for="agree">I agree to the <a href="#" class="terms-link">Terms & Conditions</a></label>
|
||||
</div>
|
||||
|
||||
<?php if (isset($_SESSION['error'])): ?>
|
||||
<div id="error-message" style="color: red; font-size: 14px; margin-top: 5px;">
|
||||
<?= $_SESSION['error'] ?>
|
||||
</div>
|
||||
<?php unset($_SESSION['error']); ?>
|
||||
<?php else: ?>
|
||||
<div id="error-message" style="color: red; font-size: 14px; margin-top: 5px; display: none;"></div>
|
||||
<?php endif; ?>
|
||||
<button type="submit" class="submit-button" name="submit_btn">Create account</button>
|
||||
</form>
|
||||
<div class="divider">Or register with</div>
|
||||
|
||||
<div class="social-login">
|
||||
<button class="google-btn" onclick="window.location.href='core/redirect_google.php'"> <img src="assets/images/google.png" alt="Google Logo"> Google</button>
|
||||
<button class="apple-btn"> <img src="assets/images/apple.png" alt="Apple Logo"> Apple</button>
|
||||
<button class="google-btn" onclick="window.location.href='core/redirect_google.php'">
|
||||
<img src="assets/images/google.png" alt="Google Logo"> Google
|
||||
</button>
|
||||
<button class="apple-btn">
|
||||
<img src="assets/images/apple.png" alt="Apple Logo"> Apple
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="assets/js/_register.js"></script>
|
||||
<script src="assets/js/_developer_tools.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -13,42 +13,40 @@ $redirect_url = $_SESSION['redirect_url'];
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta charset="UTF-8">
|
||||
<title>Xeorl - Unzipper</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="Xeorl - The All-In-One, Fully Free to Use Advanced Link Shortener and Management Tool - Equipped with Multi-layered URL encryption, URL metadata remover, Mass shrinker, Quick link and Many more! - Powered by @xodivorce...">
|
||||
<link rel="icon" type="image/png" href="./assets/images/favicon-96x96.png" sizes="96x96" />
|
||||
<link rel="icon" type="image/svg+xml" href="./assets/images/favicon.svg" />
|
||||
<link rel="shortcut icon" href="./assets/images/favicon.ico" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="./assets/images/apple-touch-icon.png" />
|
||||
<link rel="icon" type="image/png" href="./assets/images/favicon-96x96.png" sizes="96x96">
|
||||
<link rel="icon" type="image/svg+xml" href="./assets/images/favicon.svg">
|
||||
<link rel="shortcut icon" href="./assets/images/favicon.ico">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="./assets/images/apple-touch-icon.png">
|
||||
<meta name="apple-mobile-web-app-title" content="Xeorl">
|
||||
<link rel="manifest" href="./assets/images/site.webmanifest" />
|
||||
<link rel="manifest" href="./assets/images/site.webmanifest">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet">
|
||||
<link rel="stylesheet" href="assets/css/_unzipper.css">
|
||||
</head>
|
||||
<body>
|
||||
<?php include "assets/_header.php"; ?>
|
||||
<div class="max-container">
|
||||
<div class="container">
|
||||
<h2>Your link is almost ready.</h2>
|
||||
<div class="countdown-wrapper">
|
||||
<div class="countdown">
|
||||
<span id="timer">10</span><br>Seconds
|
||||
<?php include "assets/_header.php"; ?>
|
||||
<div class="max-container">
|
||||
<div class="container">
|
||||
<h2>Your link is almost ready.</h2>
|
||||
<div class="countdown-wrapper">
|
||||
<div class="countdown">
|
||||
<span id="timer">10</span><br>Seconds
|
||||
</div>
|
||||
</div>
|
||||
<button id="getLinkBtn" disabled onclick="redirect()">PLEASE WAIT...</button>
|
||||
</div>
|
||||
<button id="getLinkBtn" disabled onclick="redirect()">PLEASE WAIT...</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php include "assets/_footer.php"; ?>
|
||||
|
||||
<script>
|
||||
const redirectUrl = "<?php echo $redirect_url; ?>";
|
||||
</script>
|
||||
|
||||
<script src="assets/js/_unzipper.js"></script>
|
||||
|
||||
<?php include "assets/_cookies.php"; ?>
|
||||
<?php include "assets/_footer.php"; ?>
|
||||
<script>
|
||||
const redirectUrl = "<?php echo $redirect_url; ?>";
|
||||
</script>
|
||||
<script src="assets/js/_developer_tools.js"></script>
|
||||
<script src="assets/js/_unzipper.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user