X-Git-Url: https://git.llucax.com/z.facultad/75.43/tp1.git/blobdiff_plain/0a253cede072778391c1359f146ef56c60f40364..77f19d6b8f8144ed33498ea04e69707f67fef240:/src/lib/validacion.php diff --git a/src/lib/validacion.php b/src/lib/validacion.php index c15a504..c3a5d97 100644 --- a/src/lib/validacion.php +++ b/src/lib/validacion.php @@ -10,9 +10,11 @@ require_once 'lib/pagina.php'; -// Devuelve 1 si el campo f tiene más de max caracteres, -1 si tiene menos -// de min caracteres y 0 si está entre max y min. Si max o min es negativo, -// no se chequea por un máximo o mínimo respectivamente. +/** + * Devuelve 1 si el campo f tiene más de max caracteres, -1 si tiene menos + * de min caracteres y 0 si está entre max y min. Si max o min es negativo, + * no se chequea por un máximo o mínimo respectivamente. + */ function min_max_cant($f, $min, $max) { if ($min >= 0 && strlen($f) < $min) return -1; @@ -20,13 +22,14 @@ function min_max_cant($f, $min, $max) return 0; } +/// Valida que el campo sea una dirección de e-mail. function es_email($f) { if (preg_match('/^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/', $f)) return true; return false; } -// Verifica si el campo f está vacío, dando un error con el nombre n si lo está. +/// Verifica si el campo f está vacío, dando un error con el nombre n si lo está. function check_vacio($f, $n) { if (!trim($f)) @@ -37,8 +40,10 @@ function check_vacio($f, $n) return true; } -// Verifica si el campo f tiene entre max y min caracteres (ver min_max_cant). -// Si hay un error se usa el nombre de campo n para el mensaje. +/** + * Verifica si el campo f tiene entre max y min caracteres (ver min_max_cant). + * Si hay un error se usa el nombre de campo n para el mensaje. + */ function check_min_max_cant($f, $n, $min, $max) { switch (min_max_cant($f, $min, $max)) @@ -53,8 +58,10 @@ function check_min_max_cant($f, $n, $min, $max) return true; } -// Verifica si los campos f1 y f2 son iguales. Si no lo son se usa el nombrei -// n para el mensaje de error. +/** + * Verifica si los campos f1 y f2 son iguales. Si no lo son se usa el nombrei + * n para el mensaje de error. + */ function check_iguales($f1, $f2, $n) { if ($f1 != $f2) @@ -65,8 +72,10 @@ function check_iguales($f1, $f2, $n) return true; } -// Verifica si los campos f1 y f2 son iguales. Si no lo son se usa el nombrei -// n para el mensaje de error. +/** + * Verifica si los campos f1 y f2 son iguales. Si no lo son se usa el nombrei + * n para el mensaje de error. + */ function check_email($f, $n) { if (!es_email($f)) @@ -77,4 +86,52 @@ function check_email($f, $n) return true; } +/// Verifica que un upload sea correcto y el archivo sea de alguno de los tipos +function check_file_upload($file, $nombre = 'El archivo', $types = array()) +{ + switch ($file['error']) + { + case 1: //UPLOAD_ERR_INI_SIZE: + case 2: //UPLOAD_ERR_FORM_SIZE: + error($nombre.' es demasiado grande!'); + return false; + case 3: //UPLOAD_ERR_PARTIAL: + error($nombre.' no llegó bien (se interrumpió la transmisión)!'); + return false; + case 4: //UPLOAD_ERR_NO_FILE: + error('Debe especificar '.strtolower($nombre).'!'); + return false; + case 5: //UPLOAD_ERR_NO_TMP_DIR: + error($nombre.'Error interno (no existe el directorio de upload)!'); + return false; + } + if ($types and !in_array($file['type'], $types)) + { + error($nombre.' debe ser del tipo '.join(' o ', $types).'!'); + return false; + } + return true; +} + +/// Verifica que una fecha sea válida. +function check_fecha($anio, $mes, $dia) +{ + if (!preg_match('/^\d{4}$/', $anio) or $anio > date('Y') or $anio < 2000) + { + error('El año no es válido!'); + return false; + } + if ($mes < 1 or $mes > 12) + { + error('El mes no es válido!'); + return false; + } + if ($dia < 1 or $mes > 31) + { + error('El día no es válido!'); + return false; + } + return true; +} + ?> \ No newline at end of file