X-Git-Url: https://git.llucax.com/z.facultad/75.43/tp1.git/blobdiff_plain/0a253cede072778391c1359f146ef56c60f40364..765b3c57f081d3863ff59951a67da5874554db42:/src/lib/validacion.php?ds=sidebyside diff --git a/src/lib/validacion.php b/src/lib/validacion.php index c15a504..13c965a 100644 --- a/src/lib/validacion.php +++ b/src/lib/validacion.php @@ -9,10 +9,13 @@ // $Id$ require_once 'lib/pagina.php'; +require_once 'lib/Usuario.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 +23,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 +41,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 +59,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 +73,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 +87,90 @@ 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; +} + +/// Verifica que sea un número entero. +function check_numero($n) +{ + if (preg_match('/^\d+$/', $n)) return true; + error("$n no es un número entero!"); + return false; +} + +/// Verifica que sea un número de registro de un asociado (retorna error). +function ret_check_asociado($user) +{ + if (Usuario::asociado($user)) return ''; + return "$user no es un número de registro de un usuario asociado!"; +} + +/// Verifica que sea la password correcta (retorna error). +function ret_check_password($user, $pass) +{ + if ($user->getPassword() == $pass) return ''; + return 'Contraseña incorrecta!'; +} + +/// Verifica que sea un número de registro de un asociado. +function check_asociado($user) +{ + if ($err = ret_check_asociado($user)) + error($err); + return !$err; +} + +/// Verifica que sea la password correcta. +function check_password($user, $pass) +{ + if ($err = ret_check_password($user, $pass)) + error($err); + return !$err; +} + ?> \ No newline at end of file