Ver Mensaje Individual
  #7 (permalink)  
Antiguo 29/09/2018, 11:44
Avatar de bathory84
bathory84
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela
Mensajes: 257
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Validar formulario php de archivos

Esto me sirvió muy bien para redirigir la pagina pero sigue subiendo el archivo al servidor y lo sigue enviando al correo aunque salga el mensaje de archivo no enviado, pero igual lo envia.

Se necesita que no suba el archivo si pesa mas de 5000000 KB. LO QUE TENGO EN LA PARTE FINAL ES ESTO:

Código PHP:
Ver original
  1. if (filesize($_FILES['curriculo']['tmp_name']) < 5000000) {
  2.            
  3.             print '<script language="JavaScript">';
  4.             print 'alert("El Archivo ha sido enviado satisfactoriamente.");';
  5.             print 'location.href=("trabajos.html");';
  6.             print '</script>';
  7.             }
  8.             else
  9.             {  
  10.             function redirect($url) {
  11.      
  12.         header(sprintf(
  13.             'Location: %s',
  14.             $url
  15.         ));
  16.         exit();
  17.     };
  18.      
  19.     if (filesize($_FILES['curriculo']['tmp_name']) > 5000000) {
  20.             print '<script language="JavaScript">';
  21.             print 'alert("El Archivo Supera el Tamaño de 5 MB. \nIntente con Otro....");';
  22.             print 'location.href=("trabajos.html");';
  23.             print '</script>';
  24.     }
  25.            
  26. }


Cita:
Iniciado por hhs Ver Mensaje
normalmente si algo no se cumple lo adecuado es que regreses al la pagina del formulario e informes de los errores, tu no lo estas haciendo. Solo imprimes un aviso y el script se sigue ejecutando hasta terminar y eso incluye que se suba el archivo.

Para evitar esto necesitas obligar a que el script termine en el momento que no se cumple la condición, y como te comente lo mas usual es redirigir la petición de regreso al formulario eso lo haces mediante el uso de la función header

de forma general debes de hacer algo como esto.
Código php:
Ver original
  1. function redirect($url) {
  2.  
  3.         'location: %s',
  4.         $url
  5.     ));
  6.     exit();
  7. };
  8.  
  9. if (filesize($_files['curriculo']['tmp_name']) > 5000000) {
  10.     redirect('form.php');
  11. }

Última edición por bathory84; 29/09/2018 a las 15:19