Foros del Web » Programando para Internet » PHP »

Formulario que pierde los datos

Estas en el tema de Formulario que pierde los datos en el foro de PHP en Foros del Web. Buenas, Tengo una web con varios formularios en los que se pueden adjuntar imágenes y archivos word. El problema viene que cuando adjuntas archivos de ...
  #1 (permalink)  
Antiguo 09/02/2009, 02:51
 
Fecha de Ingreso: abril-2005
Mensajes: 212
Antigüedad: 19 años
Puntos: 0
Formulario que pierde los datos

Buenas,

Tengo una web con varios formularios en los que se pueden adjuntar imágenes y archivos word. El problema viene que cuando adjuntas archivos de varios mb, el formulario se envía, pero llega a mi mail parcialmente vacío o incluso totalmente vacío.

Es como si el mail saliera enseguida sin esperar a los datos u.u ya que cuando le doy a Enviar en el formulario, ipso facto aparece un mail en mi correo con el formulario vacío, aunque el formulario aun se está enviando...

Si envio el formulario con imagenes de menos de 100 kb el formulario llega bien, el mail se envía cuando el formulario ha acabado de enviarse.

Si las imágenes pesan por ejemplo 1 mb y pico.. el email se envía immediatamente sin datos, si adjunto solo 3 o 4 imágenes de 1 mb a veces llegan los datos, solo si tengo el mail cerrado y lo abro cuando se ha enviado el formulario.

Enfin es todo muy raro.. un ejemplo del formulario es este:

http://mundoac.com/formularioanuncio.html

Alguna sugerencia?

Gracias!
__________________
Jordi V.S.
  #2 (permalink)  
Antiguo 09/02/2009, 04:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Formulario que pierde los datos

pues... sin saber como esta el código ni la configuraron de tu hosting ¿que te podemos sugerir???
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 09/02/2009, 08:34
 
Fecha de Ingreso: abril-2005
Mensajes: 212
Antigüedad: 19 años
Puntos: 0
Respuesta: Formulario que pierde los datos

Cierto, cierto.

El hosting es el Plan Básico de http://www.hospedajeydominios.com/ma...iento_web.html

El problema es que el formulario va si los archivos adjuntos no son demasiado pesados. Si son muy pesados, lo envía o vacío o parcialmente vació si solo envío 4 de 8 fotos (de 1 mb de tamaño) y abro la web de gmail cuando ha acabado de enviarse el formulario, puesto que si no siempre recibo el formulario vacío.

Lo he probado en otras cuentas de correo, incluso en el correo del mismo hosting y pasa lo mismo.

El código php que envía el formulario es este:

Código PHP:
<? 

    $Nombre 
$_POST['Nombre'];
    
$Email $_POST['Email'];
    
$tipoanuncio $_POST['tipoanuncio'];
    
$ano $_POST['ano'];
    
$marcaac $_POST['marcaac'];
    
$plazas $_POST['plazas'];
    
$plazaszzz $_POST['plazaszzz'];
    
$motor $_POST['motor'];
    
$precio $_POST['precio'];
    
$contacto $_POST['contacto'];
    
$Alrededores $_POST['Alrededores'];
    
$Comentarios6 $_POST['Comentarios6'];
    
$Comentarios7 $_POST['Comentarios7'];
    
$Comentarios8 $_POST['Comentarios8'];
    
$Comentarios9 $_POST['Comentarios9'];
    
$Comentarios10 $_POST['Comentarios10'];
    
$Comentarios11 $_POST['Comentarios11'];
  
$Comentarios12 $_POST['Comentarios12'];
  
$Comentarios13 $_POST['Comentarios13'];
  
$Comentarios14 $_POST['Comentarios14'];
  
$Comentarios15 $_POST['Comentarios15'];
  
$Comentarios16 $_POST['Comentarios16'];
  
$Comentarios17 $_POST['Comentarios17'];
  
