Foros del Web » Programando para Internet » PHP »

tengo este error con el header

Estas en el tema de tengo este error con el header en el foro de PHP en Foros del Web. Warning: Cannot modify header information - headers already sent by (output started at /home/servicom/public_html/calendario/redireccion.php:7) in /home/servicom/public_html/calendario/redireccion.php on line 43 esto es lo que hay en ...
  #1 (permalink)  
Antiguo 05/10/2006, 17:14
Avatar de devildriver  
Fecha de Ingreso: julio-2006
Mensajes: 118
Antigüedad: 17 años, 9 meses
Puntos: 0
tengo este error con el header

Warning: Cannot modify header information - headers already sent by (output started at /home/servicom/public_html/calendario/redireccion.php:7) in /home/servicom/public_html/calendario/redireccion.php on line 43

esto es lo que hay en esa linea
else
{

header("Location: http://www.google.com");
}
mysql_free_result($resultado);
  #2 (permalink)  
Antiguo 05/10/2006, 17:19
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 2 meses
Puntos: 4
El error no es nada extraño, de hecho no conozco a ningún programador de PHP al que no le haya salido alguna vez que otra. Es fácil de entender: no puedes enviar NADA antes de modificar las cabeceras (con funciones como setcookie(), header() o session_start()). Posiblemente tengas un espacio antes o después de abr/cerrar el modo de PHP, concretamente en el archivo redireccion.php, en la línea 7.

Checa eso y nos cuentas como te fue

Saludos
  #3 (permalink)  
Antiguo 05/10/2006, 17:25
Avatar de devildriver  
Fecha de Ingreso: julio-2006
Mensajes: 118
Antigüedad: 17 años, 9 meses
Puntos: 0
no te entendi

no puedes enviar NADA antes de modificar las cabeceras (con funciones como setcookie(), header() o session_start()). Posiblemente tengas un espacio antes o después de abr/cerrar el modo de PHP, concretamente en el archivo redireccion.php, en la línea 7.

No entendi a lo que te refieres amigo, soy novato en esto.
  #4 (permalink)  
Antiguo 05/10/2006, 17:36
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 2 meses
Puntos: 4
me refiero a ke no puedes tener codigo html antes de hacer un header(), ke es como parece ke estas trabajando el script
  #5 (permalink)  
Antiguo 05/10/2006, 19:41
 
Fecha de Ingreso: junio-2006
Ubicación: chihuahua, norte de mexico
Mensajes: 5
Antigüedad: 17 años, 10 meses
Puntos: 0
no tengo line html y sale el mismo error

pues a mi me salio el mismo error y no tengo ni una sola linea html, existe otra forma de mandar a otra pagina automaticamente desde php?

Código PHP:
<?php
session_start
();
    
header("Cache-control: private"); // Arregla IE 6
    
$regis_nomb_w $_POST["regis_nomb_w"];
    
$regis_orga_w $_POST["regis_orga_w"];
    
$regis_call_w $_POST["regis_call_w"];
    
$regis_nume_w $_POST["regis_nume_w"];
    
$regis_colo_w $_POST["regis_colo_w"];
    
$regis_ciud_w $_POST["regis_ciud_w"];
    
$regis_esta_w $_POST["regis_esta_w"];
    
$regis_pais_w $_POST["regis_pais_w"];
    
$regis_pain_w $_POST["regis_pain_w"];
    
$regis_tele_w $_POST["regis_tele_w"];
    
$regis_emai_w $_POST["regis_emai_w"];
    
$regis_pagi_w $_POST["regis_pagi_w"];
    
$organ_nomb_w $_POST["organ_nomb_w"];
    
$organ_desc_w $_POST["organ_desc_w"];
    
$organ_call_w $_POST["organ_call_w"];
    
$organ_nume_w $_POST["organ_nume_w"];
    
$organ_colo_w $_POST["organ_colo_w"];
    
$organ_ciud_w $_POST["organ_ciud_w"];
    
$organ_esta_w $_POST["organ_esta_w"];
    
$organ_pais_w $_POST["organ_pais_w"];
    
$organ_pain_w $_POST["organ_pain_w"];
    
$organ_tele_w $_POST["organ_tele_w"];
    
$organ_emai_w $_POST["organ_emai_w"];
    
$organ_pagi_w $_POST["organ_pagi_w"];
    
$organ_resp_w $_POST["organ_resp_w"];
    
