Ir para o conteúdo
Windows Dragon

[Resolvido] Cannot modify header information

Mensagens Recomendadas

Windows Dragon

Boas pessoal....

Eu tenho o seguinte código

if($result_num > 0){

 while($row = mysql_fetch_array($result)){
  $ver = $row['verified'];
  if($ver=='true')
  {
   $idsess = stripslashes($row["id"]);
	 $firstnamesess = stripslashes($row["name"]);
	 $username = stripslashes($row["username"]);
   $email = stripslashes($row['email']);
   $time = (time()+43200);
	 setcookie("usr", $username, $time, "", "site.com");
   setcookie("name", $firstnamesess,  $time, "", "site.com");
   setcookie("email",$email,$time,"","site.com");
	 $_SESSION["id"] = $idsess;
	 $_SESSION["name"] = $firstnamesess;
	 $_SESSION["user"] = $username;	  
	 header("location: http://" . $lang . ".site.com/index.php?page=" . $redirect . "&arg=login_success");	  
  }
  else
  {
   header("location: http://" . $lang . ".site.com/index.php?page=" . $redirect . "&arg=login_ana");
  }	  
	}
  } else {
 header("location: http://" . $lang . ".site.com/index.php?page" . $redirect . "&arg=login_error");
}

E dá-me este erro

Warning: Cannot modify header information - headers already sent by (output started at /home/hitmanpt/public_html/resources/login_system.php:1) in /home/hitmanpt/public_html/resources/login_system.php on line 52
Warning: Cannot modify header information - headers already sent by (output started at /home/hitmanpt/public_html/resources/login_system.php:1) in /home/hitmanpt/public_html/resources/login_system.php on line 53
Warning: Cannot modify header information - headers already sent by (output started at /home/hitmanpt/public_html/resources/login_system.php:1) in /home/hitmanpt/public_html/resources/login_system.php on line 54
Warning: Cannot modify header information - headers already sent by (output started at /home/hitmanpt/public_html/resources/login_system.php:1) in /home/hitmanpt/public_html/resources/login_system.php on line 58

Sendo as linhas as seguintes

setcookie("usr", $username, $time, "", "site.com"); //linha 52
setcookie("name", $firstnamesess, $time, "", "site.com"); //linha 53
setcookie("email",$email,$time,"","site.com"); //linha 54
header("location: http://" . $lang . ".site.com/index.php?page=" . $redirect . "&arg=login_success");	 //linha 58

Alguma ideia??

Editado por Windows Dragon

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
scorch

Sim. Tens de executar esse código dos headers antes de enviares qualquer coisa para o cliente (a.k.a echo's, print's, HTML e companhia). Ou seja, só podes imprimir para o browser depois de mandares os headers. :)


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

várias ..

a primeira é : tens alguma código (HTML também é código) antes do código PHP ?

a segunda é : tens algum código PHP a fazer algum tipo de output (echo, printf, etc ...) antes do código que apresentaste ?

tenho outras, mas estas são as mais convencionais ...


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Windows Dragon

várias ..

a primeira é : tens alguma código (HTML também é código) antes do código PHP ?

a segunda é : tens algum código PHP a fazer algum tipo de output (echo, printf, etc ...) antes do código que apresentaste ?

tenho outras, mas estas são as mais convencionais ...

Não tenho nada antes do PHP nem depois

Não tenho nada a fazer print, echo nem outros...

Nem Antes nem depois

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

Não tenho nada antes do PHP nem depois

Não tenho nada a fazer print, echo nem outros...

Nem Antes nem depois

ok, vamos então para os casos estranhos :

- verifica se o teu ficheiro com o código não está gravadono formato UTF-8 com BOM, e se sim, grava em UTF-8 sem BOM

BOM : Byte Order Mask = bytes inicias no ficheiro de ditam a ordem dos caracteres multibyte. caracteres que não são visíveis no editor

  • Voto 1

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

ok, vamos então para os casos estranhos :

- verifica se o teu ficheiro com o código não está gravadono formato UTF-8 com BOM, e se sim, grava em UTF-8 sem BOM

BOM : Byte Order Mask = bytes inicias no ficheiro de ditam a ordem dos caracteres multibyte. caracteres que não são visíveis no editor

Quando me acontece isso, é sempre esse o problema.

Mas é correto pôr sem BOM @happy ? Há uns tempos dei essa solução e quase me batiam :)


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Windows Dragon

ok, vamos então para os casos estranhos :

- verifica se o teu ficheiro com o código não está gravadono formato UTF-8 com BOM, e se sim, grava em UTF-8 sem BOM

BOM : Byte Order Mask = bytes inicias no ficheiro de ditam a ordem dos caracteres multibyte. caracteres que não são visíveis no editor

Se é correto ou não... Isso não sei... Mas funcionou...

Thanks HappyHippyHippo ;)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.