summaryrefslogtreecommitdiffstats
path: root/userEdit.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 /userEdit.php
downloadcms-master.tar.gz
cms-master.tar.zst
cms-master.zip
Diffstat (limited to 'userEdit.php')
-rw-r--r--userEdit.php149
1 files changed, 149 insertions, 0 deletions
diff --git a/userEdit.php b/userEdit.php
new file mode 100644
index 0000000..2eca5ff
--- /dev/null
+++ b/userEdit.php
@@ -0,0 +1,149 @@
+<?php
+session_start();
+require_once "consts.php";
+checkLoggedIn();
+error_reporting(E_ALL);
+ini_set('display_errors', 1);
+$error = '';
+$type = $_SESSION["u_Type"];
+if (!in_array($type, ["Add", "Edit", "Remove"])) {
+ header("HTTP/1.0 400 Teapot not here :(");
+ header("Location: main.php");
+ exit();
+}
+
+if (!empty($_POST["name"]) || !empty($_POST["login"]) || !empty($_POST["email"]) || !empty($_POST["password"]) || !empty($_POST["repeatedPassword"])) {
+ $name = preg_replace('/\s+/', ' ', $_POST["name"]);
+ if (str_contains($name, ' ')) {
+ $firstname = explode(' ', $name)[0];
+ $lastname = explode(' ', $name)[1];
+ } else {
+ $firstname = $name;
+ $lastname = '';
+ }
+ $login = $_POST["login"];
+ $email = $_POST["email"];
+ $password = $_POST["password"];
+ $repeatedPassword = $_POST["repeatedPassword"];
+
+ if ($password !== $repeatedPassword) {
+ $error = "Password aren't the same";
+ } else {
+ require_once "dbCredentials.php";
+ $pdo = new PDO("mysql:dbname=$dbName;host=localhost;charset=utf8mb4", $dbUser, $dbPassword);
+ $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
+
+ $stmt = $pdo->prepare("SELECT `login` FROM `cms_user` WHERE `login`=:login");
+ $stmt->execute(["login" => $login]);
+ if ($type === "Add" && count($stmt->fetchAll(PDO::FETCH_ASSOC)) !== 0) {
+ $error = "User with this login already exists!";
+ } else {
+
+ if ($type === "Add")
+ $sql = "INSERT INTO `cms_user`(`login`, `password`, `firstname`, `lastname`, `email`) VALUES (:login, :password, :firstname, :lastname, :email)";
+ elseif ($type === "Edit")
+ $sql = "UPDATE `cms_user` SET `login`= :login, `password`=:password, `firstname`=:firstname, `lastname`=:lastname, `email`=:email WHERE `id`=:id";
+
+ $stmt = $pdo->prepare($sql);
+
+ if ($type === "Add") {
+ $stmt->execute([
+ "firstname" => $firstname,
+ "lastname" => $lastname,
+ "login" => $login,
+ "email" => $email,
+ "password" => $password,
+ ]);
+ } elseif ($type === "Edit") {
+ $stmt->execute([
+ "firstname" => $firstname,
+ "lastname" => $lastname,
+ "login" => $login,
+ "email" => $email,
+ "password" => $password,
+ "id" => $_SESSION["u_Id"],
+ ]);
+ }
+ $_SESSION = array_filter($_SESSION, function ($key) {
+ return strpos($key, 'u_') !== 0;
+ }, ARRAY_FILTER_USE_KEY);
+ header("Location: users.php");
+ exit();
+ }
+ }
+}
+
+if ($type === "Remove") {
+ $id = $_SESSION["u_Id"];
+ require_once "dbCredentials.php";
+ $pdo = new PDO("mysql:dbname=$dbName;host=localhost;charset=utf8mb4", $dbUser, $dbPassword);
+ $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
+ $stmt = $pdo->prepare("DELETE FROM `cms_user` WHERE `id` = :id");
+ $stmt->execute(["id" => $id]);
+ $_SESSION = array_filter($_SESSION, function ($key) {
+ return strpos($key, 'u_') !== 0;
+ }, ARRAY_FILTER_USE_KEY);
+ header("Location: users.php");
+ exit();
+}
+$name = $login = $email = $password = $repeatPassword = "";
+if ($type === "Edit") {
+ $name = $_SESSION["u_Firstname"] . ' ' . $_SESSION["u_Lastname"];
+ $login = $_SESSION["u_Login"];
+ $email = $_SESSION["u_Email"];
+ $password = $_SESSION["u_Password"];
+ $repeatedPassword = $_SESSION["u_Password"];
+ // unset($_SESSION["uFirstname"], $_SESSION["uLastname"], $_SESSION["uLogin"], $_SESSION["uEmail"], $_SESSION["uPassword"]);
+}
+?>
+<!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">
+
+ <title><?= $type ?> user</title>
+ <style>
+ input {
+ width: 100%;
+ }
+ </style>
+</head>
+
+<body class="bg-dark text-white">
+ <!-- style="margin-left: 25vw;"> -->
+ <div style="margin: 0 auto; width: 50%;">
+ <!-- class="container"> -->
+ <div style="margin: 5px auto; width: 50%;">
+ <h4><?= $type ?> user</h4>
+ <hr style="margin-left: -150%; margin-top: 0; width: 100vw;">
+ <form action="userEdit.php" method="post">
+ <label for="name">Name:</label><br>
+ <input type="text" name="name" id="name" value="<?= $name ?>" required><br>
+ <label for="login">Login:</label><br>
+ <input type="text" name="login" id="login" value="<?= $login ?>" required><br>
+ <label for="email">Email:</label><br>
+ <input type="email" name="email" id="email" value="<?= $email ?>" required><br>
+ <label for="password">Password:</label><br>
+ <input type="password" name="password" id="password" value="<?= $password ?>" required><br>
+ <label for="repeatedPassword">Repeat password:</label><br>
+ <input type="password" name="repeatedPassword" id="repeatedPassword" value="<?= $repeatedPassword ?>" required><br><br>
+ <?php
+ if ($type === "Add")
+ echo "<button type='submit' class='btn btn-warning' style='float: right;'>Dodaj</button>";
+ else
+ echo "<button type='submit' class='btn btn-info' style='float: right;'>Zapisz</button>";
+ ?>
+ </form><br><br>
+ <h3 style="float: left; color: red;"><?= $error ?></h3>
+ </div>
+ </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