$Comentarios18 $_POST['Comentarios18'];
  
$Comentarios19 $_POST['Comentarios19'];
  
$Comentarios20 $_POST['Comentarios20'];
  
$coord $_POST['coord'];
  
$foto1 $_FILES['foto1']['name'];
  
$foto2 $_FILES['foto2']['name'];
  
$foto3 $_FILES['foto3']['name'];
  
$foto4 $_FILES['foto4']['name'];
  
$foto5 $_FILES['foto5']['name'];
  
$foto6 $_FILES['foto6']['name'];
  
$foto7 $_FILES['foto7']['name'];
  
$foto8 $_FILES['foto8']['name'];
  
$word $_FILES['word']['name'];
    
    if(
$foto1 <> ""
    {
        
$aux explode(".",$_FILES['foto1']['name']);
        
$extension $aux[1];
        if (
strtoupper($extension) == strtoupper('jpg') or strtoupper($extension) == strtoupper('jpeg') or strtoupper($extension) == strtoupper('gif')) 
        {
            
move_uploaded_file($_FILES['foto1']['tmp_name'], $foto1); 
        }
    }
    if(
$word <> ""
    {
        
$aux explode(".",$_FILES['word']['name']);
        
$extension $aux[1];
        if (
strtoupper($extension) == strtoupper('docx') or strtoupper($extension) == strtoupper('docx') or strtoupper($extension) == strtoupper('doc')) 
        {
            
move_uploaded_file($_FILES['word']['tmp_name'], $word); 
        }
    }
    if(
$foto2 <> ""
    {
        
$aux explode(".",$_FILES['foto2']['name']);
        
$extension $aux[1];
        if (
strtoupper($extension) == strtoupper('jpg') or strtoupper($extension) == strtoupper('jpeg') or strtoupper($extension) == strtoupper('gif')) 
        {
            
move_uploaded_file($_FILES['foto2']['tmp_name'], $foto2); 
        }
    }
    if(
$foto3 <> ""
    {
        
$aux explode(".",$_FILES['foto3']['name']);
        
$extension $aux[1];
        if (
strtoupper($extension) == strtoupper('jpg') or strtoupper($extension) == strtoupper('jpeg') or strtoupper($extension) == strtoupper('gif')) 
        {
            
move_uploaded_file($_FILES['foto3']['tmp_name'], $foto3); 
        }
    }
    if(
$foto4 <> ""
    {
        
$aux explode(".",$_FILES['foto4']['name']);
        
$extension $aux[1];
        if (
strtoupper($extension) == strtoupper('jpg') or strtoupper($extension) == strtoupper('jpeg') or strtoupper($extension) == strtoupper('gif')) 
        {
            
move_uploaded_file($_FILES['foto4']['tmp_name'], $foto4); 
        }
    }
    if(
$foto5 <> ""
    {
        
$aux explode(".",$_FILES['foto5']['name']);
        
$extension $aux[1];
        if (
strtoupper($extension) == strtoupper('jpg') or strtoupper($extension) == strtoupper('jpeg') or strtoupper($extension) == strtoupper('gif')) 
        {
            
move_uploaded_file($_FILES['foto5']['tmp_name'], $foto5); 
        }
    }
    if(
$foto6 <> ""
    {
        
$aux explode(".",$_FILES['foto6']['name']);
        
$extension $aux[1];
        if (
strtoupper($extension) == strtoupper('jpg') or strtoupper($extension) == strtoupper('jpeg') or strtoupper($extension) == strtoupper('gif')) 
        {
            
move_uploaded_file($_FILES['foto6']['tmp_name'], $foto6); 
        }
    }
    if(
$foto7 <> ""
    {
        
$aux explode(".",$_FILES['foto7']['name']);
        
$extension $aux[1];
        if (
strtoupper($extension) == strtoupper('jpg') or strtoupper($extension) == strtoupper('jpeg') or strtoupper($extension) == strtoupper('gif')) 
        {
            
move_uploaded_file($_FILES['foto7']['tmp_name'], $foto7); 
        }
    }
    if(
$foto8 <> ""
    {
        
$aux explode(".",$_FILES['foto8']['name']);
        
$extension $aux[1];
        if (
strtoupper($extension) == strtoupper('jpg') or strtoupper($extension) == strtoupper('jpeg') or strtoupper($extension) == strtoupper('gif')) 
        {
            
move_uploaded_file($_FILES['foto8']['tmp_name'], $foto8); 
        }
    }
    if(
$word <> ""
    {
        
$aux explode(".",$_FILES['word']['name']);
        
$extension $aux[1];
        if (
strtoupper($extension) == strtoupper('jpg') or strtoupper($extension) == strtoupper('jpeg') or strtoupper($extension) == strtoupper('gif')) 
        {
            
move_uploaded_file($_FILES['word']['tmp_name'], $word); 
        }
    }
                    
    
//DATOS A CAMBIAR
    
$asunto "Añadir nuevo brico";
    
$body "<br><b>DATOS GENERALES</b><br>
        <b>Nombre:</b> $Nombre<br>
        <b>Email:</b> $Email<br>
        <b>tipoanuncio:</b> $tipoanuncio<br>
        <b>ano</b> $ano<br>
        <b>marcaac:</b> $marcaac<br>
        <b>plazas:</b> $plazas<br>
        <b>plazaszzz:</b> $plazaszzz<br>
        <b>motor:</b> $motor<br>
        <b>precio:</b> $precio<br>
        <b>contacto:</b> $contacto<br>
        <b>Alrededores:</b> $Alrededores<br>
        <b>Coordenadas del GOOGLEMAPS:</b> $coord<br>
        <br><b>SERVICIOS DEL AREA</b><br>
        <b>Electricidad:</b> $Electricidad<br>
        <b>Comentarios:</b> $Comentarios1<br>
        <b>Agua Potable:</b> $Agua<br>
        <b>Comentarios:</b> $Comentarios2<br>
        <b>Vaciado Aguas grises:</b> $Aguasgrises<br>
        <b>Comentarios:</b> $Comentarios3<br>
        <b>Vaciado Aguas negras:</b> $Aguasnegras<br>
        <b>Comentarios:</b> $Comentarios4<br>
        <b>Lavabos Públicos:</b> $Lavabos<br>
        <b>Comentarios:</b> $Comentarios5<br>
        <b>Duchas Públicas:</b> $Duchas<br>
        <b>Comentarios:</b> $Comentarios6<br>
        <b>Seguridad:</b> $Seguridad<br>
        <b>Comentarios:</b> $Comentarios7<br>
        <b>Área de Picnic:</b> $Picnic<br>
        <b>Comentarios:</b> $Comentarios8<br>
        <br><b>SERVICIOS CERCANOS AL AREA</b><br>
        <b>Transporte Público:</b> $Transporte<br>
        <b>Comentarios:</b> $Comentarios9<br>
        <b>Supermercado:</b> $Supermercado<br>
        <b>Comentarios:</b> $Comentarios10<br>
        <b>Restaurante:</b> $Restaurante<br>
        <b>Comentarios:</b> $Comentarios11<br>
        <b>Lavandería:</b> $Lavandería<br>
        <b>Comentarios:</b> $Comentarios12<br>
        <br><b>Alrededores</b><br>$Alrededores<br>"
;
        if(
$Comentarios13 <> ""$body.="<b>Comentario Foto 1</b> $Comentarios13<br>";
        if(
$Comentarios14 <> ""$body.="<b>Comentario Foto 2</b> $Comentarios14<br>";
        if(
$Comentarios15 <> ""$body.="<b>Comentario Foto 3</b> $Comentarios15<br>";
        if(
$Comentarios16 <> ""$body.="<b>Comentario Foto 4</b> $Comentarios16<br>";
        if(
$Comentarios17 <> ""$body.="<b>Comentario Foto 5</b> $Comentarios17<br>";
        if(
$Comentarios18 <> ""$body.="<b>Comentario Foto 4</b> $Comentarios18<br>";
        if(
$Comentarios19 <> ""$body.="<b>Comentario Foto 5</b> $Comentarios19<br>";
        if(
$Comentarios20 <> ""$body.="<b>Comentario Foto 4</b> $Comentarios20<br>";
        
        
$email_envio "[email protected]";
    
    if(
$foto1 <> "" or $foto2 <> "" or $foto3 <> "" or $foto4 <> "" or $foto5 <> ""  or $foto6 <> ""  or $foto7 <> ""  or $foto8 <> "")    
    {
        require(
"phpmailer/class.phpmailer.php");
    
$mail = new PHPMailer();
    
$mail->Host "localhost";
    
$mail->From $email_envio;
    
$mail->FromName "INFO";
    
$mail->Subject $asunto;
    
$mail->AddAddress($email_envio);
        if(
$foto1 <> ""$mail->AddAttachment($foto1);
        if(
$foto2 <> ""$mail->AddAttachment($foto2);
        if(
$foto3 <> ""$mail->AddAttachment($foto3);
        if(
$foto4 <> ""$mail->AddAttachment($foto4);
        if(
$foto5 <> ""$mail->AddAttachment($foto5);
        if(
$foto6 <> ""$mail->AddAttachment($foto6);
        if(
$foto7 <> ""$mail->AddAttachment($foto7);
        if(
$foto8 <> ""$mail->AddAttachment($foto8);
        if(
$word <> ""$mail->AddAttachment($word);
    
$mail->Body $body;
    
$mail->IsHTML(true);
    
$mail->Send();
    
    
//BORRO EL ARCHIVO
    
if($foto1 <> ""unlink($foto1);
    if(
$foto2 <> ""unlink($foto2);
    if(
$foto3 <> ""unlink($foto3);
    if(
$foto4 <> ""unlink($foto4);
    if(
$foto5 <> ""unlink($foto5);
    if(
$foto6 <> ""unlink($foto6);
    if(
$foto7 <> ""unlink($foto7);
    if(
$foto8 <> ""unlink($foto8);
    if(
$word <> ""unlink($word);
    }
    else
    {
        
//ENVIO MAIL NORMAL
        
$cabeceras 'Content-type: text/html; charset=iso-8859-1' "\r\n";
        
$cabeceras .= "From: ".$email_envio."\r\n";
        
mail($email_envio,$asunto,$body,$cabeceras);
    }
    
    
header("Location:enviadoanuncio.php");
?>
Y el formulario en cuestión es este: http://mundoac.com/formularioanuncio.html el código creo que se puede ver con el boton derecho ver código fuente, más que nada por que no me deja colocarlo aquí.

No se, igual cuando pones archivos pesados lo de enviarlo al mail no funciona y es mejor enviarlo al servidor?

Saludos y gracias
__________________
Jordi V.S.
  #4 (permalink)  
Antiguo 09/02/2009, 09:14
Avatar de SCY-FOX  
Fecha de Ingreso: septiembre-2007
Ubicación: Chile
Mensajes: 139
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: Formulario que pierde los datos

Prueba asignando a
Código:
 move_uploaded_file($_FILES['foto6']['tmp_name'], $foto6);
en una variable.

Código:
 $resultado =  move_uploaded_file($_FILES['foto6']['tmp_name'], $foto6);
Dependiendo si te retorna True o False, podrás saber si sube correctamente la imagen o no.

Si sube OK, ahi mandas el correo. Sino, que te mande error.

Como dicen arriba puede que la quota máxima de carga de archivos sea menor al peso máximo de tu archivo y te lo bota.

Avisanos que te sucede...

Silla!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:17.