Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) (Resolvido) Erro com cookies...


Luis Dalmolin

Pergunta

<?php
include('conexao.php');
$login = $_POST["login"];
$senha = $_POST["senha"];
$sql = "SELECT * FROM adm WHERE login = '$login' and senha = '$senha'";
$resultado = @mysql_query($sql);
if (mysql_num_rows($resultado) > 0) {
    setcookie("user", "$login");
    setcookie("pass", "$senha");
    setcookie("logado", 1);
} else {
    echo "&lt;script>alert('Dados incorretos');</script>";    
    echo "&lt;script>window.location = 'index.php';</script>";    
}
?>
aqui ta o meu codigo, o arquivo login é só isso... o conexao ta aqui...
<?php
    $conexao = mysql_connect("localhost", "root", "");
    $db = mysql_select_db("webinformar");
?>

e ele ta dando esse erro aqui...

Warning: Cannot modify header information - headers already sent by (output started at C:\Inetpub\wwwroot\webinformar\admin\login.php:1) in C:\Inetpub\wwwroot\webinformar\admin\login.php on line 8

Warning: Cannot modify header information - headers already sent by (output started at C:\Inetpub\wwwroot\webinformar\admin\login.php:1) in C:\Inetpub\wwwroot\webinformar\admin\login.php on line 9

Warning: Cannot modify header information - headers already sent by (output started at C:\Inetpub\wwwroot\webinformar\admin\login.php:1) in C:\Inetpub\wwwroot\webinformar\admin\login.php on line 10

da pagina que recebe ele recebe 2 informações de um formulario onde valida o usuario...

não sei o que ta dando errado, alguém pode me ajudar?

valeu!

Editado por Luis Dalmolin
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
<?php
include('conexao.php');
$login = $_POST["login"];
$senha = $_POST["senha"];
$sql = "SELECT * FROM adm WHERE login = '$login' and senha = '$senha'";
$resultado = @mysql_query($sql);
if (mysql_num_rows($resultado) > 0) {
    setcookie("user", "$login");
    setcookie("pass", "$senha");
    setcookie("logado", 1);
} else {
    echo "&lt;script>alert('Dados incorretos');</script>";    
    echo "&lt;script>window.location = 'index.php';</script>";    
}
?>
aqui ta o meu codigo, o arquivo login é só isso... o conexao ta aqui...
<?php
    $conexao = mysql_connect("localhost", "root", "");
    $db = mysql_select_db("webinformar");
?>
e ele ta dando esse erro aqui... Warning: Cannot modify header information - headers already sent by (output started at C:\Inetpub\wwwroot\webinformar\admin\login.php:1) in C:\Inetpub\wwwroot\webinformar\admin\login.php on line 8 Warning: Cannot modify header information - headers already sent by (output started at C:\Inetpub\wwwroot\webinformar\admin\login.php:1) in C:\Inetpub\wwwroot\webinformar\admin\login.php on line 9 Warning: Cannot modify header information - headers already sent by (output started at C:\Inetpub\wwwroot\webinformar\admin\login.php:1) in C:\Inetpub\wwwroot\webinformar\admin\login.php on line 10 da pagina que recebe ele recebe 2 informações de um formulario onde valida o usuario... não sei o que ta dando errado, alguém pode me ajudar? valeu!
Bom amigo, cookies são na verdade cabeçalhos HTTP. Os cabeçalhos HTTP só podem ser enviados quando eles são os primeiros dados a serem enviados, se você der um echo, print ou exibir qualquer informação você terá esse erro. Ai você pode me dizer, "mas eu não estou enviando nada...." Talvez, apesar de você não estar enviando nada antes dos cookies, você está tendo algum problema que está gerando um NOTICE ou um WARNING. É essa mensagem de erro que está causando o seu problema com os cookies, porque foi enviada primeiro. Tente sempre verificar cada ação que você toma antes de assumir que tudo ocorreu bem, por exemplo: Seu código:
$conexao = mysql_connect("localhost", "root", "");
    $db = mysql_select_db("webinformar");
No fragmento acima, você está assumindo que tanto a conexão com o banco de dados foi bem sucedida quanto a seleção do banco de dados também foi. Nunca assuma nada, teste sempre: Tente mudar para:
$conectado = false;

    if ( ( $conexao = mysql_connect( "localhost" , "root" , "" ) ) ){
        if ( ( $db = mysql_select_db( "webinformar" ) ) ){
            $conectado = true;
        }
    }
Seu código:
include('conexao.php');
$login = $_POST["login"];
$senha = $_POST["senha"];
$sql = "SELECT * FROM adm WHERE login = '$login' and senha = '$senha'";
$resultado = @mysql_query($sql);
if (mysql_num_rows($resultado) > 0) {
    setcookie("user", "$login");
    setcookie("pass", "$senha");
    setcookie("logado", 1);
}
Novamente você está assumindo que o usuário enviou via POST os dois campos: "login" e "senha" e também está assumindo que a query foi bem sucedida: Tente mudar para:
if ( isset( $_POST[ "login" ] ) && isset( $_POST[ "senha" ] ) ){
    include( "conexao.php" );

    if ( $conectado ){
        $login = $_POST[ "login" ];
        $senha = $_POST[ "senha" ];
        $sql = sprintf( "SELECT * FROM adm WHERE ( login='%s' ) AND ( senha='%s' );" , $login , $senha );

        if ( ( $resp = mysql_query( $sql ) ) && ( mysql_num_rows( $resp ) > 0 ) ){
            setcookie("user", "$login");
            setcookie("pass", "$senha");
            setcookie("logado", 1);
        } else {
            echo "&lt;script>alert('Dados incorretos');</script>";
            echo "&lt;script>window.location = 'index.php';</script>";
        }
    } else {
        echo "&lt;script>alert('Não estamos conectados');</script>";
        echo "&lt;script>window.location = 'index.php';</script>";
    }
}

Editado por neto.joaobatista
Link para o comentário
Compartilhar em outros sites

  • 0
ba cara, testei exatamente o que voce me mandou, o erro continua o mesmo, ele envia alguma coisa antes, mas o problema é que já verifiquei milhares de vezes e não tem nada...

Não existe absolutamente nada executando antes desses dois arquivos ?

Você está chamando diretamente o login.php e o login chama o arquivo que faz a conexão, não existe nenhum outro arquivo sendo chamado por algum desses dois ?

Tenta criar um arquivo chamado teste.php e nele você coloca apenas:

setcookie("user", "$login");
setcookie("pass", "$senha");
setcookie("logado", 1);

Ai você verifica se os cookies foram gravados ou se a mensagem de erro continua.

Ahh, de uma olhada nisso aqui também:

Provavelmente o teu arquivo tenha BOM, e o teu editor não exibe, copia todo o conteúdo do arquivo e cola em um novo, salva e verifica, ou envia o arquivo que você está usando para algum host de arquivos (rapidshare, etc), para que a gente possa verificar isso diretamente no arquivo.

Editado por neto.joaobatista
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...