mirror of
https://github.com/michalcz10/USB-RAID-Array.git
synced 2026-11-11 16:09:03 +00:00
revise backend
This commit is contained in:
@@ -1,95 +1,56 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
if (!isset($_SESSION['uname'])) {
|
||||
header("location: ../index.php");
|
||||
exit();
|
||||
}
|
||||
|
||||
require_once __DIR__ . '/../includes/auth.php';
|
||||
requireLogin('../index.php');
|
||||
require_once __DIR__ . '/../config/config.php';
|
||||
require_once __DIR__ . '/../includes/workspace.php';
|
||||
// $username = "UNAME";
|
||||
// $password = "PSWD";
|
||||
// $db = "usbraidlogin";
|
||||
|
||||
$message = "";
|
||||
$messageType = "";
|
||||
$message = '';
|
||||
$messageType = '';
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
if (isset($_POST['current_password'], $_POST['new_password'], $_POST['confirm_password'])) {
|
||||
$current_password = htmlspecialchars($_POST['current_password']);
|
||||
$new_password = htmlspecialchars($_POST['new_password']);
|
||||
$confirm_password = htmlspecialchars($_POST['confirm_password']);
|
||||
$uname = $_SESSION['uname'];
|
||||
$messageType = 'danger';
|
||||
$currentPassword = $_POST['current_password'] ?? null;
|
||||
$newPassword = $_POST['new_password'] ?? null;
|
||||
$confirmPassword = $_POST['confirm_password'] ?? null;
|
||||
|
||||
if(!CheckPassword($new_password)) {
|
||||
$message = "New password must be at least 8 characters long, contain at least one number and one uppercase letter!";
|
||||
$messageType = "danger";
|
||||
} else if ($new_password !== $confirm_password) {
|
||||
$message = "New passwords do not match!";
|
||||
$messageType = "danger";
|
||||
} else {
|
||||
$conn = getDatabaseConnection();
|
||||
// charset already set in getDatabaseConnection()
|
||||
|
||||
if ($conn->connect_error) {
|
||||
$message = "Database connection failed!";
|
||||
$messageType = "danger";
|
||||
} else {
|
||||
$sql = "SELECT pswd FROM users WHERE uname=?";
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->bind_param("s", $uname);
|
||||
$stmt->execute();
|
||||
$result = $stmt->get_result();
|
||||
|
||||
if ($result && $result->num_rows > 0) {
|
||||
$row = $result->fetch_assoc();
|
||||
$stored_hash = $row["pswd"];
|
||||
|
||||
if (password_verify($current_password, $stored_hash)) {
|
||||
$new_hash = password_hash($new_password, PASSWORD_BCRYPT);
|
||||
$update_sql = "UPDATE users SET pswd=? WHERE uname=?";
|
||||
$update_stmt = $conn->prepare($update_sql);
|
||||
$update_stmt->bind_param("ss", $new_hash, $uname);
|
||||
|
||||
if ($update_stmt->execute()) {
|
||||
$message = "Password changed successfully!";
|
||||
$messageType = "success";
|
||||
} else {
|
||||
$message = "Error updating password: " . $conn->error;
|
||||
$messageType = "danger";
|
||||
}
|
||||
$update_stmt->close();
|
||||
} else {
|
||||
$message = "Current password is incorrect!";
|
||||
$messageType = "danger";
|
||||
}
|
||||
} else {
|
||||
$message = "User not found!";
|
||||
$messageType = "danger";
|
||||
}
|
||||
|
||||
$stmt->close();
|
||||
$conn->close();
|
||||
}
|
||||
}
|
||||
if (!is_string($currentPassword) || !is_string($newPassword) || !is_string($confirmPassword)) {
|
||||
$message = 'All fields are required!';
|
||||
} elseif (!isPasswordValid($newPassword)) {
|
||||
$message = 'New password must be at least 8 characters long, contain at least one number and one uppercase letter!';
|
||||
} elseif ($newPassword !== $confirmPassword) {
|
||||
$message = 'New passwords do not match!';
|
||||
} else {
|
||||
$message = "All fields are required!";
|
||||
$messageType = "danger";
|
||||
}
|
||||
}
|
||||
$database = getDatabaseConnection();
|
||||
try {
|
||||
$username = $_SESSION['uname'];
|
||||
$statement = $database->prepare('SELECT pswd FROM users WHERE uname = ?');
|
||||
$statement->bind_param('s', $username);
|
||||
$statement->execute();
|
||||
$result = $statement->get_result();
|
||||
$user = $result->fetch_assoc();
|
||||
$result->free();
|
||||
$statement->close();
|
||||
|
||||
function CheckPassword($password) {
|
||||
if (strlen($password) < 8) {
|
||||
return false;
|
||||
if (!$user) {
|
||||
$message = 'User not found!';
|
||||
} elseif (!password_verify($currentPassword, $user['pswd'])) {
|
||||
$message = 'Current password is incorrect!';
|
||||
} else {
|
||||
$passwordHash = password_hash($newPassword, PASSWORD_BCRYPT);
|
||||
$statement = $database->prepare('UPDATE users SET pswd = ? WHERE uname = ?');
|
||||
$statement->bind_param('ss', $passwordHash, $username);
|
||||
$statement->execute();
|
||||
$statement->close();
|
||||
$message = 'Password changed successfully!';
|
||||
$messageType = 'success';
|
||||
}
|
||||
} catch (mysqli_sql_exception $exception) {
|
||||
error_log($exception->getMessage());
|
||||
$message = 'Unable to change password. Please try again.';
|
||||
} finally {
|
||||
$database->close();
|
||||
}
|
||||
}
|
||||
if (!preg_match('/[0-9]/', $password)) {
|
||||
return false;
|
||||
}
|
||||
if (!preg_match('/[A-Z]/', $password)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user