Windows Dragon 1 Denunciar mensagem Publicado 19 de Fevereiro de 2013 (editado) 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 19 de Fevereiro de 2013 por Windows Dragon Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
scorch 19 Denunciar mensagem Publicado 19 de Fevereiro de 2013 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. 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 1185 Denunciar mensagem Publicado 19 de Fevereiro de 2013 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 Portugol Plus Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Windows Dragon 1 Denunciar mensagem Publicado 19 de Fevereiro de 2013 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 1185 Denunciar mensagem Publicado 19 de Fevereiro de 2013 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 1 IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
NunoDinis 40 Denunciar mensagem Publicado 19 de Fevereiro de 2013 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 1 Denunciar mensagem Publicado 19 de Fevereiro de 2013 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
HappyHippyHippo 1185 Denunciar mensagem Publicado 19 de Fevereiro de 2013 sim ... os bytes do BOM é considerado conteúdo HTML fazendo que as chamadas dos headers sejam invalidadas 1 IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites