Settings
Danger Zone
Delete Account
Permanently delete your account
getConnection(); // Get user data from session $username = $_SESSION['username']; $email = $_SESSION['email']; $tier = $_SESSION['tier']; $package = $_SESSION['package']; $balance = $_SESSION['balance']; $total_deposits = $_SESSION['total_deposits']; $total_withdrawals = $_SESSION['total_withdrawals']; $rewards = $_SESSION['rewards']; $earnings = $total_deposits - $total_withdrawals; // Get user settings from database function getUserSettings($db, $user_id) { $query = "SELECT * FROM user_settings WHERE user_id = ?"; $stmt = $db->prepare($query); $stmt->execute([$user_id]); return $stmt->fetch(PDO::FETCH_ASSOC) ?: []; } $user_settings = getUserSettings($db, $_SESSION['user_id']); // Handle form submissions if ($_SERVER['REQUEST_METHOD'] === 'POST') { $user_id = $_SESSION['user_id']; try { // Update general settings if (isset($_POST['update_settings'])) { $dark_mode = isset($_POST['dark_mode']) ? 1 : 0; $language = $_POST['language'] ?? 'en'; $currency = $_POST['currency'] ?? 'KES'; $auto_logout = isset($_POST['auto_logout']) ? 1 : 0; $query = "INSERT INTO user_settings (user_id, dark_mode, language, currency, auto_logout) VALUES (?, ?, ?, ?, ?) ON DUPLICATE KEY UPDATE dark_mode = VALUES(dark_mode), language = VALUES(language), currency = VALUES(currency), auto_logout = VALUES(auto_logout)"; $stmt = $db->prepare($query); if ($stmt->execute([$user_id, $dark_mode, $language, $currency, $auto_logout])) { $_SESSION['success'] = "Settings updated successfully!"; } } // Handle password change if (isset($_POST['change_password'])) { $current_password = $_POST['current_password']; $new_password = $_POST['new_password']; $confirm_password = $_POST['confirm_password']; if ($new_password !== $confirm_password) { $_SESSION['error'] = "New passwords do not match!"; } else { // Verify current password $query = "SELECT password_hash FROM users WHERE id = ?"; $stmt = $db->prepare($query); $stmt->execute([$user_id]); $user = $stmt->fetch(PDO::FETCH_ASSOC); if ($user && password_verify($current_password, $user['password_hash'])) { $new_password_hash = password_hash($new_password, PASSWORD_BCRYPT); $query = "UPDATE users SET password_hash = ? WHERE id = ?"; $stmt = $db->prepare($query); if ($stmt->execute([$new_password_hash, $user_id])) { $_SESSION['success'] = "Password updated successfully!"; } } else { $_SESSION['error'] = "Current password is incorrect!"; } } } // Handle account deletion if (isset($_POST['delete_account'])) { $confirm_password = $_POST['confirm_password']; // Verify password $query = "SELECT password_hash FROM users WHERE id = ?"; $stmt = $db->prepare($query); $stmt->execute([$user_id]); $user = $stmt->fetch(PDO::FETCH_ASSOC); if ($user && password_verify($confirm_password, $user['password_hash'])) { // Soft delete the account $query = "UPDATE users SET is_active = 0 WHERE id = ?"; $stmt = $db->prepare($query); if ($stmt->execute([$user_id])) { session_destroy(); header('Location: ../../index.php?account_deleted=1'); exit; } } else { $_SESSION['error'] = "Password is incorrect!"; } } } catch(PDOException $exception) { $_SESSION['error'] = "Error: " . $exception->getMessage(); } // Refresh settings after update $user_settings = getUserSettings($db, $_SESSION['user_id']); } ?>
Permanently delete your account