Foros del Web » Creando para Internet » HTML »

Formulario se envía vacío cuando el archivo supera 8mb

Estas en el tema de Formulario se envía vacío cuando el archivo supera 8mb en el foro de HTML en Foros del Web. Tengo un problema, y es que tengo un formulario con un campo para enviar un archivo. Todo funciona bien excepto cuando el archivo ocupa mas ...
  #1 (permalink)  
Antiguo 13/08/2009, 03:31
 
Fecha de Ingreso: agosto-2009
Mensajes: 1
Antigüedad: 14 años, 8 meses
Puntos: 0
Formulario se envía vacío cuando el archivo supera 8mb

Tengo un problema, y es que tengo un formulario con un campo para enviar un archivo. Todo funciona bien excepto cuando el archivo ocupa mas de 8mb, en cuyo caso el formulario se envía vacío (todos los campos), pero no da ningun error.
He probado a incluir el campo oculto MAX_FILE_SIZE pero no ha servido de nada.

Se le ocurre a alguien alguna solucion que no sea editar el php.ini? (no tengo acceso a él)

Gracias.
  #2 (permalink)  
Antiguo 13/08/2009, 10:01
 
Fecha de Ingreso: agosto-2008
Mensajes: 382
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Formulario se envía vacío cuando el archivo supera 8mb

igual tu hosting no permite el envio superior a 8mb
  #3 (permalink)  
Antiguo 13/08/2009, 13:51
 
Fecha de Ingreso: junio-2009
Mensajes: 8
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Formulario se envía vacío cuando el archivo supera 8mb

Hola amigos, intento hacer un formulario desde la web que me llegue a mi correo. Me he bajado muuchos .php pero no consigo que me llegue bien. Cuando pongo la casilla con el botón examinar, a mi correo me llega la dirección pero no la foto. Alguien me puede ayudar xfa

html

<FORM name = "formulario" ACTION="xxxx" METHOD="GET" onSubmit="return validate1(this)">
<fieldset>
<font color="#000000">
<legend><font size="3" face="Arial, Helvetica, sans-serif">Datos del Anuncio</font></legend>
</font><br>
<strong><FONT color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Nombre</FONT></strong>
<INPUT TYPE="text" NAME="nombre" size="40">
<BR>
<BR>
<font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Forma de contacto</b></font>
<input type="text" name="correo" size="31">
<BR>
<BR>
<FONT color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Secci&oacute;n</b></FONT>
<SELECT name="selectweb">
<OPTION value="Ninguna" selected>Ninguna</OPTION>
<OPTION value="Nino">nino</OPTION>
<OPTION value="nina">nina</OPTION>
<OPTION value="premama">premama</OPTION>
</SELECT>
<BR>
<BR>
<FONT color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Foto</b></FONT>
<INPUT TYPE="file" NAME="upload" size="40">
<BR>
<BR>
<textarea name="mensaje" cols="50" rows="10">Contenido de tu anuncio </textarea>
<BR>
<INPUT TYPE="hidden" NAME="pagina_gracias" VALUE="gracias.">
</fieldset>
<br>
<fieldset>
<BR>
<INPUT name="submit" TYPE="submit" VALUE="Enviar"><input type="reset">
</FORM>

php

<?php

## VARIABLES
## Dirección de tu email
$micorreo="patriciaxxxxx";
## Asunto axiliar si no lo introduce un asunto que identifique la procedencia del mail.
$xasunto="Correo desde tu pagina";
## Pagina final de gracias. Si el formulario no incluye este campo oculto del formulario.
$gracias_defecto="xxxxxxxxxx";
## Página final si se produce un error al enviar el email
$error_correo="errorml";
## variable auxiliar, que produce un salto de línea
$retorno="\r\n";

## CABECERAS DE CORREO
## Diversas cabeceras para el email. Luego, lo usaremos para enviarlo
## $nombre $correo son variables que contienen los valores de: nombre y email del formulario.
$headers = "MIME-Version: 1.0\r\n" ;
## campos y variables nombre, $nombre y email $correo. No puede ser modificado su nombre en el form
## Han de mantenerse en el formulario para utilizar el mismo script con distintos formularios
## Añadimos esta linea por compatibilidad, Ver la Explicación
$nombre=$HTTP_GET_VARS['nombre'];$correo=$HTTP_GET_VARS['correo'];
## Origen del mensaje
$headers .= "From: $nombre<$correo>\r\n";
## Responder al mail
$headers .= "Reply-To: $correo<$correo>\r\n";
## Otras cabeceras que pueden ponerse si ocurren problemas u omitirse si todo va bien.
## Obligatoriamente, cada elemento de la cabecera termina en \r\n Nueva línea.
## $headers .= "X-Mailer: PHP/" . phpversion();
## $headers .= "X-Sender: $correo<$correo>\r\n";
## $headers .= "Return-Path: <$correo>\r\n";
## $headers .= "Cc: $nombre<$correo>\r\n";

