Ir para conteúdo
Gilberto Jr

Erro função header

Recommended Posts

Bom dia;

No meu painel de controle do site que eu estou desenvolvendo, a pagina de validação do login, tem a função header para fazer o direcionar para outra pagina.

 

Exemplo, tem a condição if else.

 

se for verdadeiro ele encaminha para uma pagina


header('location: painel.php');

 

e se for falso ele encaminha para outra pagina.


header('location: index.php');

 

Mas esta dando erro. Abaixo esta a mensagem de erro.

Warning: Cannot modify header information - headers already sent by (output started at /home/frutisulcom/public_html/site/admin/valida_login.php:1) in /home/frutisulcom/public_html/site/admin/valida_login.php on line 38

 

E na linha 38 esta o código 


header('location: painel.php');

 

o site esta hospedado na HostGator e na minha maquina, localhost funciona.

Alguém pode me ajudar?

 

Grato

Gilberto Jr

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!
Isso acontece porque algo já foi entregue para o browser.
declare header quando nada tiver sido entregue para o browser ainda.


Em outras palavras:
declare header antes de qualquer trecho html
ou então trechos php que tenham echo, print, print_r, var_dump, etc...

Declare header somente na camada de processos/lógica

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, tetsuo disse:

Olá!
Isso acontece porque algo já foi entregue para o browser.
declare header quando nada tiver sido entregue para o browser ainda.


Em outras palavras:
declare header antes de qualquer trecho html
ou então trechos php que tenham echo, print, print_r, var_dump, etc...

Declare header somente na camada de processos/lógica

 

@tetsuo, veja meu código da pagina abaixo.

 

Como eu faria pra fazer dessa forma que você mencionou? Veja que minha pagina não tem TAG html em sim.


<?php
//session_start();

$usuariot = $_POST['usuario'];
$senhat = md5($_POST['senha']);

//echo $usuariot.' - '.$senhat."<br/>";

include_once("conexao_n.php");

$result = mysqli_query($link,"select * from usuarios where login='$usuariot' and senha='$senhat' and ativo=1");

$resultado = mysqli_fetch_assoc($result);

//echo "Usuario: ".$resultado['nome'];

if(empty($resultado)){

    //mensagem de erro
    $_SESSION['loginErro'] = "<div class='alert-danger'>Usuário ou senha Inválido</div>";

    //MANDA O USUARIO PARA A TELA DE LOGIN
    header("Location: index.php");


}else{
    //Define os valores atribuidos na sessão do usurio
    $_SESSION['usuarioId']          = $resultado['Id'];
    $_SESSION['usuarioNome']        = $resultado['nome'];
    $_SESSION['usuarioSobrenome']   = $resultado['sobrenome'];
    $_SESSION['usuarioEmail']       = $resultado['email'];
    $_SESSION['usuarioAtivo']       = $resultado['ativo'];
    $_SESSION['usuarioLogin']       = $resultado['login'];
    $_SESSION['usuarioSenha']       = $resultado['senha'];
    $_SESSION['usuarioNivelAcesso'] = $resultado['nivel_acesso_id'];

    if($_SESSION['usuarioNivelAcesso'] == 1){
        header("Location: painel.php");
    }else{
        header("Location: usuario.php");
    }

}

?>

 

Fico agradecido.

 

Att;

Gilberto Jr

Compartilhar este post


Link para o post
Compartilhar em outros sites
Agora, tetsuo disse:

Este  é o arquivo valida_login.php?
o que tem na linha 1?
e na linha 38?

Isso, o que tem na linha 1 é a abertura do script php


<?php

 

e na linha 38 tem o código 


    if($_SESSION['usuarioNivelAcesso'] == 1){
        header("Location: painel.php"); //linha 38
    }else{
        header("Location: usuario.php");
    }

 

Att;

Gilberto Jr

Compartilhar este post


Link para o post
Compartilhar em outros sites
15 minutos atrás, tetsuo disse:

aparententeme há espaços antes da tag de abertura do php
remova os espaços

Revisei meu codigo pra ver se havia espaço na abertura do php, mas não tem.

 

Esta tudo certo.

 

Att;

Gilberto Jr

Compartilhar este post


Link para o post
Compartilhar em outros sites
13 minutos atrás, tetsuo disse:

E o sr. está acessando este arquivo direto na url?
a sua url termina com valida_login.php?

Não, essa pagina valida_login.php esta no action do formulário que o usuário digita o usuário e senha.

 

