Foros del Web » Programando para Internet » PHP »

WARNING: Cannot modify header information - headers already sent by

Estas en el tema de WARNING: Cannot modify header information - headers already sent by en el foro de PHP en Foros del Web. Hola a todos!!! tengo un php q recibe datos de un html y necesito q segun una consulta m direccione a la siguien pagina pero ...
  #1 (permalink)  
Antiguo 17/11/2010, 11:39
 
Fecha de Ingreso: octubre-2010
Mensajes: 41
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta WARNING: Cannot modify header information - headers already sent by

Hola a todos!!!
tengo un php q recibe datos de un html y necesito q segun una consulta m direccione a la siguien pagina pero m sale este warning:Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\dif\identificaa.php:4) in C:\xampp\htdocs\dif\identificaa.php on line 26

Este es el codigo php q tengo:
Código PHP:
<?php

$usuario
=$_POST['usuario']; 
$area=$_POST['area']; 
$pass=$_POST['pass']; 


mysql_connect("localhost","root","yonose14") or die("no se pudo realizar la conexion");  
mysql_select_db("dif") or die ("no se encuantra la bd");


$resp mysql_query("SELECT*FROM empleado WHERE usuario='".$_POST['usuario']."' AND area='".$_POST['area']."'");
$sql mysql_fetch_array($resp);

$cons mysql_query("SELECT*FROM ap WHERE usuario='".$_POST['usuario']."' AND area='".$_POST['area']."'");
$sqll mysql_fetch_array($cons);

if(
$_POST['pass'] != $sql['password']) {
header ("location: error1.htm"); 
} else if(
$_POST['pass'] = $sqll['password']){
header ("location: informatica.html"); 
} else {
header ("location: pruebaaa.php"); 
}
?>
Alguien podria tratar de explicarme q pasa!!!

he leido q solo t manda ese error cuando muestras algo en pantalla y utilizas el header pero yo no estoy haciendo eso o si???

Ayuda PLASE!!!!
  #2 (permalink)  
Antiguo 17/11/2010, 11:41
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: WARNING: Cannot modify header information - headers already sent by

pues los mensajes de error no mienten...
Cita:
output started at C:\xampp\htdocs\dif\identificaa.php:4
¿podrías mostrar que hay en dicho archivo y linea?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 17/11/2010, 11:43
 
Fecha de Ingreso: noviembre-2008
Mensajes: 31
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: WARNING: Cannot modify header information - headers already sent by

