Foros del Web » Programando para Internet » PHP »

Error en envio de formulario

Estas en el tema de Error en envio de formulario en el foro de PHP en Foros del Web. Tengo un formulario de contacto el cual relativamente funciona, envia el email, pero no refirecciona a la pagina que requiero que vaya cuando se envie ...
  #1 (permalink)  
Antiguo 26/05/2010, 20:15
 
Fecha de Ingreso: agosto-2004
Mensajes: 58
Antigüedad: 19 años, 8 meses
Puntos: 0
Error en envio de formulario

Tengo un formulario de contacto el cual relativamente funciona, envia el email, pero no refirecciona a la pagina que requiero que vaya cuando se envie el formulario, en vez de eso me sale el siguiente error:

Cita:
Warning: Cannot modify header information - headers already sent by (output started at /home/gpmarket/public_html/modificaciones/contacto.php:1) in /home/gpmarket/public_html/modificaciones/contacto.php on line 59

Este es el codigo del formulario:

Código PHP:
   <?php
if (isset($_POST['submit'])) {

    
// Chequeamos si el Referer viene de nuestro sitio 
    
$valid_hosts = array('www.dominio.com''dominio.com');
    
$temp_referer explode('/'$_SERVER['HTTP_REFERER']);
    if (!
in_array($temp_referer[2], $valid_hosts)) {
        exit(
'Formulario uso exclusivo de Dominio');
    }
    
    
    
/* Setear todas las variables */
    
foreach ($_POST as $key=>$value) {    
        
// Chequamos algunas keys para prevenir spam/injections
        
if (eregi('MIME-Version:'$value) || eregi('Content-Type'$value) || eregi('boundary='$value) || eregi('<script'$value) || eregi("CC:",$value)) {
            exit(
'Error: Prohibido SPAM');
        }
        
        $
$key $value;
    }
    
    
    
/* Validacion*/
    
    // Chequear campos obligatorios
    
$required_fields = array('nombre''email''comentario');
    foreach (
$required_fields as $required_field) {    
        if (!isset($
$required_field) || $$required_field == '') {    
            exit(
'Los Campos Nombre, E-mail y Comentario son obligatorios');
        }
    }
    
    
// Validar email
    
if (!preg_match("/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/"$email)) {
          exit(
'El formato del E-mail ingresado no es correcto');
    }
    
    
/* Fin Validacion */
    
    
    // Mensaje
    
$message =<<<EOD
FORMULARIO DE CONTACTO
 
Nombre: 
{$nombre}
Email: 
{$email}
Telefono: 
{$telefono}
Direccion: 
{$direccion}
Cumpleaños: 
{$cumpleaños}
Comentarios: 
{$comentario}
EOD;
    
    
$to '[email protected]';
    
$subject 'Formulario de contacto';
    
$headers 'From: [email protected]."\r\n";

    
mail($to,$subject,$message,$headers);

    
header('location: inicio.html'); // ESTA LINEA REDIRIJE CUANDO SE ENVIA EL FORMULARIO BIEN Y AQUI ES DONDE MARCA EL ERROR

} else {
    exit(
'No se puede acceder a este archivo directamente');
}
?>
  #2 (permalink)  
Antiguo 26/05/2010, 21:05
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Respuesta: Error en envio de formulario

No se si sera la lejor solucion pero a mi me funciono una vez.

ob_start();
header('location: inicio.html');
ob_end_flush();


El error se debe a que antes de un header no debe haber echos ni nada por el estilo.

Etiquetas: envio, formulario
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 15:12.