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

Erro No Username E Senha


Martinsrj

Pergunta

:rolleyes:

Olá pessoal, beleza?

Estou migrando de banco mysql para postgreSQL, porem está dando erro na criação dos cookies.

O codigo logo abaixo:

valida_cookies.inc

<BODY>

<?php

if(IsSet($_COOKIE["nome_usuario"]))

$nome_usuario = $_COOKIE["nome_usuario"];

if(IsSet($_COOKIE["senha_usuario"]))

$senha_usuario = $_COOKIE["senha_usuario"];

if (!(empty($nome_usuario) or empty($senha_usuario)))

{

include "conecta_pg.inc";

$resultado = pg_query("select * from usuarios where username=nome_usuario'");

if(pg_num_rows($resultado)==1)

{

if($senha_usuario != pg_fetch_result($resultado, 0, "senha"))

{

setcookie("nome_usuario");

setcookie("senha_usuario");

echo "você não efetuou o <b>LOGIN</b>!!!";

exit;

}

}

else

{

setcookie("nome_usuario");

setcookie("senha_usuario");

echo "Você não efetuou o <b>LOGIN</b>!!!";

exit

}

}

else

{

echo "Você não efetuou o <b>LOGIN</b>!!!";

exit;

}

pg_close($conexao);

?>

</BODY>

login.php

<?php

// obtém os valores digitados

