Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/12/2010, 16:47
agus2kn
 
Fecha de Ingreso: julio-2010
Mensajes: 6
Antigüedad: 13 años, 9 meses
Puntos: 0
formulario php: problemas con header

Buenos días estimada gente de este buen foro. Estuve leyendo muchos post de esta página y gracias a ustedes he aprendido mucho pero ahora estoy con un problema que no puedo resolver.
Hice un pequeño formulario que va en varias páginas de mi sitio... incluído el home. El mismo me envía la información depositada a una cuenta de correo... con eso no tengo problemas.

Todo andaba perfectamente pero hice unas modificaciones separando el formulario en un archivo llamado: formulario.php para poder ubicarlo en varias páginas del site y agregué un script en javascript para que salga una ventana de "formulario enviado" y lo redirecciono al home (aunque en realidad me gustaría saber como redireccionar a la página anterior si son tan amables de darme una mano con eso )

Mi idea era enviar el formulario... que salga la ventana de aviso... clic en aceptar y regreso a la misma pagina sin tener que ir a otra página aparte para no tener que volver manualmente.

Mi problema es el típico caso del warning: "Cannot modify header information - headers already sent" en la línea del header del formulario.php que está a continuación:
Código PHP:
<?php $formulario '<form action="formulario.php" method="post" name="formulario_consulta" >
          <div id="titucon">Consultas</div>
          <div id="contenedor-formulario" >
            <label>Nombre</label>
            <input class="formulario2" name="nombre" type="text" size="22" maxlength="120" />
            <label>E-mail</label>
            <input class="formulario2" name="mail" type="text" value="@" size="22" maxlength="120" />
            <label>Consulta</label>
            <textarea class="formulario1 + textarea"  name="mensaje" cols="18" rows="3" id="cajaT" title="consulta a zona verde" dir="ltr" lang="es"></textarea>
            <br />
            <div style=" width:150px; margin-top:5px; line-height:2em"> <span>Deseo recibir el News</span>
              <input name="noti" type="checkbox" class="check" lang="es Espa&ntilde;ol (Espa&ntilde;a)" value="si" checked />
            </div>
            <input class="botones" name="borrar" type="reset" lang="es Espa&ntilde;ol (Espa&ntilde;a)" value="Borrar" />
            <input  class="botones" name="enviar" type="submit" value="Env&iacute;ar" onClick="aviso()" /> 
          </div>
          <div id="contenedor-comentario-formulario">En breve te responeremos a tu dirección de e-mail</div>
        </form>'
;        
$nombre $_POST['nombre'];
$mail $_POST['mail'];
$noti $_POST['noti'];

$header 'From: ' $mail " \r\n";
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje "Esta consulta fue enviada por:" $nombre " \r\n";
$mensaje .= "Su e-mail es: " $mail " \r\n";
$mensaje .= "desea recibir news: " $noti " \r\n";
$mensaje .= "Mensaje: " $_POST['mensaje'] . " \r\n";
$mensaje .= "Enviado el " date('d/m/Y'time());

$para '[email protected]';
$asunto 'Consulta desde zonaverde';

//mail($para, $asunto, $mensaje, $header);

echo '<script language = "javascript">
function aviso(){
alert("Su mensaje ha sido enviado. Gracias por estar en contacto con nosotros");
}
</script>'
header ("Location: home.php");?>
Y en la home.php tengo:
Código PHP:
<?php require ("formulario.php"); ?>
arriba de todo... y donde quiero que aparezca el formulario dentro de lo que es en si el sitio realizo una llamada a la variable
Código PHP:
$formulario 

El otro problema que me da el código es que cuando dejo todo comentado excepto la linea del header para ver si puedo solucionar por lo menos ese problema (el del header) entonces el home también me tira el error de: "Error 310 (net::ERR_TOO_MANY_REDIRECTS): Demasiados redireccionamientos."

Me gustaría saber si me estoy equivocando en la manera en que utilizo el redireccionamiento y también como redireccionar a una página anterior desde la página del formulario.

Muchas gracias