"skús to commitnúť, počkaj toto ../ dám ešte preč aby to nevypadalo tak..."
This commit is contained in:
parent
ba03dd7cd8
commit
2b4012bc6b
49
index.php
49
index.php
@ -1,4 +1,16 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
function include_ob($file){
|
||||||
|
ob_start();
|
||||||
|
include $file;
|
||||||
|
return ob_get_clean();
|
||||||
|
}
|
||||||
|
|
||||||
|
function sanitize_template_strings($indata){
|
||||||
|
$sanit_pattern = '/<template.*>/is';
|
||||||
|
return preg_replace($sanit_pattern, '', $indata);
|
||||||
|
}
|
||||||
|
|
||||||
session_start();
|
session_start();
|
||||||
require_once 'config.php';
|
require_once 'config.php';
|
||||||
|
|
||||||
@ -7,7 +19,19 @@ $paths_to_check[] = "pages/global";
|
|||||||
|
|
||||||
|
|
||||||
$page = basename($_SERVER['QUERY_STRING']);
|
$page = basename($_SERVER['QUERY_STRING']);
|
||||||
$nav = file_get_contents("$template_dir/navigation.html");
|
|
||||||
|
$nav = include_ob("$template_dir/navigation.html");
|
||||||
|
|
||||||
|
$page_regex = '/<!--PAGENAME=(.*?)-->/';
|
||||||
|
|
||||||
|
if(preg_match($page_regex, $htmlWithComments, $matches)){
|
||||||
|
$page_name = $matches[1];
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$page_name = ucfirst($page);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(empty($page)){
|
if(empty($page)){
|
||||||
$page = 'index';
|
$page = 'index';
|
||||||
@ -20,12 +44,6 @@ if (isset($_SESSION['user_id'])) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$paths_to_check[] = "pages/user";
|
$paths_to_check[] = "pages/user";
|
||||||
|
|
||||||
// Fetch user details
|
|
||||||
$user_id = $_SESSION['user_id'];
|
|
||||||
$query = "SELECT * FROM users WHERE id = $user_id";
|
|
||||||
$result = mysqli_query($mysqli, $query);
|
|
||||||
$user = mysqli_fetch_assoc($result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$page_file = "$template_dir/404.html";
|
$page_file = "$template_dir/404.html";
|
||||||
@ -41,7 +59,22 @@ ob_start();
|
|||||||
include $page_file;
|
include $page_file;
|
||||||
$page_data = ob_get_clean();
|
$page_data = ob_get_clean();
|
||||||
|
|
||||||
$page_data = str_replace("__NAV_TEMPLATE__", $nav, $page_data);
|
$page_data = preg_replace($page_regex, '', $page_data);
|
||||||
|
|
||||||
|
$output = file_get_contents("$template_dir/skeleton.html");
|
||||||
|
$output = str_replace('<template name="navigation">', $nav, $output);
|
||||||
|
$output = str_replace('<template name="page content">', $page_data, $output);
|
||||||
|
|
||||||
|
if (isset($_SESSION['user_id'])) {
|
||||||
|
$hash = md5(strtolower(trim($_SESSION['user_email'])));
|
||||||
|
$gravatarUrl = "https://www.gravatar.com/avatar/$hash?s=100";
|
||||||
|
$gravatarTag = "<img src='$gravatarUrl' alt='Gravatar Profile Picture'>";
|
||||||
|
$page_data = str_replace('<template name="gravatar image">', $gravatarTag, $page_data);
|
||||||
|
|
||||||
|
$page_data = str_replace('<template name="username">', $_SESSION['user_username'], $page_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
$output = str_replace('<template name="page name">', $page_name, $output);
|
||||||
|
|
||||||
echo $page_data;
|
echo $page_data;
|
||||||
?>
|
?>
|
||||||
|
@ -8,15 +8,18 @@ if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
|||||||
$password = $_POST['password'];
|
$password = $_POST['password'];
|
||||||
|
|
||||||
// Validate login credentials and fetch user details
|
// Validate login credentials and fetch user details
|
||||||
$query = "SELECT id, username, password, isAdmin FROM users WHERE email = ?";
|
$query = "SELECT id, username, password, email, isAdmin FROM users WHERE email = ?";
|
||||||
$stmt = $mysqli->prepare($query);
|
$stmt = $mysqli->prepare($query);
|
||||||
$stmt->bind_param("s", $email);
|
$stmt->bind_param("s", $email);
|
||||||
$stmt->execute();
|
$stmt->execute();
|
||||||
$stmt->bind_result($user_id, $user_username, $user_password, $user_isAdmin);
|
$stmt->bind_result($user_id, $user_username, $user_password, $user_email, $user_isAdmin);
|
||||||
|
|
||||||
// Fetch the result
|
// Fetch the result
|
||||||
if ($stmt->fetch() && password_verify($password, $user_password)) {
|
if ($stmt->fetch() && password_verify($password, $user_password)) {
|
||||||
$_SESSION['user_id'] = $user_id;
|
$_SESSION['user_id'] = $user_id;
|
||||||
|
$_SESSION['user_username'] = $user_username;
|
||||||
|
$_SESSION['user_email'] = $user_email;
|
||||||
|
$_SESSION['user_isAdmin'] = $user_isAdmin;
|
||||||
|
|
||||||
// Redirect to the main domain after successful login
|
// Redirect to the main domain after successful login
|
||||||
header('Location: http://watch.twip-network.org');
|
header('Location: http://watch.twip-network.org');
|
||||||
@ -28,5 +31,4 @@ if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
|||||||
// Close the statement
|
// Close the statement
|
||||||
$stmt->close();
|
$stmt->close();
|
||||||
}
|
}
|
||||||
include "pages/login.html";
|
|
||||||
?>
|
?>
|
||||||
|
@ -1,36 +1,4 @@
|
|||||||
<!DOCTYPE html>
|
<!--PAGENAME=You have rights-->
|
||||||
<html lang="en">
|
<h2>Welcome</h2>
|
||||||
<head>
|
<p>Logged in as an admin: <template name="username"></p>
|
||||||
<meta charset="UTF-8">
|
<template name="gravatar_image">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<title>Welcome Admin</title>
|
|
||||||
<link rel="stylesheet" href="../styles/pages/style.css">
|
|
||||||
<link rel="stylesheet" href="../styles/global.css">
|
|
||||||
</head>
|
|
||||||
<nav>
|
|
||||||
<ul>
|
|
||||||
<li><a href=""><i class="ri-settings-4-fill"></i></a></li>
|
|
||||||
<div class="links">
|
|
||||||
<li><a href=""></a></li>
|
|
||||||
<li><a href=""></a></li>
|
|
||||||
<li><a href=""></a></li>
|
|
||||||
</div>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
<body>
|
|
||||||
<h2>Welcome</h2>
|
|
||||||
<?php
|
|
||||||
echo "Logged in as Admin: " . $user['username'];
|
|
||||||
?>
|
|
||||||
|
|
||||||
<!-- Display Gravatar image -->
|
|
||||||
<?php
|
|
||||||
$email = $user['email'];
|
|
||||||
$hash = md5(strtolower(trim($email)));
|
|
||||||
$gravatarUrl = "https://www.gravatar.com/avatar/$hash?s=100";
|
|
||||||
echo "<img src='$gravatarUrl' alt='Gravatar Profile Picture'>";
|
|
||||||
?>
|
|
||||||
|
|
||||||
<a href="logout.php">Logout</a>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
2
pages/global/index.html
Normal file
2
pages/global/index.html
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
<!--PAGENAME=You dont have any rights-->
|
||||||
|
<h1>Watch something</h1>
|
@ -1,19 +1,7 @@
|
|||||||
<!DOCTYPE html>
|
<h2>Login</h2>
|
||||||
<html lang="en">
|
<form action="login.php" method="post">
|
||||||
<head>
|
<input type="email" name="email" id="email-field" placeholder="E-Mail" required>
|
||||||
<meta charset="UTF-8">
|
<input type="password" name="password" id="password-field" pattern=".{3,32}" placeholder="Password" required>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<input type="submit" name="login" value="Login">
|
||||||
<title>Login</title>
|
<a href="/register.php">Don't have an account?</a>
|
||||||
<link rel="stylesheet" href="../styles/pages/login.css">
|
</form>
|
||||||
<link rel="stylesheet" href="../styles/global.css">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<h2>Login</h2>
|
|
||||||
<form action="../login.php" method="post">
|
|
||||||
<input type="email" name="email" id="email-field" placeholder="E-Mail" required>
|
|
||||||
<input type="password" name="password" id="password-field" pattern=".{3,32}" placeholder="Password" required>
|
|
||||||
<input type="submit" name="login" value="Login">
|
|
||||||
<a href="/register.php">Don't have an account?</a>
|
|
||||||
</form>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,26 +1,8 @@
|
|||||||
<!DOCTYPE html>
|
<h2>Register</h2>
|
||||||
<html lang="en">
|
<form action="register.php" method="post">
|
||||||
|
<input type="text" name="username" id="username-field" pattern=".{3,32}" placeholder="Username" required>
|
||||||
<head>
|
<input type="email" name="email" id="email-field" placeholder="E-Mail" required>
|
||||||
<meta charset="UTF-8">
|
<input type="password" name="password" id="password-field" pattern=".{8,128}" placeholder="Password" required>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<input type="submit" value="Register">
|
||||||
<title>Register</title>
|
<a href="/">Already have an account?</a>
|
||||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/remixicon/4.1.0/remixicon.css"
|
</form>
|
||||||
integrity="sha512-dUOcWaHA4sUKJgO7lxAQ0ugZiWjiDraYNeNJeRKGOIpEq4vroj1DpKcS3jP0K4Js4v6bXk31AAxAxaYt3Oi9xw=="
|
|
||||||
crossorigin="anonymous" referrerpolicy="no-referrer" />
|
|
||||||
<link rel="stylesheet" href="../styles/pages/register.css">
|
|
||||||
<link rel="stylesheet" href="../styles/global.css">
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<h2>Register</h2>
|
|
||||||
<form action="../register.php" method="post">
|
|
||||||
<input type="text" name="username" id="username-field" pattern=".{3,32}" placeholder="Username" required>
|
|
||||||
<input type="email" name="email" id="email-field" placeholder="E-Mail" required>
|
|
||||||
<input type="password" name="password" id="password-field" pattern=".{8,128}" placeholder="Password" required>
|
|
||||||
<input type="submit" value="Register">
|
|
||||||
<a href="/">Already have an account?</a>
|
|
||||||
</form>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,26 +1,5 @@
|
|||||||
<!DOCTYPE html>
|
<!--PAGENAME=You do not have all rights-->
|
||||||
<html lang="en">
|
<h2>Welcome</h2>
|
||||||
<head>
|
<p>Logged in as: <template name="username"></p>
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<title>Welcome User</title>
|
|
||||||
<link rel="stylesheet" href="../styles/pages/style.css">
|
|
||||||
<link rel="stylesheet" href="../styles/global.css">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<h2>Welcome</h2>
|
|
||||||
<?php
|
|
||||||
echo "Logged in as: " . $user['username'];
|
|
||||||
?>
|
|
||||||
|
|
||||||
<!-- Display Gravatar image -->
|
<template name="gravatar image">
|
||||||
<?php
|
|
||||||
$email = $user['email'];
|
|
||||||
$hash = md5(strtolower(trim($email)));
|
|
||||||
$gravatarUrl = "https://www.gravatar.com/avatar/$hash?s=100";
|
|
||||||
echo "<img src='$gravatarUrl' alt='Gravatar Profile Picture'>";
|
|
||||||
?>
|
|
||||||
|
|
||||||
<a href="logout.php">Logout</a>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -59,6 +59,4 @@ if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
include "pages/register.html";
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
2
templates/404.html
Normal file
2
templates/404.html
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
<!--PAGENAME=You stupid-->
|
||||||
|
<h1>How can a human being be this dumb?</h1>
|
@ -0,0 +1,10 @@
|
|||||||
|
<nav>
|
||||||
|
<ul>
|
||||||
|
<li><a href=""><i class="ri-settings-4-fill"></i></a></li>
|
||||||
|
<div class="links">
|
||||||
|
<li><a href=""></a></li>
|
||||||
|
<li><a href=""></a></li>
|
||||||
|
<li><a href=""></a></li>
|
||||||
|
</div>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
15
templates/skeleton.html
Normal file
15
templates/skeleton.html
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/remixicon/4.0.1/remixicon.min.css" integrity="sha512-dTsohxprpcruDm4sjU92K0/Gf1nTKVVskNHLOGMqxmokBSkfOAyCzYSB6+5Z9UlDafFRpy5xLhvpkOImeFbX6A==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
||||||
|
<link rel="stylesheet" href="/styles/global.css">
|
||||||
|
<link rel="stylesheet" href='/styles/pages/<template name="page name">.css'>
|
||||||
|
<title><template name="page name"></title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<template name="navigation">
|
||||||
|
<template name="page content">
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue
Block a user