Foros del Web » Programando para Internet » PHP »

cannot modify headers

Estas en el tema de cannot modify headers en el foro de PHP en Foros del Web. Código: <? $usuari= $_POST['alumno']; $clau= $_POST['clau']; if($usuari == "" OR $clau == "" ){ echo'<META HTTP-EQUIV="refresh" CONTENT="0; URL=Index.php?error=1">'; } else{ //En caso de que el ...
  #1 (permalink)  
Antiguo 31/07/2009, 12:05
 
Fecha de Ingreso: julio-2009
Mensajes: 14
Antigüedad: 14 años, 8 meses
Puntos: 0
cannot modify headers

Código:
<?

$usuari= $_POST['alumno'];
$clau= $_POST['clau'];

if($usuari == "" OR $clau == "" ){ echo'<META HTTP-EQUIV="refresh" CONTENT="0; URL=Index.php?error=1">';

}
else{

 //En caso de que el usuario esté rellenado, se verifica la contraseña

include_once("Conexion.php");
$seleccionarusuario = mysql_query("SELECT * FROM cuentas WHERE usuario = '$usuari'");
$mostrarusuario = mysql_fetch_array($seleccionarusuario);
$clauvalida = $mostrarusuario['password'];
if($clau == $clauvalida){   

setcookie("usuariocookie",$usuari,time() + 604800);
setcookie("clavecookie",$clau,time() + 604800);
echo'<META HTTP-EQUIV="refresh" CONTENT="5; URL=Index.php">';

//En caso de ser correcta se crean las cookies y se redirige al index

}else{
///En caso de ser incorrecta se da el error y se muestra el login de nuevo

echo'<META HTTP-EQUIV="refresh" CONTENT="0; URL=Index.php?error=1">';

}
}

?>
Cuando hago el login y envio, me salta :

Código:
Warning: Cannot modify header information - headers already sent by (output started at /var/www/comprobar.php:2) in /var/www/comprobar.php on line 20

Warning: Cannot modify header information - headers already sent by (output started at /var/www/comprobar.php:2) in /var/www/comprobar.php on line 21
He probado con quitarle el html, pero no me funciona. Alguien podría ayudarme gracias.
  #2 (permalink)  
Antiguo 31/07/2009, 12:21
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: cannot modify headers

Primero los setcookie son iguales a los header en el sentido de que no pueden enviarse informacion al navegador antes de que se declaren. Verifica la linea 2 que no haya sido un envio al navegador. Te sugiero que la primera linea sea <?php y luego el codigo de php sin enviar informacion al navegador
  #3 (permalink)  
Antiguo 31/07/2009, 15:41
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 2 meses
Puntos: 14
Respuesta: cannot modify headers

Hola , comprueba que si incluyes el fichero via include , require o demas , no haya ningun espacio en blanco luego de ?> en la finalización del fichero que incluyes ,sino te dara error nuevamente.

Saludos
  #4 (permalink)  
Antiguo 01/08/2009, 07:47
 
Fecha de Ingreso: junio-2006
Mensajes: 84
Antigüedad: 17 años, 9 meses
Puntos: 1
Respuesta: cannot modify headers

esto ocurre porque ya has declarado todas las <meta> en el <head></head>
y ahora pretendes incluir otra dentro del body

utiliza esto
Código PHP:
ob_start();
header ("Location: index.php");
ob_flush(); 
en vez de
echo'<META HTTP-EQUIV="refresh" CONTENT="5; URL=Index.php">';
  #5 (permalink)  
Antiguo 01/08/2009, 07:56
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 2 meses
Puntos: 14
Respuesta: cannot modify headers

Hola , fijate si tenes algun espacio en blanco en la finalización del include conexion.php , es decir ponele que tu fichero sea el siguiente:

Código php:
Ver original
  1. <?php
  2. ?>{ESPACIO_EN_BLANCO}

y al incluirlo te dara error de cabeceras :) , para solventar esto revisa bien los espacios en blanco y elimina cualquier salida al navegador antes de setcookie , o header.

Por otro lado las metas van entre las etiquetas head , no van en el body y si hubiese una meta en el body este error no lo daria , sencillamente quedaria mal formado el html y se veria mal pero nunca llegaria a dar un error de php.

Saludos
  #6 (permalink)  
Antiguo 01/08/2009, 10:25
 
Fecha de Ingreso: julio-2009
Mensajes: 14
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: cannot modify headers

Cita:
Iniciado por lestatminiyo Ver Mensaje
esto ocurre porque ya has declarado todas las <meta> en el <head></head>
y ahora pretendes incluir otra dentro del body

utiliza esto
Código PHP:
ob_start();
header ("Location: index.php");
ob_flush(); 
en vez de
echo'<META HTTP-EQUIV="refresh" CONTENT="5; URL=Index.php">';
Muchas gracias tio, ya funciona !
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 19:50.