<form class="form-signin" method="post" action="valida_login.php">

 

Att;

Gilberto Jr

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho é que eu criei uma pagina somente com o


<?php

header("location: http://www.tecnogalli.com.br");

?>

 

E subi essa pagina para o ftp, em seguida eu rodei a pagina pelo navegador, e quando ela executou funcionou.

 

Att;

Gilberto Jr

Compartilhar este post


Link para o post
Compartilhar em outros sites

O arquivo conexao_n.php está sendo chamado no decorrer do código.

Meu palpite é que esse arquivo tenha algum caractere antes da abertura do php (<?php) ou após o fechamento (?>).

 

Certifique-se que este arquivo não esteja imprimindo nenhum dado antes da abertura e remova o fechamento, já que ele é opcional justamente para previnir esse tipo de problema. Exemplo:

<?php //nenhum caractere antes do "<"

// *aqui vem sua conexão*

//?>   ---> não precisa desse cara

E obviamente, nenhum echo no meio de qualquer um desses 2 arquivos (até o header).

 

Ah, e mais uma coisa importante: coloque um exit após cada header. Exemplo:

if($_SESSION['usuarioNivelAcesso'] == 1){
    header("Location: painel.php");
    exit;
}else{
    header("Location: usuario.php");
    exit;// isso é importante
}

 

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

  • Conteúdo Similar

    • Por edvaldo123
      Olá para todos, preciso de um código em PHP ou HMTL que mostre cotações de moedas, pra colocar em um site de notícias. Vou deixar um link abaixo onde tem exatamente o que preciso, porém queria remover algumas linhas desse código para não identificar seu site de origem.

      http://www.precododolar.com/widgets/cotacao.php
    • Por violin101
      Caros amigos
       
      Gostaria de tirar uma dúvida com os amigos.
       
      No Codeiginter tem como visualizar um arquivo .PDF dentro do sistema ?
       
      Por exemplo:
             o usuário realizou um download do arquivo --> DadosEmpresa.pdf
       
      Quando clicar em cima do arquivo, tem como visualizar em uma página o arquivo ?   E como faria ?
       
      Grato,
       
      Cesar
    • Por Ivana_Silva
      Olá a todos que estão lendo!
       
      Preciso de uma função PHP que filtre 2 padrões de campos a partir do caractere barra(|), preservando a linha.
       
      Em uma caixa de texto vou colar valores assim:
      0001|qwerty
      0002|091234
      0003|09164867
      0004|ab12312
      ...
      A caixa de texto:
      <form id="form" name="form" method="post" action=""> <textarea name="lista" type="text" id="lista" cols="48" rows="5" size="600" /></textarea> <br /> <br /> <button type="submit">Separar</button> </form> <?php ?> Quando eu clicar no botão Separar, preciso que o código filtre e mostre apenas as linhas que, após barra " | " possuam números inteiros de 6 e 8 dígitos(sem letras, símbolos ou pontos).
       
      Exemplo:
      Dados colados na caixa de texto:
      0001|qwerty
      0002|091234
      0003|09164867
      0004|ab12312
       
      Dados filtrados após clicar no botão Separar:
      0002|091234
      0003|09164867
       
      Filtrou apenas os campos que após a barra "|" possuem 6 e 8 dígitos(Nem mais nem menos), não é pra filtrar campos com letras ou números e letras, se tiver letra após a barra já descarta... É pra Filtrar e mostrar apenas as linhas que possuem 6 e 8 dígitos após a barra.
      Agradecida se alguém puder ajudar!
       
    • Por RSN
      Boa Noite, 
      Gostaria de saber se existe a possibilidade de gravar além do id do option value outra variavel, para enviar via post.
      <div class="form-group"> <label class="col-md-4 control-label" for="txtgrupo">Tipo de Pagamento : </label> <div class="col-md-4"> <select id="" class="selectpicker" data-live-search="true" name="tipo_pagamento" > <?php $query = mysql_query("SELECT * FROM tipo_pagamento ORDER BY id ASC"); while($result = mysql_fetch_array($query)) { echo '<option value="'.$result["id"].'">'.$result["nome_tipo"].'</option>'; } ?> </select> </div> </div>  
    • Por JeanTDZ
      Eu tenho um form com algumas informações etc. O form envia pro banco de dados e tudo mais, funcional.
       
      Alguém teria algum exemplo que após o submit, o form é transformado em pdf/doc e direcionado para uma pasta/ftp já criada.?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.