Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Erro na parte de login

Olá acabei de terminar o curso de php onde aprendi cookies e session, e tals, porem desenvolvi uma pagina diferente da explicada no curso, que esta me dando dor de cabeça.

Quando ela estava no meu servidor local funcionava perfeitamente porem agora que a coloquei em um servidor online quando tento efetuar login ela me redireciona a seguinte mensagem.

Warning: Cannot modify header information - headers already sent by (output started at /home/aprsoluc/public_html/bd/funcoes_usuario.php:32) in /home/aprsoluc/public_html/valida.php on line 16

verifiquei na internet e percebi que o problema era porque aviam codigos html antes das funçoes de session e header(Location), cookies ... etc, porem meu codigo ja esta limpinho, verifiquei tudo isso e arrumei, o problema é que ele esta impacando em um header location, que fiz como que foi ensinado na aula, para exibir a mensagem de erro caso a senha fosse incoreta, ou caso o experto tentasse modificar a url.

e agora oque faso, vou publicar o codigo para ver se fica mais claro

<?php
    require_once("bd/funcoes_usuario.php");
    require_once("bd/conexao.php");


    $email = $_POST["email"];
    $senha = $_POST["senha"];

    $usuario = buscausuario($conexao, $email, $senha);
    if($usuario != NULL){
        logausuario($email);
        header("Location:restrito.php");//problema aqui quando a senha é correta
    }
    else{
        $_SESSION["danger"] = "Senha ou login incorretos.";
        header("Location:login.php");//problema aqui quando a senha esta errada
    }
    die();
?>
3 respostas

Oi Eduardo, tudo bem? Acontece que pode não ser um código HTML que está causando esse erro, na prática, até caracteres em branco pode causar coisas desse tipo. Verifique em seu arquivo por essas ocorrencias e até mesmo nos arquivos que incluem esses arquivos. Seu buscausuario() imprime algo na tela?

Perceba também que quando seus arquivos são sómente código PHP, uma boa prática é não fazer o fechamento da tag (?>), pois este também pode ser uma das causas do seu problema.

Entende? Espero ter ajudado.Para saber mais leia o post do Thiago Belem em seu blog sobre este erro: http://blog.thiagobelem.net/resolvendo-o-problema-de-headers-already-sent

Eduardo, tente colocar o die() logo após o header... 1 die para cada header.

solução!

Olá pessoal Agradeço pelas respostas mas acabei resolvendo, o problema era um fechamento do bloco php que fis para colocar um texto html dentro, eu fiz a abertura e o fechamento por duas veses e nem percebi.

Vlw