## CUERPO DEL MENSAJE INICIO
## Obtención de la IP del visitante
## Empezamos a contruir el mensaje final, sumando los elementos del mensaje
$mfinal.="IP visitante: ";
## Guardamos la IP del visitante
$mfinal.=$HTTP_SERVER_VARS['REMOTE_ADDR'];
$mfinal.=": ";
## Y el puerto del usuario
$mfinal.=$HTTP_SERVER_VARS['REMOTE_PORT'];
## añadimos dos retornos de línea
$mfinal.=$retorno;
$mfinal.=$retorno;

## CUERPO DEL MENSAJE AÑADIDO DE CAMPOS AL MENSAJE
## $vareliminar Número de botones del formulario y campos ocultos (últimos elementos) + 1 --> en este caso (1+1)
## Si queremos eliminar del mensaje el campo oculto de la página final $vareliminar=3;
$vareliminar=2;
## Almacenar en un array los nombres de variables del formulario enviado
$claves_array=array_keys ($HTTP_GET_VARS);
## de i=0 hasta el número de campos del formulario, - variables a eliminar
for ($i=0;$i<=(count($HTTP_GET_VARS)-$vareliminar);$i++){
## Obtenemos el nombre de cada campo en concreto
$nombrevar=$claves_array[$i];
## Sumamos el nombre de campo de formulario al mensaje final
$mfinal .= $nombrevar;
$mfinal .= ": ";
## Y añadimos el contenido que haya introducido nuestro visitante
$mfinal .= $HTTP_GET_VARS[$nombrevar];
## Separamos cada campo por dos retornos, podemos eliminar uno
$mfinal .= $retorno;
$mfinal .= $retorno;
}
## Si no hay asunto, o no contiene nada, le damos al email un asunto defecto
if (is_null($asunto)){ $asunto2="correo desde la web";}
## Si hay asunto, añadimos un prefijo propio para identificar que es email desde la web.
else { $asunto2 ="Asunto-> $asunto"; }

## ENVÍO DEL CORREO
## Para finalizar, envíamos el mail, y comprobamos el resultado
$resultado=mail($micorreo, $asunto2, $mfinal, $headers);
## Si quisiésemos enviar un mensaje de acuso de recibo, añadimos esta línea, sabiendo que:
## tenemos que asignar estas variables $asuntoreply (Asunto), $mreply (mensaje), $headers2(mensaje)
## de modo similar a como hemos construido las variables anteriores
## $resultado2=mail($correo, $asuntoreply, $mreply, $headers2);

## COMPROBACIÓN
## Si no se ha podido enviar el correo.
if ($resultado ==true)
{
## Si no hay página de gracias carga las página de defecto
if (is_null($pagina_gracias)){ header( "Location: $gracias_defecto" );}
else{
## Si hay página de gracias, cárgala
header( "Location: $pagina_gracias" );
}
}
## Si se ha producido un error, advierte al usuario
else header( "Location: $error_correo" );
?>

Me va muy bien pero cuando inserto el botón Examinar para enviar una foto a mi correo no me llega.

Muchas gracias (como siempre por estar aqui)
  #4 (permalink)  
Antiguo 13/08/2009, 23:29
Avatar de Corneja  
Fecha de Ingreso: febrero-2008
Ubicación: Senolaf
Mensajes: 268
Antigüedad: 16 años, 1 mes
Puntos: 8
Respuesta: Formulario se envía vacío cuando el archivo supera 8mb

Este foro es de XHTML por lo que deberías preguntar en el PHP

(Te llega la dirección porque no subes el fichero al servidor. Primero súbelo y cuando lo tengas en el servidor es cuando lo adjuntas a tu correo.)
  #5 (permalink)  
Antiguo 17/08/2009, 09:44
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: Formulario se envía vacío cuando el archivo supera 8mb

8mb es mas que considerable para enviar un correo, superarlo es como estar enviando un programa o un rar muy grande, de hecho se pueden enviar solo hasta dos megas, revisa tu php.ini... con un phpinfo();
respecto al tema de que no se le envia la imagen, es ovbio por que la sube y esta queda en el temporal tmp de servidor, y luego cuando la voy buscar al correo donde lo hago???

por ello subes la imagen y le das la ruta en el correo, espero se entienda, todo caso como dice corneja esto va en php....

saludos
__________________
Gokuh Salvo al mundo. PUNTO!!!!
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 00:25.