$sw_cual $_POST["sw_cual"];
    if (
$sw_cual==3) {
        
$link mysql_connect('localhost''yeffim''gerox');
        if (!
$link) {
            die(
'Could not connect: ' mysql_error());
        }
        else {
            echo 
'Conexión exitosa: <BR/>';
        }
        
mysql_select_db('fsf') or die('No pudo seleccionarse la BD.');
        
$result mysql_query("SELECT * FROM organizaciones WHERE numero='$regis_orga_w'"); 
        if(
$row mysql_fetch_array($result)) {
            
$regis_call_w=$row[3];
            
$regis_nume_w=$row[4];
            
$regis_colo_w=$row[5];
            
$regis_esta_w=$row[6];
            
$regis_pais_w=$row[7];
            
$regis_ciud_w=$row[12];

        }
        
mysql_freeresult($result);
        
mysql_close();
        
header("Location: cuerporegistration.html#060904");
        echo 
"<html></html>";
    }
    else {
    if (
$sw_cual==2) {
        
$link mysql_connect('localhost''yeffim''gerox');
        if (!
$link) {
            die(
'Could not connect: ' mysql_error());
        }
        else {
            echo 
'Conexión exitosa: <BR/>';
        }
        
mysql_select_db('fsf') or die('No pudo seleccionarse la BD.');
        
$result mysql_query("SELECT * FROM organizaciones WHERE nombre='$organ_nomb_w'"); 
        if(
$row mysql_fetch_array($result)) {
            
header("Location: nombreocupadoorg.php");
            echo 
"<html></html>";
        }
        else { 
            if (
$organ_pain_w=="") {
                
$link mysql_connect('localhost''yeffim''gerox');
                if (!
$link) {
                    die(
'Could not connect: ' mysql_error());
                }
                
mysql_select_db('fsf') or die('No pudo seleccionarse la BD.');
                
$result mysql_query("SELECT nombre FROM paises");
                while (
$row=mysql_fetch_array($result))
                {
                    
$organ_pain_w=$row[0];
                }    
                
mysql_free_result($result);
                
mysql_close();
            }
            
mysql_free_result($result);
            
mysql_close();
            
$link mysql_connect('localhost''yeffim''gerox');
            if (!
$link) {
                die(
'Could not connect: ' mysql_error());
            }
            
mysql_select_db('fsf') or die('No pudo seleccionarse la BD.');
            
$result mysql_query("SELECT organizaciones FROM folios");
            while (
$row=mysql_fetch_array($result))
            {
                
$puente=$row[0];
                
$numero=($puente+1);
            }    
            
$sql "INSERT INTO organizaciones VALUES ('$numero', '$organ_nomb_w', '$organ_desc_w', '$organ_call_w', '$organ_nume_w', '$organ_colo_w', '$organ_esta_w', '$organ_pais_w', '$organ_tele_w', '$organ_emai_w', '$organ_pagi_w', '$organ_resp_w', '$organ_pain_w', '$organ_ciud_w')";
            
$result mysql_query($sql);
            
mysql_free_result($result);
            
$sql "UPDATE folios SET organizaciones='$numero'";
            
$result mysql_query($sql);
            
mysql_free_result($result);
            
mysql_close();
            
$regis_orga_w=$numero;
            
$regis_call_w=$organ_call_w;
            
$regis_nume_w=$organ_nume_w;
            
$regis_colo_w=$organ_colo_w;
            
$regis_ciud_w=$organ_ciud_w;
            
$regis_pais_w=$organ_pais_w;
            
$regis_esta_w=$organ_esta_w;
            
header("Location: /fsf/grabadaorganizacion.php");
            echo 
"<html></html>";
        }
    }
    else {
        
$link mysql_connect('localhost''yeffim''gerox');
        if (!
$link) {
            die(
'Could not connect: ' mysql_error());
        }
        
mysql_select_db('fsf') or die('No pudo seleccionarse la BD.');
        
$result mysql_query("SELECT registros FROM folios");
        while (
$row=mysql_fetch_array($result))
        {
            
$puente=$row[0];
            
$numero=($puente+1);
        }    
        
$sql "INSERT INTO registro VALUES ('$regis_nomb_w', '$regis_orga_w', '$regis_call_w', '$regis_nume_w', '$regis_colo_w', '$regis_ciud_w', '$regis_esta_w', '$regis_pais_w', '$regis_tele_w', '$regis_emai_w', '$regis_pagi_w', '$regis_pain_w', '$numero', '2006')";
        
$result mysql_query($sql);
        
mysql_free_result();
        
$sql "UPDATE folios SET registros='$numero'";
        
$result mysql_query($sql);
        
mysql_free_result($result);
        
mysql_close();
        
header("Location: grabadoregistro.php");
        echo 
"<html></html>";
    }
    }
