+/// 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;
+}
+