From db91190c8b9dbf74de8a904a2b1850ecd53c32fb Mon Sep 17 00:00:00 2001 From: Alexeer Date: Tue, 6 May 2025 15:27:08 -0600 Subject: [PATCH] cambios en front validaciones --- app/controllers/registro.php | 26 +++++++++++++++++- views/registro/form.php | 51 ++++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+), 1 deletion(-) diff --git a/app/controllers/registro.php b/app/controllers/registro.php index cac6fbf..ac4be81 100644 --- a/app/controllers/registro.php +++ b/app/controllers/registro.php @@ -63,11 +63,35 @@ function enviar() { $telefono = $_POST['phone'] ?? ''; $archivo = $_FILES['opinion_file']; + // Validar RFC + if (!preg_match('/^[A-ZÑ&]{3,4}\d{6}[A-Z0-9]{3}$/i', $_POST['rfc'] ?? '')) { + die("RFC inválido. Debe seguir el formato oficial."); + } + + // Validar el Email (minúsculas + dominio @empresa.com) + if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { + die("No es una dirección de correo válida."); + } + if (!preg_match('/^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$/', $email)) { + die("No es una dirección de correo."); + } + + // Validar el Teléfono: debe tener formato 3 dígitos + espacio + 7 dígitos + if (!preg_match('/^\d{3}\s\d{7}$/', $telefono)) { + die("El teléfono debe tener el formato 3 dígitos, espacio, 7 dígitos (ej. 123 4567890)."); + } + + // También podemos validar que tenga exactamente 10 dígitos sin espacios + $soloDigitos = str_replace(' ', '', $telefono); + if (!ctype_digit($soloDigitos) || strlen($soloDigitos) !== 10) { + die("El teléfono debe contener exactamente 10 dígitos numéricos."); + } + // Validar archivo if ($archivo['error'] !== 0 || pathinfo($archivo['name'], PATHINFO_EXTENSION) !== 'pdf') { die("Archivo inválido. Solo se permiten PDFs."); } - + // Guardar archivo $nombreArchivo = uniqid() . '_' . basename($archivo['name']); diff --git a/views/registro/form.php b/views/registro/form.php index 64dc7cf..921980c 100644 --- a/views/registro/form.php +++ b/views/registro/form.php @@ -157,6 +157,57 @@ $color2 = explode(',', $config['colores_primarios'] ?? '#003366,#0055A5') + + + +