?>

Última edición por Cluster; 05/10/2006 a las 19:48
  #6 (permalink)  
Antiguo 05/10/2006, 19:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por gerox Ver Mensaje
pues a mi me salio el mismo error y no tengo ni una sola linea html, existe otra forma de mandar a otra pagina automaticamente desde php?

Código PHP:
<?php
session_start
();
    
header("Cache-control: private"); // Arregla IE 6
    
$regis_nomb_w $_POST["regis_nomb_w"];
    
$regis_orga_w $_POST["regis_orga_w"];
    
$regis_call_w $_POST["regis_call_w"];
    
$regis_nume_w $_POST["regis_nume_w"];
    
$regis_colo_w $_POST["regis_colo_w"];
    
$regis_ciud_w $_POST["regis_ciud_w"];
    
$regis_esta_w $_POST["regis_esta_w"];
    
$regis_pais_w $_POST["regis_pais_w"];
    
$regis_pain_w $_POST["regis_pain_w"];
    
$regis_tele_w $_POST["regis_tele_w"];
    
$regis_emai_w $_POST["regis_emai_w"];
    
$regis_pagi_w $_POST["regis_pagi_w"];
    
$organ_nomb_w $_POST["organ_nomb_w"];
    
$organ_desc_w $_POST["organ_desc_w"];
    
$organ_call_w $_POST["organ_call_w"];
    
$organ_nume_w $_POST["organ_nume_w"];
    
$organ_colo_w $_POST["organ_colo_w"];
    
$organ_ciud_w $_POST["organ_ciud_w"];
    
$organ_esta_w $_POST["organ_esta_w"];
    
$organ_pais_w $_POST["organ_pais_w"];
    
$organ_pain_w $_POST["organ_pain_w"];
    
$organ_tele_w $_POST["organ_tele_w"];
    
$organ_emai_w $_POST["organ_emai_w"];
    
$organ_pagi_w $_POST["organ_pagi_w"];
    
$organ_resp_w $_POST["organ_resp_w"];
    
