2 // vim: set binary noeol et sw=4 sts=4 :
5 // Lucarella, Schein, Arena
7 // Creado: Leandro Lucarella (dom may 1 00:46:42 ART 2005)
11 require_once 'lib/pagina.php';
12 require_once 'lib/Usuario.php';
15 * Devuelve 1 si el campo f tiene más de max caracteres, -1 si tiene menos
16 * de min caracteres y 0 si está entre max y min. Si max o min es negativo,
17 * no se chequea por un máximo o mínimo respectivamente.
19 function min_max_cant($f, $min, $max)
21 if ($min >= 0 && strlen($f) < $min) return -1;
22 if ($max >= 0 && strlen($f) > $max) return 1;
26 /// Valida que el campo sea una dirección de e-mail.
29 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;
33 /// Verifica si el campo f está vacío, dando un error con el nombre n si lo está.
34 function check_vacio($f, $n)
38 error("Falta ingresar el campo $n!");
45 * Verifica si el campo f tiene entre max y min caracteres (ver min_max_cant).
46 * Si hay un error se usa el nombre de campo n para el mensaje.
48 function check_min_max_cant($f, $n, $min, $max)
50 switch (min_max_cant($f, $min, $max))
53 error("El campo $n debe tener a lo sumo $max caracteres!");
56 error("El campo $n debe tener al menos $min caracteres!");
63 * Verifica si los campos f1 y f2 son iguales. Si no lo son se usa el nombrei
64 * n para el mensaje de error.
66 function check_iguales($f1, $f2, $n)
70 error("No coinciden los valores del campo $n!");
77 * Verifica si los campos f1 y f2 son iguales. Si no lo son se usa el nombrei
78 * n para el mensaje de error.
80 function check_email($f, $n)
84 error("$f no es una dirección de e-mail válida!");
90 /// Verifica que un upload sea correcto y el archivo sea de alguno de los tipos
91 function check_file_upload($file, $nombre = 'El archivo', $types = array())
93 switch ($file['error'])
95 case 1: //UPLOAD_ERR_INI_SIZE:
96 case 2: //UPLOAD_ERR_FORM_SIZE:
97 error($nombre.' es demasiado grande!');
99 case 3: //UPLOAD_ERR_PARTIAL:
100 error($nombre.' no llegó bien (se interrumpió la transmisión)!');
102 case 4: //UPLOAD_ERR_NO_FILE:
103 error('Debe especificar '.strtolower($nombre).'!');
105 case 5: //UPLOAD_ERR_NO_TMP_DIR:
106 error($nombre.'Error interno (no existe el directorio de upload)!');
109 if ($types and !in_array($file['type'], $types))
111 error($nombre.' debe ser del tipo '.join(' o ', $types).'!');
117 /// Verifica que una fecha sea válida.
118 function check_fecha($anio, $mes, $dia)
120 if (!preg_match('/^\d{4}$/', $anio) or $anio > date('Y') or $anio < 2000)
122 error('El año no es válido!');
125 if ($mes < 1 or $mes > 12)
127 error('El mes no es válido!');
130 if ($dia < 1 or $mes > 31)
132 error('El día no es válido!');
138 /// Verifica que sea un número entero.
139 function check_numero($n)
141 if (preg_match('/^\d+$/', $n)) return true;
142 error("$n no es un número entero!");
146 /// Verifica que sea un número de registro de un asociado.
147 function check_asociado($user)
149 if (Usuario::asociado($user)) return true;
150 error("$user no es un número de registro de un usuario asociado!");
154 /// Verifica que sea la password correcta.
155 function check_password($user, $pass)
157 if (Usuario::validar($user, $pass)) return true;
158 error('Contraseña incorrecta!');