Ir ao conteúdo
  • Cadastre-se

Como resolver o erro cannot modify header information ?


Wesj

Posts recomendados

Olá pessoal, eu queria saber o que pode ser esse erro aqui

Warning: Cannot modify header information - headers already sent by (output started at /home/wfpcompu/public_html/admin/index.php:26) in /home/wfpcompu/public_html/admin/index.php on line 38

preciso de ajuda, por favor...

Link para o comentário
Compartilhar em outros sites

  • Moderador

Olá, esse erro pode ser causado por N maneiras.

Veja se no seu arquivo php.. contém espaço em cima da tag de abertura <?php

se tiver, tire.

Veja se está usando sessions... se você já abriu a sessão, se abrir de novo em outro lugar dá esse problema.

por fim.. o google ajuda muito nesse caso.

Pesquisa no Google

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Como o erro diz, qualquer tipo de output (desde um espaço em branco a qualquer caractere) não é permitido ANTES de um modificador de cabeçalho (comando Header()).

Ou seja, você precisa garantir que não existe nenhum output (HTML, echo, print, var_dump, etc) antes da linha 38 do arquivo index.php.

Segundo o erro, o output começou na linha 26 do arquivo admin/index.php. Verifique se não há espaços em branco nem nada parecido..

Link para o comentário
Compartilhar em outros sites

seguem o código completo:


<?php
session_start();
function __autoload($classe){
require_once "../classes/$classe".'.class.php';
}
include_once "../config.php";
BD::conn();
$login = new Login('adm_', 'loja_adm');

if($login->isLogado()){
header("Location: painel/index.php");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WFPcomputer - Login</title>
<link href="style.css" rel="stylesheet" type="text/css" media="screen"/>
</head>
<body>
<div id="box_log">
<img src="painel/images/WFPcomputer.png" />
<?php
echo $_SESSION['adm_emailLog'].'<br />';
echo $_SESSION['adm_senhaLog'].'<br />';
if(isset($_POST['acao']) && $_POST['acao'] == 'entrar'):
$email = strip_tags(filter_input(INPUT_POST, 'email'));
$senha = strip_tags(filter_input(INPUT_POST, 'senha'));
if($email == '' || $senha == ''){
echo '<div class="aviso">Preencha todos os campos, por favor!</div>';
}else{
$login->setEmail($email);
$login->setSenha($senha);
if($login->logar()){
header("Location: painel/index.php");
}else{
echo '<div class="aviso">Erro, usuario não encontrado!</div>';
}
}
endif;
?>
<?php if(!$login->isLogado()){?>
<div class="aviso">
<p>Para você acessar o painel, você deve ter um acesso confirmado com o administrador do site!</p>
</div>
<?php }?>
<form action="" method="post" enctype="multipart/form-data">
<label>
<span>Email</span>
<input type="text" name="email" />
</label>
<label>
<span>Senha</span>
<input type="password" name="senha" />
</label>
<input type="hidden" name="acao" value="entrar" />
<input type="submit" value="Logar" />
</form>
</div>

</body>
</html>

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Amigo, seu código possui conteúdo HTML antes de um Header(), o que não é permitido.

<?php
session_start();
(..)

if($login->isLogado()){
[COLOR="Orange"][B]header("Location: painel/index.php");[/B][/COLOR]
}
?>
[COLOR="Blue"][B]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WFPcomputer - Login</title>
<link href="style.css" rel="stylesheet" type="text/css" media="screen"/>
</head>
<body>
<div id="box_log">
<img src="painel/images/WFPcomputer.png" />[/B][/COLOR]
<?php
[COLOR="Green"][B]echo $_SESSION['adm_emailLog'].'<br />';
echo $_SESSION['adm_senhaLog'].'<br />';[/B][/COLOR]
if(isset($_POST['acao']) && $_POST['acao'] == 'entrar'):
$email = strip_tags(filter_input(INPUT_POST, 'email'));
$senha = strip_tags(filter_input(INPUT_POST, 'senha'));
if($email == '' || $senha == ''){
echo '<div class="aviso">Preencha todos os campos, por favor!</div>';
}else{
$login->setEmail($email);
$login->setSenha($senha);
if($login->logar()){
[COLOR="Red"][B]header("Location: painel/index.php");[/B][/COLOR]
}else{
echo '<div class="aviso">Erro, usuario não encontrado!</div>';
}
}
endif;
?>
(..)

Acima, em vermelho está a linha que ocasiona o erro, um Header(). Porém, existem outputs (retornos) feitos com marcação HTML e retornos HTML gerados pelo PHP.

A linha em vermelho precisa estar na parte superior do código, onde não há nenhum retorno HTML. Assim como tem o outro Header() ali, em laranja.

Link para o comentário
Compartilhar em outros sites

eu separei o codigo do HTML, mas ai ao invéz de aparecer aquele erro, ele faz o seguinte:

quando eu entro no painel com meu email e minha senha e dou enter, ele volta pra tela de login ai eu tenho que atualizar a pagina pra entrar no painel...

O que pode ser ?

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!