prepare("SELECT name, email FROM users WHERE id = :id"); $stmt->execute(['id' => $user_id]); $user = $stmt->fetch(PDO::FETCH_ASSOC); // Lógica para lidar com o POST if ($_SERVER['REQUEST_METHOD'] === 'POST') { // Atualizar Nome if (isset($_POST['update_name'])) { $name = $_POST['name'] ?? ''; if (empty($name)) { $update_name_error = 'O nome não pode estar em branco.'; } else { try { $stmt = $pdo->prepare("UPDATE users SET name = :name WHERE id = :id"); $stmt->execute(['name' => $name, 'id' => $user_id]); $user['name'] = $name; // Atualizar o nome na página $update_name_success = 'Nome atualizado com sucesso!'; } catch (PDOException $e) { $update_name_error = 'Erro ao atualizar o nome.'; } } } // Atualizar Senha if (isset($_POST['update_password'])) { $current_password = $_POST['current_password'] ?? ''; $new_password = $_POST['new_password'] ?? ''; $confirm_password = $_POST['confirm_password'] ?? ''; if (empty($current_password) || empty($new_password) || empty($confirm_password)) { $update_password_error = 'Todos os campos de senha são obrigatórios.'; } elseif ($new_password !== $confirm_password) { $update_password_error = 'A nova senha e a confirmação não correspondem.'; } else { try { // Verificar senha atual $stmt = $pdo->prepare("SELECT password_hash FROM users WHERE id = :id"); $stmt->execute(['id' => $user_id]); $hash = $stmt->fetchColumn(); if (password_verify($current_password, $hash)) { // Se a senha atual estiver correta, criar novo hash e atualizar $new_hash = password_hash($new_password, PASSWORD_DEFAULT); $stmt_update = $pdo->prepare("UPDATE users SET password_hash = :hash WHERE id = :id"); $stmt_update->execute(['hash' => $new_hash, 'id' => $user_id]); $update_password_success = 'Senha atualizada com sucesso!'; } else { $update_password_error = 'A senha atual está incorreta.'; } } catch (PDOException $e) { $update_password_error = 'Erro ao atualizar a senha.'; } } } } include __DIR__ . '/includes/header.php'; ?>