Файловый менеджер - Редактировать - /var/www/jonas-eriksen.dk/admin/Class.admin.php
Назад
<?php class admin { private $db; function __construct($DB_con) { $this->db = $DB_con; } public function register($username, $password, $name, $level) { try { $new_password = password_hash($password, PASSWORD_DEFAULT); $stmt = $this->db->prepare("INSERT INTO result_internaluser(username, password, name, admin_level) VALUES (:uname, :upass, :name, :level)"); $stmt->bindparam(":uname", $username); $stmt->bindparam(":upass", $new_password); $stmt->bindparam(":name", $name); $stmt->bindparam(":level", $level); $stmt->execute(); return $stmt; } catch (PDOException $e) { echo $e->getMessage(); } } public function login($uname, $upassword) { try { $stmt = $this->db->prepare("SELECT * FROM result_internaluser WHERE username = :uname LIMIT 1"); $stmt->execute(array(':uname' => $uname)); $adminRow = $stmt->fetch(PDO::FETCH_ASSOC); if ($stmt->rowCount() == 1 && $adminRow['isDeleted'] == 0) { if (password_verify($upassword, $adminRow['password'])) { $_SESSION['username'] = $adminRow['username']; $_SESSION['admin_level'] = $adminRow['admin_level']; $_SESSION['userId'] = $adminRow['id']; $_SESSION['resetPassword'] = $adminRow['resetPassword']; $_SESSION['last_activity'] = time(); $time_stmt = $this->db->prepare("UPDATE result_internaluser SET lastLogin = CURRENT_TIME WHERE username = :uname LIMIT 1"); $time_stmt->execute(array(':uname' => $uname)); return true; } else { return false; } } } catch (PDOException $e) { echo $e->getMessage(); } } public function admin_level($level) { if (isset($_SESSION['username'])) { if ($_SESSION['admin_level'] == $level || $level == 0) { return true; } else if ( $level != 0 && $_SESSION['admin_level'] < $level) { return true; } } } public function passwordResetCheck() { if (isset($_SESSION['username'])) { if ($_SESSION['resetPassword']) { //$this->redirect('/admin/password.php?reset'); echo "<script type='text/javascript'>window.location.href = '/admin/password.php?reset';</script>"; exit(); } } } public function redirect($url) { header("location: $url"); exit('Should have redirected'); } public function logout() { session_unset(); // unset $_SESSION variable for the run-time session_destroy(); // destroy session data in storage return true; } public function getUsernames($uname) { $stmt = $this->db->prepare("SELECT username FROM result_internaluser WHERE username = :uname"); $stmt->execute(array(':uname' => $uname)); return $stmt->fetch(PDO::FETCH_ASSOC); } public function changePassword($username, $password, $newPassword) { try { $stmt = $this->db->prepare("SELECT * FROM result_internaluser WHERE username = :uname LIMIT 1"); $stmt->execute(array(':uname' => $username)); $adminRow = $stmt->fetch(PDO::FETCH_ASSOC); if ($stmt->rowCount() == 1 && $adminRow['isDeleted'] == 0) { if (password_verify($password, $adminRow['password'])) { $stmt2 = $this->db->prepare("UPDATE result_internaluser SET password = :password, resetPassword = 0 WHERE username = :username"); $stmt2->execute(array(':password' => password_hash($newPassword, PASSWORD_DEFAULT), ':username' => $username)); $this->logout(); $this->redirect('/'); } } } catch (PDOException $e) { echo $e->getMessage(); } } public function changePasswordForUser($admin_username, $password, $user_id, $newPassword) { try { $stmt = $this->db->prepare("SELECT * FROM result_internaluser WHERE username = :uname LIMIT 1"); $stmt->execute(array(':uname' => $admin_username)); $adminRow = $stmt->fetch(PDO::FETCH_ASSOC); if ($stmt->rowCount() == 1 && $adminRow['isDeleted'] == 0) { if (password_verify($password, $adminRow['password'])) { $stmt2 = $this->db->prepare("UPDATE result_internaluser SET password = :password, resetPassword = 1 WHERE id = :id"); $stmt2->execute(array(':password' => password_hash($newPassword, PASSWORD_DEFAULT), ':id' => $user_id)); $this->redirect('/admin/show.php?admin=' . $user_id . '&success-code=true'); } else{ return false; } } else { return false; } } catch (PDOException $e) { echo $e->getMessage(); } } public function forceChangePasswords() { try { $stmt = $this->db->prepare("SELECT id FROM result_internaluser"); $stmt->execute(); $users = $stmt->fetch(PDO::FETCH_ASSOC); foreach ($users as $user) { $updateStmt = $this->db->prepare("UPDATE result_internaluser SET resetPassword = 1"); $updateStmt->execute(); } $this->logout(); } catch (PDOException $e) { echo $e->getMessage(); } } public function forceChangePasswordForUser($id) { try { $updateStmt = $this->db->prepare("UPDATE result_internaluser SET resetPassword = 1 WHERE id = :id"); $updateStmt->execute(array(":id" => $id)); } catch (PDOException $e) { echo $e->getMessage(); } } public function getAdmin($id) { try { $stmt = $this->db->prepare("SELECT username, name, isDeleted, admin_level, lastLogin FROM result_internaluser WHERE id = :id"); $stmt->execute(array(":id" => $id)); $admin = $stmt->fetch(PDO::FETCH_BOTH); return $admin; } catch (PDOException $e) { echo $e->getMessage(); } } public function getAllAdmins() { try { $stmt = $this->db->prepare("SELECT username, name, isDeleted, admin_level, lastLogin, id FROM result_internaluser ORDER BY name, username"); $stmt->execute(); $admin = $stmt->fetchall(); return $admin; } catch (PDOException $e) { echo $e->getMessage(); } } public function saveAdmin($id, $name, $deleted, $level) { try { $stmt = $this->db->prepare("UPDATE result_internaluser SET name = :name, isDeleted = :deleted, admin_level = :level WHERE id = :id"); $stmt->execute(array(":id" => $id, ":name" => $name, ":deleted" => $deleted, ":level" => $level)); } catch (PDOException $e) { echo $e->getMessage(); } } } ?>
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка