summaryrefslogtreecommitdiffstats
path: root/users.php
diff options
context:
space:
mode:
authorMaksymilian Jopek <maks@jopek.eu>2023-04-13 15:47:15 +0200
committerMaksymilian Jopek <maks@jopek.eu>2023-04-13 15:47:15 +0200
commit87ffa36c1bfa49259e48d94f09e64f83632f0071 (patch)
tree87a5f2157474c6b31a2efddaf8df5aad886ff070 /users.php
downloadcms-87ffa36c1bfa49259e48d94f09e64f83632f0071.tar.gz
cms-87ffa36c1bfa49259e48d94f09e64f83632f0071.tar.zst
cms-87ffa36c1bfa49259e48d94f09e64f83632f0071.zip
Diffstat (limited to 'users.php')
-rw-r--r--users.php99
1 files changed, 99 insertions, 0 deletions
diff --git a/users.php b/users.php
new file mode 100644
index 0000000..e1b1e18
--- /dev/null
+++ b/users.php
@@ -0,0 +1,99 @@
+<?php
+session_start();
+
+require_once "dbCredentials.php";
+require_once "consts.php";
+error_reporting(E_ALL);
+ini_set('display_errors', 1);
+$pdo = new PDO("mysql:dbname=$dbName;host=$dbHost;charset=utf8mb4", $dbUser, $dbPassword);
+$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
+$stmt = $pdo->prepare("SELECT * FROM `cms_user`");
+$stmt->execute();
+$users = $stmt->fetchAll(PDO::FETCH_ASSOC);
+
+function strStartsWith(string $needle, string $haystack)
+{
+ return substr($haystack, 0, strlen($needle)) === $needle;
+}
+if (isset($_GET["userEditType"])) {
+ $type = explode('!', $_GET["userEditType"]);
+ $_SESSION["u_Type"] = $type[0];
+ if (strStartsWith("Edit", $_GET["userEditType"]) === true || strStartsWith("Remove", $_GET["userEditType"]) === true) {
+ $stmt = $pdo->prepare("SELECT * FROM `cms_user` WHERE `id`=:id");
+ $stmt->execute(["id" => $type[1]]);
+ $user = $stmt->fetchAll(PDO::FETCH_ASSOC)[0];
+ $_SESSION["u_Id"] = $user["id"];
+ $_SESSION["u_Firstname"] = $user["firstname"];
+ $_SESSION["u_Lastname"] = $user["lastname"];
+ $_SESSION["u_Login"] = $user["login"];
+ $_SESSION["u_Password"] = $user["password"];
+ $_SESSION["u_Email"] = $user["email"];
+ $_SESSION["u_user_type"] = $user["user_type"];
+ } elseif (strStartsWith("Add", $_GET["userEditType"]) === true) {
+ $_SESSION["u_Id"] = "";
+ $_SESSION["u_Firstname"] = "";
+ $_SESSION["u_Lastname"] = "";
+ $_SESSION["u_Login"] = "";
+ $_SESSION["u_Password"] = "";
+ $_SESSION["u_Email"] = "";
+ $_SESSION["u_user_type"] = "";
+ } elseif (strStartsWith("Remove", $_GET["userEditType"]) === true) {
+ $_SESSION["u_Id"] = $type[1];
+ }
+ header("Location: userEdit.php");
+ exit();
+}
+?>
+<!doctype html>
+<html lang="en">
+
+<head>
+ <!-- Required meta tags -->
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+
+ <!-- Bootstrap CSS -->
+ <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous">
+ <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css" rel="stylesheet">
+
+ <title>sCMS - Users</title>
+</head>
+
+<body class="bg-dark">
+ <div class="container">
+ <table class="table table-dark table-bordered text-center" style="border: 1px solid white;">
+ <thead>
+ <tr>
+ <th>Id</th>
+ <th>Name</th>
+ <th>Login</th>
+ <th>Account type</th>
+ <th>Edit</th>
+ </tr>
+ </thead>
+ <tbody>
+ <?php
+ foreach ($users as $user) {
+ $user["firstname"] = ucfirst($user["firstname"]);
+ $user["lastname"] = ucfirst($user["lastname"]);
+ echo "<tr>
+ <td>{$user["id"]}</td>
+ <td>{$user["firstname"]} {$user["lastname"]}</td>
+ <td>{$user["login"]}</td>
+ <td>{$UserType[$user["user_type"]]}</td>
+ <td>
+ <a class='btn btn-primary' href='users.php?userEditType=Edit!{$user["id"]}'>Edit <i class='fas fa-edit'></i></a>&nbsp;&nbsp;
+ <a class='btn btn-danger' href='users.php?userEditType=Remove!{$user["id"]}'>Remove <i class='fas fa-trash'></i></a>
+ </td>
+ </tr>";
+ }
+ ?>
+ </tbody>
+ </table>
+ <a class="btn btn-primary" style="float: left;" href="main.php">Go to main</a>
+ <a class="btn btn-success" style="float: right;" href="users.php?userEditType=Add">Add</a>
+ </div>
+ <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-gtEjrD/SeCtmISkJkNUaaKMoLD0//ElJ19smozuHV6z3Iehds+3Ulb9Bn9Plx0x4" crossorigin="anonymous"></script>
+</body>
+
+</html> \ No newline at end of file