$username = $_POST["username];

$senha = $_POST["senha"];

// acesso ao banco de dados

include "conecta_pg.inc";

$resultado = pg_query("select * from usuarios where username='$username'");

$linhas = pg_num_rows($resultado);

if($linhas==0) // testa se consulta retornou algum registro

{

echo "<html><body>";

echo "<p align=\"center\">Usuário não encontrado!</p>";

echo "<p align=\"center\"><a href=\"login.html\">Voltar</a></p>";

echo "</body></html>";

}

else

{

if ($senha != pg_fetch_result($resultado, 0, "senha")) // confere senha

{

echo "<html><body>";

echo "<p align=\"center\">A senha está incorreta!</p>";

echo "<p align=\"center\"><a href=\"login.html\">Voltar</a></p>";

echo "</body></html>";

}

else // usuário e senha corretos. Vamos criar os cookies

{

setcookie("nome_usuario", $username);

setcookie("senha_usuario", $senha);

// direciona para a pagina inicial dos usuarios cadastrados

header ("Location: pagina_inicial.php");

}

}

pg_close($conexao);

?>

</BODY>

Tem aparecido o seguinte erro quando o usuario faz o login:

Warning: Cannot modify header information - headers already sent by (output started at C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\estudo\login.php:6) in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\estudo\login.php on line 33

Warning: Cannot modify header information - headers already sent by (output started at C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\estudo\login.php:6) in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\estudo\login.php on line 34

Warning: Cannot modify header information - headers already sent by (output started at C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\estudo\login.php:6) in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\estudo\login.php on line 36

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

Eu dei uma olhada no seu codigo,

pelo que vi você não fechou os bocos "if" no começo e a função isset() e toda em caixa alta, veja as modificações que fiz e testa ai, as ,mensagem de erro que ta dando e por que como os blocos de if não estao sendo executado, ele ta ecrevendo na página e depois dentando chamar a função header ("Location: pagina_inicial.php"), que não é permitido;

<?
if(isset($_COOKIE["nome_usuario"])){
    $nome_usuario = $_COOKIE["nome_usuario"];
}
if(isset($_COOKIE["senha_usuario"])){
    $senha_usuario = $_COOKIE["senha_usuario"];
}
if (!(empty($nome_usuario) or empty($senha_usuario))){
    include "conecta_pg.inc";
    $resultado = pg_query("select * from usuarios where username='nome_usuario'");
}
if(pg_num_rows($resultado)==1){
    if($senha_usuario != pg_fetch_result($resultado, 0, "senha")){
    setcookie("nome_usuario");
    setcookie("senha_usuario");
    echo "você não efetuou o <b>LOGIN</b>!!!";
    exit;
    }else{
    setcookie("nome_usuario");
    setcookie("senha_usuario");
    echo "Você não efetuou o <b>LOGIN</b>!!!";
    exit
    }else{
    echo "Você não efetuou o <b>LOGIN</b>!!!";
    exit;
    }
pg_close($conexao);

//</BODY>

//login.php
// obtém os valores digitados
$username = $_POST["username"];
$senha = $_POST["senha"];

// acesso ao banco de dados
include "conecta_pg.inc";
$resultado = pg_query("select * from usuarios where username='$username'");
$linhas = pg_num_rows($resultado);
if($linhas==0){// testa se consulta retornou algum registro
    echo "<html><body>";
    echo "<p align=\"center\">Usuário não encontrado!</p>";
    echo "<p align=\"center\"><a href=\"login.html\">Voltar</a></p>";
    echo "</body></html>";
    }else{
    if ($senha != pg_fetch_result($resultado, 0, "senha")){ // confere senha
        echo "<html><body>";
        echo "<p align=\"center\">A senha está incorreta!</p>";
        echo "<p align=\"center\"><a href=\"login.html\">Voltar</a></p>";
        echo "</body></html>";
        }else{ // usuário e senha corretos. Vamos criar os cookies
            setcookie("nome_usuario", $username);
            setcookie("senha_usuario", $senha);
            // direciona para a pagina inicial dos usuarios cadastrados
            header ("Location: pagina_inicial.php");
        }
}
pg_close($conexao);
?>

Espero ter Ajudado.

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

  • 0

Olá Itibere, beleza?

Realizei a mudança que você postou, mas continua o mesmo erro.

Eu creio Itibere que o problema não esteja nos blocos que você mencionou, mas agradeço aí pela ajuda.

O engraçado cheguei a realizar o teste de só digitar o usuario e deixar a senha em branco e ele me dá a resposta correta: A senha está incorreta! (a condição que foi colocada caso o usuario digite a senha incorreta) e quando não é digitado o usuario ele entra na condição: Usuário não encontrado!

Link para o comentário
Compartilhar em outros sites

  • 0

Tente fazer assim

if(isset($_COOKIE["nome_usuario"])){
    $nome_usuario = $_COOKIE["nome_usuario"];
    echo $nome_usuario."<br>";    //serve para ver se tem valor na varialvel
}
if(isset($_COOKIE["senha_usuario"])){
    $senha_usuario = $_COOKIE["senha_usuario"];
    echo $senha_usuario."<br>";   //serve para ver se tem valor na varialvel
}
if (!(empty($nome_usuario) or empty($senha_usuario))){
    include "conecta_pg.inc";
    $resultado = pg_query("select * from usuarios where username='nome_usuario' and senha='senha_usuario'");
}
if(pg_num_rows($resultado)==1){
    //if($senha_usuario != pg_fetch_result($resultado, 0, "senha")){
        setcookie("nome_usuario");
        setcookie("senha_usuario");
        echo "você não efetuou o <b>LOGIN</b>!!!";
        exit;
    }else{
        setcookie("nome_usuario");
        setcookie("senha_usuario");
        echo "Você não efetuou o <b>LOGIN</b>!!!";
        exit
//}else{
    //echo "Você não efetuou o <b>LOGIN</b>!!!";
    //exit;
    }
pg_close($conexao);

Fiz outras modificações aqui, não tenho seu codigo todo por isso não cosigo testar aqui, ma veja se funciona

Observe as linhas que desabilitei (so para teste)

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

  • 0

:wacko:

Fiz um pequeno acerto, mas sem sucesso!

No valida_cookies.inc o seguinte código no nome_usuario estava sem o dolar na frente, mas mesmo assim não funcionou.

if(!(empty($nome_usuario) or empty($senha_usuario)))

{

include "conecta_pg.inc";

$resultado = pg_query("select * from usuarios where username='$nome_usuario'");

if(pg_num_rows($resultado)==1)

{

No arquivo login.php fiz uma pequena modificação, dando um echo:

else // usuário e senha corretos. Vamos criar os cookies

{

setcookie("nome_usuario", $username);

setcookie("senha_usuario", $senha);

// direciona para a pagina inicial dos usuarios cadastrados

echo "Teste de cookie!!!";

//header ("Location: pagina_inicial.php");

e deu a seguinte mensagem de erro:

Warning: Cannot modify header information - headers already sent by (output started at C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\estudo\login.php:6) in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\estudo\login.php on line 33

Warning: Cannot modify header information - headers already sent by (output started at C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\estudo\login.php:6) in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\estudo\login.php on line 34

Teste de cookie!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Olha,

no teste de você fez não podeira dar o erro já que você comentou a linha " header ("Location: pagina_inicial.php");" esta linha provca erro quando você tente escrever na pagina antes dela,

olha essa ultima modificação que fiz; ve se da resultado:

<?
if(isset($_COOKIE["nome_usuario"])){
    $nome_usuario = $_COOKIE["nome_usuario"];
}
if(isset($_COOKIE["senha_usuario"])){
    $senha_usuario = $_COOKIE["senha_usuario"];
}
//****************
if (!(empty($nome_usuario) or empty($senha_usuario))){
    include "conecta_pg.inc";
    $resultado = pg_query("select * from usuarios where username='nome_usuario'");
        if(pg_num_rows($resultado)==1){
            if($senha_usuario != pg_fetch_result($resultado, 0, "senha")){
                    setcookie("nome_usuario");
                    setcookie("senha_usuario");
                    echo "você não efetuou o <b>LOGIN</b>!!!";
                    exit;
                }else{
                    setcookie("nome_usuario");
                    setcookie("senha_usuario");
                    echo "Você não efetuou o <b>LOGIN</b>!!!";
                    exit;
                }
            }else{
                        echo "Você não efetuou o <b>LOGIN</b>!!!";
                        exit;
                    }
                }

pg_close($conexao);

//******  login.php

// obtém os valores digitados
$username = $_POST["username"];
$senha = $_POST["senha"];
// acesso ao banco de dados
include "conecta_pg.inc";
$resultado = pg_query("select * from usuarios where username='$username'");
$linhas = pg_num_rows($resultado);
if($linhas==0){ // testa se consulta retornou algum registro
    echo "<html><body>";
    echo "<p align=\"center\">Usuário não encontrado!</p>";
    echo "<p align=\"center\"><a href=\"login.html\">Voltar</a></p>";
    echo "</body></html>";
    }else{
        if ($senha != pg_fetch_result($resultado, 0, "senha")){// confere senha
            echo "<html><body>";
            echo "<p align=\"center\">A senha está incorreta!</p>";
            echo "<p align=\"center\"><a href=\"login.html\">Voltar</a></p>";
            echo "</body></html>";
            }else{ // usuário e senha corretos. Vamos criar os cookies
                    setcookie("nome_usuario", $username);
                    setcookie("senha_usuario", $senha);
                    // direciona para a pagina inicial dos usuarios cadastrados
                    header ("Location: pagina_inicial.php");
                }
}
pg_close($conexao);
?>

Link para o comentário
Compartilhar em outros sites

  • 0

Eu só revisei o codigo, por que tava com algums erros de sintaxe(quem podem inclusive serem meus), de qualquer forma, do jeito esta esta devia estar funcionando.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

ESerra deu certo.

Agora uma situação que eu não tinha reparado:

Esse sistema é de login e senha, então quando você coloca o usuario e senha incorretos o sistem reclama dando uma mensagem de erro, porem quando coloco o usuario e senha corretos ele vai para a pagina inicial. Nessa pagina inicial tem um link chamado logout, quando clicado ele joga para a pagina para realizar o login e senha, mas se vier uma outra pessoa a utilizar aquela maquina e clicar no botão voltar do internet explorer ele vai cair novamente na pagina inicial, é bem verdade se pagina for atualiza (F5) ele vai dar também uma mensagem de: Você não efetuou o LOGIN!!!

A pergunta é o seguinte: Teria como quando a pessoa clicar no botão voltar dar a mesma mensagem: Você não efetuou o LOGIN!!!

Valeu aí pela dica!!!!!!!!!!!!

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...