Ir para conteúdo

POWERED BY:

Arquivado

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

Antonio Manuel

função checkbrute

Recommended Posts

boa tarde

 

estou a tentar implementar esta função num sistema de login com redirecionamento e já consegui enviar os dados para a tabela mas não consigo que o sistema leia essa tabela e bloqueie o utilizador

 

agradeço qualquer ajuda! os codigos de verificação e de funções vão abaixo!

e já agora a Vossa opinião acerca desta funçao!!

 

 

 

<?php
session_start(); // Inicia a session


ini_set('display_errors',1);
ini_set('display_startup_erros',1);
error_reporting(E_ALL);


ini_set('default_charset','UTF-8');


include "include/config.php";
include "include/functions.php";




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




checkbrute($usuario, $mysqli);


if ((!$usuario) || (!$senha)){


echo "<title>Login</title>\n";


echo '<link rel="stylesheet" type="text/css" href="form.css" />';
include 'top.html'; 


echo "<div class=\"textosinfo\">" . _("Por favor, todos campos devem ser preenchidos! <br /><br />") . "</div>\n" ; 


include "login.html";


}


  if (checkbrute($usuario, $mysqli) == true) {
                A conta está bloqueada 
                
                returne false ;
            } 







else{


$senha = md5($senha);


$sql = mysql_query(


"SELECT * FROM usuarios
WHERE usuario='{$usuario}'
AND senha='{$senha}'
AND ativado='1'"




);


$login_check = mysql_num_rows($sql);


if ($login_check > 0){


while ($row = mysql_fetch_array($sql)){


foreach ($row AS $key => $val){


$$key = stripslashes( $val );


}


$_SESSION['usuario_id'] = $usuario_id;
$_SESSION['nome'] = $nome;
$_SESSION['sobrenome'] = $sobrenome;
$_SESSION['email'] = $email;
$_SESSION['nivel_usuario'] = $nivel_usuario;


mysql_query(


"UPDATE usuarios SET data_ultimo_login = now()
WHERE usuario_id ='{$usuario_id}'"


);


session_start();
$_SESSION['usuario_id'] = "$usuario_id";


header("Location: documentos/$info");




 }


    }else{
include 'top.html'; 
        


$consulta  = mysql_query("Select usuario_id FROM usuarios WHERE usuario = '{$usuario}'") or die('Erro: ' . mysql_error()); 
    while ($linha = mysql_fetch_array($consulta)){  
$usuario_id = $linha["usuario_id"]; 
} 


$now = time();
                    $sql = mysql_query(
"INSERT INTO login_tentativas(usuario, time)
                                     VALUES ('$usuario_id', '$now')")


or die( mysql_error()


) ;


               



echo "<div class=\"textosinfo\">" . _("Este utilizador e/ou senha não são válidos! <br /> Ficou registada a sua tentativa de Login $usuario_id <br />Por favor tente novamente!<br />") . "</div>\n" ;


       include "login.html";


    }


}


?>
<?php


function session_checker(){


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


        header ("Location:login.html");
        exit(); 


    }


}


function checkbrute($usuario, $mysqli) {
    // Registra a hora atual 


$now = time();


    // Todas as tentativas de login são contadas dentro do intervalo das últimas 2 horas. 
    $valid_attempts = $now - (2 * 60 * 60);


    if ($stmt = $mysqli->prepare("SELECT time 
                             FROM login_tentativas <code><pre>
                             WHERE usuario = ? 
                            AND time > '$valid_attempts'")) {
        $stmt->bind_param('i', $usuario);


        // Executa a tarefa pré-estabelecida. 
        $stmt->execute();
        $stmt->store_result();


        // Se houve mais do que 5 tentativas fracassadas de login 
        if ($stmt->num_rows > 2) {
            return true;
        } else {
           return false;
        }
    }
}


?>

 

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.