Foros del Web » Programando para Internet » PHP »

ayuda con mi formulario

Estas en el tema de ayuda con mi formulario en el foro de PHP en Foros del Web. Hola amigos de foros del web, necesito saber si alguien me puede ayudar con mi formulario, ya que me comuniqué con la persona que lo ...
  #1 (permalink)  
Antiguo 05/05/2005, 14:36
 
Fecha de Ingreso: mayo-2005
Mensajes: 1
Antigüedad: 12 años, 7 meses
Puntos: 0
ayuda con mi formulario

Hola amigos de foros del web, necesito saber si alguien me puede ayudar con mi formulario, ya que me comuniqué con la persona que lo elaboró y en 3 meses no he recibido respuesta y me urge.
Mi problemas es el siguiente:
Al momento de enviarlo me muestra el siguiente error:

Warning: Cannot modify header information - headers already sent by (output started at /home/virtual/site34/fst/var/www/html/webmain/contactanos/mail.php:9) in /home/virtual/site34/fst/var/www/html/webmain/contactanos/mail.php on line 96

El Script que tengo es el siguiente:
<?php
## VARIABLES
## Dirección de tu correo
$micorreo="admin[email protected]";
## Asunto auxiliar si no lo introduce un asunto que identifique la procedencia del correo.
$xasunto="Correo desde tu pagina";
## Pagina final de gracias. Si el formulario no incluye este campo oculto del formulario.
$gracias_defecto="http://www.hola.com.mx/webmain/contactanos/pagina_gracias.htm";
## Página final si se produce un error al enviar el correo
$error_correo="http://www.hola.com.mx/webmain/contactanos/error.html";
## variable auxiliar, que produce un salto de línea
$retorno="\r\n";

## CABECERAS DE CORREO
## Diversas cabeceras para el correo. Luego, lo usaremos para enviar el correo.
## $nombre $correo son variables que contienen los valores de: nombre y correo del formulario.
$headers = "MIME-Version: 1.0\r\n" ;
## campos y variables nombre, $nombre y correo $correo. No pueden ser modificados
## Han de mantenerse en el formulario para utilizar el mismo script con distintos formularios
$headers .= "From: $nombre<$correo>\r\n";
## Responder al correo
$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 correo desde la web.
else { $asunto2 ="Asunto-> $asunto"; }

## ENVÍO DEL CORREO
## Para finalizar, envíamos el correo, 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" );
?>

Y el formulario es este:

<FORM name = "formulario" ACTION="http://www.hola.com.mx/webmain/contactanos/mail.php" METHOD="post" onSubmit="return validate1(this)">

<!-- Los nombres de campos correo, y nombre, son obligatorios para todos los formularios -->

<div align="center">
<p><FONT color="#000000" size="2" face="Arial, Helvetica, sans-serif">Nombre:</FONT>
<INPUT TYPE="text" NAME="nombre" size="27">
<font color="#000000" size="2" face="Arial, Helvetica, sans-serif">Correo:</font>
<input type="text" name="correo" size="26">
</p>
<p align="center">
<!-- El resto de campos, puede tener un nombre cualquiera, mejor alguno indicativo-->
<font color="#000000" size="2" face="Arial, Helvetica, sans-serif">Asunto:</font>
<input type="text" name="asunto" size="40">
<!-- Puedes poner el asunto del correo, y otros campos como de tipo oculto que el usuario no ve -->
<!-- <input type="hidden" name="asunto" VALUE="Asunto que quieras poner en el mensaje"> -->
</p>
<p><BR>

<!-- Campo de lista de selección -->
<FONT size="2" face="Arial, Helvetica, sans-serif">Envía tu comentario a:</FONT>
<BR>
</div>


<div align="center">
<p><BR>
<!--Campo de líneas múltiples de 50 columnas (caracteres) y 10 filas (líneas) -->
<textarea name="mensaje" cols="50" rows="7"></textarea>

</p>
<p><BR>
<!-- Campo oculto con la dirección de la página de gracias final-->
<!-- Permite individualizar la página final para cada formulario-->
<INPUT TYPE="hidden" NAME="pagina_gracias" VALUE="http://www.hola.com.mx/webmain/contactanos/pagina_gracias.htm">

<!-- Puedes quitar variables del script, como la página de error y ponerlo como un campo oculto con el mismo nombre, pero sin $ en el caso del php. Recuerde, que php, distingue entre mayúsculas y minúsculas. -->
<!--Lo tengo así porque resulta mas sencillo. Lo importante del script, es que maneja cualquier número de campos sin modificar el script -->

<!-- Botón de enviar . Los botones siempre al final, para que los elimine nuestro script php-->
<INPUT name="submit" TYPE="submit" VALUE="Enviar">
<input type="reset" name="Borrar" value="Borrar">

</p>
</div>
</FORM>

espero que me ayuden.

Gracias!!!!!
  #2 (permalink)  
Antiguo 05/05/2005, 15:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Indica que línea es la 9 de mail.php .. ahí dice que estás haciendo algo de salida al navegador .. ya sea un salto de línea antes de <? .. o un espacio .. o algo de HTML .. o un echo "algo ..." .. etc.

Un saludo,
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 18:43.