Jump to content
Windows Dragon

[Resolvido] Cannot modify header information

Recommended Posts

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??

Edited by Windows Dragon

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

  • Vote 1

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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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 ;)

Share this post


Link to post
Share on other sites
HappyHippyHippo

sim ... os bytes do BOM é considerado conteúdo HTML fazendo que as chamadas dos headers sejam invalidadas

  • Vote 1

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.