Ir ao conteúdo
  • Cadastre-se
Wesj

Como resolver o erro cannot modify header information ?

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
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>

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, e eu chequei o código e não vi nada de errado.

tem como você olhar pra ver se tem algum outro problema ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
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 ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×