From 7802cd73eb49f4616f52708f87a0ffa02125aeae Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Mon, 3 Nov 2025 14:27:17 +0000 Subject: [PATCH] por --- assets/js/main.js | 17 +++++ assets/vm-shot-2025-11-03T14-03-37-685Z.jpg | Bin 0 -> 15472 bytes assets/vm-shot-2025-11-03T14-03-50-990Z.jpg | Bin 0 -> 15472 bytes dashboard.php | 32 ++------- db/config.php | 40 ----------- db/setup.php | 35 --------- includes/header.php | 22 ++---- index.php | 75 ++------------------ login.php | 44 ------------ logout.php | 22 ------ register.php | 54 -------------- 11 files changed, 29 insertions(+), 312 deletions(-) create mode 100644 assets/vm-shot-2025-11-03T14-03-37-685Z.jpg create mode 100644 assets/vm-shot-2025-11-03T14-03-50-990Z.jpg delete mode 100644 db/config.php delete mode 100644 db/setup.php delete mode 100644 login.php delete mode 100644 logout.php delete mode 100644 register.php diff --git a/assets/js/main.js b/assets/js/main.js index e69de29..42fff7e 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -0,0 +1,17 @@ +document.addEventListener('DOMContentLoaded', function() { + console.log('main.js loaded successfully.'); + + // Future JavaScript for animations, dynamic content, and game logic will go here. + + // Example: Smooth scrolling for anchor links + document.querySelectorAll('a[href^="#"]').forEach(anchor => { + anchor.addEventListener('click', function (e) { + e.preventDefault(); + + document.querySelector(this.getAttribute('href')).scrollIntoView({ + behavior: 'smooth' + }); + }); + }); + +}); diff --git a/assets/vm-shot-2025-11-03T14-03-37-685Z.jpg b/assets/vm-shot-2025-11-03T14-03-37-685Z.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e61df1893790eff87834945d56616a7040ad3a62 GIT binary patch literal 15472 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 literal 0 HcmV?d00001 diff --git a/assets/vm-shot-2025-11-03T14-03-50-990Z.jpg b/assets/vm-shot-2025-11-03T14-03-50-990Z.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e61df1893790eff87834945d56616a7040ad3a62 GIT binary patch literal 15472 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 literal 0 HcmV?d00001 diff --git a/dashboard.php b/dashboard.php index 82a8a23..b33fa81 100644 --- a/dashboard.php +++ b/dashboard.php @@ -1,39 +1,16 @@ prepare("SELECT * FROM users WHERE id = ?"); - $stmt->execute([$_SESSION['user_id']]); - $user = $stmt->fetch(); -} catch (PDOException $e) { - // Handle error, maybe redirect or show a message - $user = null; -} - ?>
-

Welcome, !

+

Welcome, Player!

Your Status

- -

Level:

-

XP:

-

Role:

- -

Could not load user data.

- +

Level: 1

+

XP: 0

+

Role: Learner

@@ -43,7 +20,6 @@ try {
- \ No newline at end of file diff --git a/db/config.php b/db/config.php deleted file mode 100644 index 45c9b30..0000000 --- a/db/config.php +++ /dev/null @@ -1,40 +0,0 @@ -setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); - $pdo_init->exec("CREATE DATABASE IF NOT EXISTS `" . DB_NAME . "`"); - $pdo_init = null; -} catch(PDOException $e) { - // Don't die, the main connection will handle it -} - -function db(): PDO { - static $pdo; - if ($pdo) { - return $pdo; - } - - $dsn = "mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";charset=" . DB_CHARSET; - $options = [ - PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, - PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, - PDO::ATTR_EMULATE_PREPARES => false, - ]; - try { - $pdo = new PDO($dsn, DB_USER, DB_PASS, $options); - return $pdo; - } catch (PDOException $e) { - // In a real app, you'd log this error. - // For this setup, we'll just show a generic error. - die('Database connection failed. Please check config and ensure MySQL is running.'); - } -} -?> \ No newline at end of file diff --git a/db/setup.php b/db/setup.php deleted file mode 100644 index a643d82..0000000 --- a/db/setup.php +++ /dev/null @@ -1,35 +0,0 @@ -exec($sql); - - // Optional: Create a default admin user if one doesn't exist - $stmt = $pdo->prepare("SELECT id FROM users WHERE username = 'admin'"); - $stmt->execute(); - if ($stmt->rowCount() == 0) { - $admin_pass = 'admin123'; // Super secure default password - $admin_hash = password_hash($admin_pass, PASSWORD_DEFAULT); - $admin_sql = "INSERT INTO users (username, password_hash, user_role) VALUES ('admin', ?, 'admin')"; - $admin_stmt = $pdo->prepare($admin_sql); - $admin_stmt->execute([$admin_hash]); - echo "Default admin user created with username 'admin' and password 'admin123'.
"; - } - - echo "Database setup completed successfully!"; - -} catch (PDOException $e) { - die("Database setup failed: " . $e->getMessage()); -} -?> \ No newline at end of file diff --git a/includes/header.php b/includes/header.php index 86ab3bb..b36a872 100644 --- a/includes/header.php +++ b/includes/header.php @@ -1,6 +1,3 @@ - @@ -30,21 +27,10 @@ session_start(); diff --git a/index.php b/index.php index ea53b16..d29dcc0 100644 --- a/index.php +++ b/index.php @@ -1,83 +1,16 @@

Level Up Your IT Skills

Join quests, conquer challenges, and rise through the ranks. Your journey to becoming an IT master starts now.

-
- -
- -
-
-
-

Player Login

- -
Invalid username or password.
- -
-
- - -
-
- - -
-
- -
-
-
-
-
- - -
-
-
-

New Player

- -
- - -
Registration successful! Please log in.
- -
-
- - -
-
- - -
-
- - -
-
- -
-
-
-
+
+?> \ No newline at end of file diff --git a/login.php b/login.php deleted file mode 100644 index 0beff24..0000000 --- a/login.php +++ /dev/null @@ -1,44 +0,0 @@ -prepare("SELECT * FROM users WHERE username = ?"); - $stmt->execute([$username]); - $user = $stmt->fetch(); - - if ($user && password_verify($password, $user['password_hash'])) { - // Password is correct, start session - session_regenerate_id(); - $_SESSION['user_id'] = $user['id']; - $_SESSION['username'] = $user['username']; - $_SESSION['user_role'] = $user['user_role']; - - header('Location: dashboard.php'); - exit(); - } else { - // Invalid credentials - header('Location: index.php?login_error=1#login'); - exit(); - } - -} catch (PDOException $e) { - // In a real app, log the error - header('Location: index.php?login_error=1#login'); - exit(); -} -?> \ No newline at end of file diff --git a/logout.php b/logout.php deleted file mode 100644 index d1d29a0..0000000 --- a/logout.php +++ /dev/null @@ -1,22 +0,0 @@ - \ No newline at end of file diff --git a/register.php b/register.php deleted file mode 100644 index ff5172e..0000000 --- a/register.php +++ /dev/null @@ -1,54 +0,0 @@ -prepare("SELECT id FROM users WHERE username = ?"); - $stmt->execute([$username]); - if ($stmt->rowCount() > 0) { - header('Location: index.php?reg_error=Username already taken.#register'); - exit(); - } - - // Hash password and insert user - $password_hash = password_hash($password, PASSWORD_DEFAULT); - $stmt = $pdo->prepare("INSERT INTO users (username, password_hash) VALUES (?, ?)"); - $stmt->execute([$username, $password_hash]); - - header('Location: index.php?reg_success=1#login'); - exit(); - -} catch (PDOException $e) { - // In a real app, log the error - header('Location: index.php?reg_error=A database error occurred.#register'); - exit(); -} -?> \ No newline at end of file