Files
Complejo_Cap1tan/php/Cambiar_Contrasena.php
T
MarcosFlorSalcedo 8ec55e40fc 1ra Versión
2026-07-14 18:24:27 -03:00

92 lines
2.8 KiB
PHP

<?php
session_start();
header('Content-Type: application/json');
if (!isset($_SESSION['id_usuario'])) {
echo json_encode(['success' => 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();
?>