si tienes algun echo, pasa ese error,
pero tambien si enviar cualquier cosa antes del header("...

si tienes un espacio, tambien va a salir ese error
  #4 (permalink)  
Antiguo 17/11/2010, 12:15
 
Fecha de Ingreso: octubre-2010
Mensajes: 41
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: WARNING: Cannot modify header information - headers already sent by

en la linea 4 solo tngo el inicio del php <?php y pues ese es todo mi codigo solo tengo el <html><body> abriendo seguido un espacio y despues el codigo q les postee y pues cierro al fina el body el html...
  #5 (permalink)  
Antiguo 17/11/2010, 12:20
 
Fecha de Ingreso: octubre-2010
Mensajes: 41
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: WARNING: Cannot modify header information - headers already sent by

Ok quite todos los espacios y ya me redirecciono...

Pero ahora tengo otra pregunta... Como puedo hacer para pasar los valores que van almacenados en $usuario, $area y $pass al siguiente formulario????

Lo habia intentado hacer con un fomr atraves de un input type: Hidden pero me salia el mismo error...

Hay alguna manera de hacerlo?????
  #6 (permalink)  
Antiguo 17/11/2010, 12:23
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: WARNING: Cannot modify header information - headers already sent by

Lee esto http://www.forosdelweb.com/wiki/PHP:...dy_sent%3F
y estohttp://www.forosdelweb.com/wiki/PHP:...n_line_4%22%3F
__________________
More about me...
~ @rhyudek1
~ Github
  #7 (permalink)  
Antiguo 17/11/2010, 12:33
 
Fecha de Ingreso: octubre-2010
Mensajes: 41
Antigüedad: 13 años, 6 meses
Puntos: 0
Ok eso ya me quedo mas q claro... No enviar nada antes de las cabeceras...

Pero entonces despues de cerrar el php (?>) puedo poner un form q m envie atravz de un input type: Hidden el valor de estas 3 variables?????

Gracias!!!!

Última edición por GatorV; 17/11/2010 a las 16:03
  #8 (permalink)  
Antiguo 17/11/2010, 12:41
Avatar de jaao_death  
Fecha de Ingreso: abril-2009
Ubicación: Murcia/españa
Mensajes: 229
Antigüedad: 15 años
Puntos: 6
Respuesta: WARNING: Cannot modify header information - headers already sent by

vamos a ver, el error se produce cuando intentas modificar o enviar una cabecera HTTP después de haber enviado datos, es decir:

Breve introducción a HTTP

La comunicación entre un servidor y un cliente web usa el protocolo HTTP como estándar (puede no ser así, pero es poco común).

El servidor necesita enviar información al cliente para que manipule el contenido de una forma u otra, esta información va e una parte de la comunicación que se llama Header (cabecera), en el header se incluye también información relativa a las Cookies y/o cualquier modificación con la función header () de php (entre otras funciones)

Después de entregar esta información envía el contenido que se busca, en nuestro caso el código HTML (también puede enviar texto sin formato o otro tipo de archivos).

Siempre en ese orden:
Servidor - Cliente
[Header fields]
[Content] (normal mente)

Antes de enviar cualquier contenido (HTML) el servidor ("Apache-PHP", por ejemplo) envía las cabeceras, para seguir el protocolo, una vez enviadas no se pueden modificar (como es obvio), tampoco se pueden añadir otras cabeceras, como es tu caso.

La mejor solución ante este problema es guardar cualquier salida ("echo") en alguna variable, y que lo último que salga sea tal contenido.

Por esto no es recomendable mezclar HTML con PHP:

Código PHP:
<!-- En este punto ya han sido enviadas las cabeceras -->
<html>
<head>
<title>Algo</title>
</head>
<body>
<?php echo $body;?><!-- esta no solo no es una buena forma sino que además
resulta sucia y difícil de mantener -->
</body>
</html>
__________________
Mucha seguridad nunca es suficiente.... Por una red segura
El señor ilustre obscurece nuestras mentes
Usas Linux? http://www.dudalibre.com/gnulinuxcounter
  #9 (permalink)  
Antiguo 17/11/2010, 12:50
 
Fecha de Ingreso: octubre-2010
Mensajes: 41
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: WARNING: Cannot modify header information - headers already sent by

Cita:
Iniciado por jaao_death Ver Mensaje
vamos a ver, el error se produce cuando intentas modificar o enviar una cabecera HTTP después de haber enviado datos, es decir:

Breve introducción a HTTP

La comunicación entre un servidor y un cliente web usa el protocolo HTTP como estándar (puede no ser así, pero es poco común).

El servidor necesita enviar información al cliente para que manipule el contenido de una forma u otra, esta información va e una parte de la comunicación que se llama Header (cabecera), en el header se incluye también información relativa a las Cookies y/o cualquier modificación con la función header () de php (entre otras funciones)

Después de entregar esta información envía el contenido que se busca, en nuestro caso el código HTML (también puede enviar texto sin formato o otro tipo de archivos).

Siempre en ese orden:
Servidor - Cliente
[Header fields]
[Content] (normal mente)

Antes de enviar cualquier contenido (HTML) el servidor ("Apache-PHP", por ejemplo) envía las cabeceras, para seguir el protocolo, una vez enviadas no se pueden modificar (como es obvio), tampoco se pueden añadir otras cabeceras, como es tu caso.

La mejor solución ante este problema es guardar cualquier salida ("echo") en alguna variable, y que lo último que salga sea tal contenido.

Por esto no es recomendable mezclar HTML con PHP:

Código PHP:
<!-- En este punto ya han sido enviadas las cabeceras -->
<html>
<head>
<title>Algo</title>
</head>
<body>
<?php echo $body;?><!-- esta no solo no es una buena forma sino que además
resulta sucia y difícil de mantener -->
</body>
</html>

OK MUCHAS GRACIAS!!!!! ME HA QUEDADO COMPLETAMENTE CLARO

Etiquetas: header, modify, warning
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 21:23.