diff options
| author | Maksymilian Jopek <maks@jopek.eu> | 2023-04-13 15:47:15 +0200 |
|---|---|---|
| committer | Maksymilian Jopek <maks@jopek.eu> | 2023-04-13 15:47:15 +0200 |
| commit | 87ffa36c1bfa49259e48d94f09e64f83632f0071 (patch) | |
| tree | 87a5f2157474c6b31a2efddaf8df5aad886ff070 /userEdit.php | |
| download | cms-master.tar.gz cms-master.tar.zst cms-master.zip | |
Diffstat (limited to 'userEdit.php')
| -rw-r--r-- | userEdit.php | 149 |
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 |