$sw_cual $_POST["sw_cual"];
    if (
$sw_cual==3) {
        
$link mysql_connect('localhost''yeffim''gerox');
        if (!
$link) {
            die(
'Could not connect: ' mysql_error());
        }
        else {
            echo 
'Conexión exitosa: <BR/>';
        }
        
mysql_select_db('fsf') or die('No pudo seleccionarse la BD.');
        
$result mysql_query("SELECT * FROM organizaciones WHERE numero='$regis_orga_w'"); 
        if(
$row mysql_fetch_array($result)) {
            
$regis_call_w=$row[3];
            
$regis_nume_w=$row[4];
            
$regis_colo_w=$row[5];
            
$regis_esta_w=$row[6];
            
$regis_pais_w=$row[7];
            
$regis_ciud_w=$row[12];

        }
        
mysql_freeresult($result);
        
mysql_close();
        
header("Location: cuerporegistration.html#060904");
        echo 
"<html></html>";
    }
    else {
    if (
$sw_cual==2) {
        
$link mysql_connect('localhost''yeffim''gerox');
        if (!
$link) {
            die(
'Could not connect: ' mysql_error());
        }
        else {
            echo 
'Conexión exitosa: <BR/>';
        }
        
mysql_select_db('fsf') or die('No pudo seleccionarse la BD.');
        
$result mysql_query("SELECT * FROM organizaciones WHERE nombre='$organ_nomb_w'"); 
        if(
$row mysql_fetch_array($result)) {
            
header("Location: nombreocupadoorg.php");
            echo 
"<html></html>";
        }
        else { 
            if (
$organ_pain_w=="") {
                
$link mysql_connect('localhost''yeffim''gerox');
                if (!
$link) {
                    die(
'Could not connect: ' mysql_error());
                }
                
mysql_select_db('fsf') or die('No pudo seleccionarse la BD.');
                
$result mysql_query("SELECT nombre FROM paises");
                while (
$row=mysql_fetch_array($result))
                {
                    
$organ_pain_w=$row[0];
                }    
                
mysql_free_result($result);
                
mysql_close();
            }
            
mysql_free_result($result);
            
mysql_close();
            
$link mysql_connect('localhost''yeffim''gerox');
            if (!
$link) {
                die(
'Could not connect: ' mysql_error());
            }
            
mysql_select_db('fsf') or die('No pudo seleccionarse la BD.');
            
$result mysql_query("SELECT organizaciones FROM folios");
            while (
$row=mysql_fetch_array($result))
            {
                
$puente=$row[0];
                
$numero=($puente+1);
            }    
            
$sql "INSERT INTO organizaciones VALUES ('$numero', '$organ_nomb_w', '$organ_desc_w', '$organ_call_w', '$organ_nume_w', '$organ_colo_w', '$organ_esta_w', '$organ_pais_w', '$organ_tele_w', '$organ_emai_w', '$organ_pagi_w', '$organ_resp_w', '$organ_pain_w', '$organ_ciud_w')";
            
$result mysql_query($sql);
            
mysql_free_result($result);
            
$sql "UPDATE folios SET organizaciones='$numero'";
            
$result mysql_query($sql);
            
mysql_free_result($result);
            
mysql_close();
            
$regis_orga_w=$numero;
            
$regis_call_w=$organ_call_w;
            
$regis_nume_w=$organ_nume_w;
            
$regis_colo_w=$organ_colo_w;
            
$regis_ciud_w=$organ_ciud_w;
            
$regis_pais_w=$organ_pais_w;
            
$regis_esta_w=$organ_esta_w;
            
header("Location: /fsf/grabadaorganizacion.php");
            echo 
"<html></html>";
        }
    }
    else {
        
$link mysql_connect('localhost''yeffim''gerox');
        if (!
$link) {
            die(
'Could not connect: ' mysql_error());
        }
        
mysql_select_db('fsf') or die('No pudo seleccionarse la BD.');
        
$result mysql_query("SELECT registros FROM folios");
        while (
$row=mysql_fetch_array($result))
        {
            
$puente=$row[0];
            
$numero=($puente+1);
        }    
        
$sql "INSERT INTO registro VALUES ('$regis_nomb_w', '$regis_orga_w', '$regis_call_w', '$regis_nume_w', '$regis_colo_w', '$regis_ciud_w', '$regis_esta_w', '$regis_pais_w', '$regis_tele_w', '$regis_emai_w', '$regis_pagi_w', '$regis_pain_w', '$numero', '2006')";
        
$result mysql_query($sql);
        
mysql_free_result();
        
$sql "UPDATE folios SET registros='$numero'";
        
$result mysql_query($sql);
        
mysql_free_result($result);
        
mysql_close();
        
header("Location: grabadoregistro.php");
        echo 
"<html></html>";
    }
    }
?>
No sólo se trata de "HTML" lo que se entiende como "salida" generada y lo que origina el problema. Cualquier espacio, salto de línea antes de <? .. o envio de -otras- cabeceras podría darte el mismo problema.

Deberías indicar el error textual que obtienes, por qué ahí dice exactamente en que linea de tu código se está originando esa "salida".

Yo a simple vista veo algunas cosas no correctas:

Código PHP:
header("Location: /fsf/grabadaorganizacion.php"); 
            echo 
"<html></html>"
Ese "echo" ahí no sé con qué sentido lo usas. Fijate lo que significa "Location" como "cabecera HTTP" que es lo que envias cuando usas header() desde PHP.

Estás diciendo a tu "navegador" por cabeceras HTTP: "cambia la página en que estás por esta otra". Y todo esto por "cabeceras HTTP", las cuales se ejecutan -antes- que el HTML que venga a continuación. Por otro lado, si tu decides cambiar el "flujo" de tu script en ese punto para apuntarlo a otro (o página en general), ya no te interesa para nada seguir ejecutando el código que ahí puedas tener .. ni mostrar NINGUNA salida (HTML, generar página) en ese script .. por ende, todo ese HTML sub-siguiente y código en general NO tiene sentido. Lo normal es "forzar" justamente el término de la ejecución del script en ese punto con la función: exit.

Deberías usar:
Código PHP:
header("Location: /fsf/grabadaorganizacion.php"); 
exit; 
Por otro lado, esta cabecera:
header("Cache-control: private"); // Arregla IE 6

que tienes antes de cualquier otro header() de tipo "Location" que puedas usar seguidamente podría ser la que origine el problema. Esto como te decía se vé más claro en el mensaje de error que indica en que línea de tu código se está originando la "salida".

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 09:23.