false, 'message' => 'Sesión no iniciada']); exit(); } $input = json_decode(file_get_contents('php://input'), true); if (!$input) { echo json_encode(['success' => false, 'message' => 'No se recibieron datos']); exit(); } require_once 'conexion.php'; $id = isset($input['id']) ? intval($input['id']) : 0; $contrasenia_actual = $input['contrasenia_actual'] ?? ''; $contrasenia_nueva = $input['contrasenia_nueva'] ?? ''; // Validar campos obligatorios if ($id <= 0 || empty($contrasenia_actual) || empty($contrasenia_nueva)) { echo json_encode(['success' => false, 'message' => 'Todos los campos son obligatorios']); exit(); } // Verificar que el usuario logueado sea el que intenta modificar su contraseña if ($id !== intval($_SESSION['id_usuario'])) { echo json_encode(['success' => false, 'message' => 'No permitido']); exit(); } // Obtener la contraseña actual del usuario $query = "SELECT Contraseña FROM usuarios WHERE ID_Usuario = ?"; $stmt = $conexion->prepare($query); if (!$stmt) { echo json_encode(['success' => false, 'message' => 'Error en consulta: ' . $conexion->error]); exit(); } $stmt->bind_param('i', $id); $stmt->execute(); $result = $stmt->get_result(); $usuario = $result->fetch_assoc(); if (!$usuario) { echo json_encode(['success' => false, 'message' => 'Usuario no encontrado']); exit(); } // Verificar que la contraseña actual sea correcta // En este sistema, las contraseñas se guardan en texto plano if ($contrasenia_actual === $usuario['Contraseña']) { // La contraseña actual es correcta } else { echo json_encode(['success' => false, 'message' => 'La contraseña actual es incorrecta']); exit(); } // Validar longitud mínima de la nueva contraseña if (strlen($contrasenia_nueva) < 6) { echo json_encode(['success' => false, 'message' => 'La contraseña debe tener al menos 6 caracteres']); exit(); } // Guardar la nueva contraseña en texto plano (compatible con el sistema actual) $contrasenia_nueva_guardada = $contrasenia_nueva; // Actualizar la contraseña $update_query = "UPDATE usuarios SET Contraseña = ? WHERE ID_Usuario = ?"; $update_stmt = $conexion->prepare($update_query); if (!$update_stmt) { echo json_encode(['success' => false, 'message' => 'Error en consulta: ' . $conexion->error]); exit(); } $update_stmt->bind_param('si', $contrasenia_nueva_guardada, $id); if ($update_stmt->execute()) { echo json_encode(['success' => true, 'message' => 'Contraseña actualizada exitosamente']); } else { echo json_encode(['success' => false, 'message' => 'Error al actualizar: ' . $update_stmt->error]); } $update_stmt->close(); $stmt->close(); $conexion->close(); ?>