X-Git-Url: https://git.llucax.com/z.facultad/75.43/tp1.git/blobdiff_plain/0a253cede072778391c1359f146ef56c60f40364..ed561d2841ddaac63922840cba8763874aba28a9:/src/lib/validacion.php diff --git a/src/lib/validacion.php b/src/lib/validacion.php index c15a504..525eb2a 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; @@ -26,7 +28,7 @@ function es_email($f) 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 +39,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 +57,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 +71,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 +85,32 @@ 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()) +{ + d($file); + 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; +} + ?> \ No newline at end of file