Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carolina Louise Coelho

Como resolver

Recommended Posts

<?

if($_POST["continuar_login"]){

$login=$_POST["login"];

$senha=$_POST["senha"];

$verificalogin=mysql_num_rows(mysql_query("select login from contas where login='".$login."' and senha='".$senha."'"));

$verificasenha=mysql_num_rows(mysql_query("select login from contas where login='".$login."' and senha='".$senha."'"));

if(empty($login)||empty($senha)){

session_destroy();

echo"<p>Preencha todos os campos.</p>";

}elseif($verificalogin==0){

session_destroy();

echo"<p>Login ou senha incorretos.</p>";

}elseif($verificasenha==0){

session_destroy();

echo"<p>Login ou senha incorretos.</p>";

}else{

$_SESSION['login']=$login;

$_SESSION['senha']=$senha;

echo "<script>location='?'</script>";

}

}

if(!isset($_SESSION['login'])){

echo"<h4>Login</h4>\n<form name=\"continuar_login\" id=\"continuar_login\" method=\"post\" action\"\">\n<p>Login:</p>\n<input name=\"login\" id=\"login\" type=\"text\">\n<p>Senha:</p>\n<input name=\"senha\" id=\"senha\" type=\"password\">\n<input name=\"continuar_login\" id=\"continuar_login\" type=\"submit\" class=\"btn btn-primary btn-large\" value=\"Entrar\">\n</form>\n";

}elseif(!isset($_SESSION['senha'])){

echo"<h4>Login</h4>\n<form name=\"continuar_login\" id=\"continuar_login\" method=\"post\" action\"\">\n<p>Login:</p>\n<input name=\"login\" id=\"login\" type=\"text\">\n<p>Senha:</p>\n<input name=\"senha\" id=\"senha\" type=\"password\">\n<input name=\"continuar_login\" id=\"continuar_login\" type=\"submit\" class=\"btn btn-primary btn-large\" value=\"Entrar\">\n</form>\n";

}elseif(isset($_SESSION['login'])){

$login=$_SESSION['login'];

$senha=$_SESSION['senha'];

$acesso_login=mysql_fetch_row(mysql_query("select acesso from contas where login='".$login."' and senha='".$senha."'"));

echo"<p>Logado</p>";

}

?>

aparece sempre o mesmo erro login ou senha incorretos estando corretos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Pode observar que:

1. Você não está iniciando a conexão com o banco de dados

2. A senha está salva no banco de dados, por questões de segurança você não deve salvar a senha e sim um hash dela, por exemplo, utilize a função md5 que cria um hash de 32 caracteres da senha e salve este hash no banco.

3. Seu script está vunerável a SQL Injection

 

Recomendo o PDO para manipular o banco de dados

exemplo: includes/DB.php
<?php
class DB 
{
    private static $con;
    private static $user = 'root';
    private static $pass = '';
    private static $db   = 'minhadatabase';
 
    public static function getCon()
    {
        if(empty(self::$con))
        {
            self::$con = new PDO('mysql:host=localhost;dbname='.self::$db, self::$user, self::$pass);
            self::$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        }
        return self::$con;
    }
}
<?php
include('includes/DB.php');

$con = DB::getCon();

$login = $_POST['login'];
$senha = $_POST['senha'];

$query = $con->prepare('
    SELECT
        id_usuario,
        login,
        nome
    FROM
        usuario
    WHERE
        login = :login
        AND
        senha = :senha_md5
');

$query->execute(array(
    'login' => $login,
    'senha_md5' => md5($senha),
));

if($query->rowCount() > 0)
{
    $usuario = $query->fetch(PDO::FETCH_ASSOC);
    echo "Seja bem vindo " . htmlentities($usuario);
}
else
{
    echo "Usuário ou senha inválidos";
}

 

 

nesse exemplo as senhas estão salvas em md5

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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