+/// 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.
+function check_asociado($user)
+{
+ if (Usuario::asociado($user)) return true;
+ error("$user no es un número de registro de un usuario asociado!");
+ return false;
+}
+
+/// Verifica que sea la password correcta.
+function check_password($user, $pass)
+{
+ if ($user->getPassword() == $pass) return true;
+ error('Contraseña incorrecta!');
+ return false;
+}
+