1ra Versión
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
<?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();
|
||||
?>
|
||||
Reference in New Issue
Block a user