Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
olá pessoal, alguém ja teve dificuldade de logar no banco com um formulario de login feito pelo ajax quando a senha é criptografada?
a minha está o sendo pelo md5 e quando deixo sem criptografia eu logo no banco. Eu gostaria de logar com criptografia.
vou deixar a index e o arquivo que busca no banco de dados
<!doctype html>
<html>
<?php
require_once"config.php";
?>
<head>
<title>Formulario de login</title>
<style type="text/css">
html{
height:100%;
background: linear-gradient(rgba(38, 128, 101, 0.9), rgba(52, 177, 140, 0.9));
}
#div_login{
width:500px;
margin:40px auto;
position:relative;
background-color: #ffffff;
padding: 20px;
border-radius: 5px;
}
#message{
width:100%;
text-align:center;
color:red;
margin-bottom: 20px;
}
#div_login h1 {
text-align: center;
}
#div_login input, #div_login textarea,#div_login a{
padding:10px;
border:1px solid rgba(38, 128, 101, 0.9);
border-radius:4px;
-moz-border-radius:4px;
-webkit-border-radius:4px;
outline:none;
box-sizing: border-box;
width:100%;
font:14px "Trebuchet MS", tahoma, arial;
color:#090;
margin-bottom:10px;
}
#div_login #but_submit,#div_login a {
background-color: #27ae60;
font-weight: bold;
text-transform: uppercase;
color: #ffffff;
width: auto;
margin: 0;
padding: 10px 20px;
}
</style>
<!--<link href="style.css" rel="stylesheet" type="text/css">-->
<script src="jquery-3.2.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#but_submit").click(function(){
var username = $("#meu_nome").val().trim();
var password = $("#minha_senha").val().trim();
if( username != "" && password != "" ){
$.ajax({
url:'pesquisar.php',
type:'post',
data:{username:username,password:password},
success:function(response){
var msg = "";
if(response == 1){
window.location = "home.php";
}else{
msg = "email e senhas invalidos!";
}
$("#message").html(msg);
}
});
}
});
});
</script>
</head>
<body>
<div class="container">
<div id="div_login">
<h1>Login</h1>
<div id="message"></div>
<div>
<input type="text" class="textbox" id="meu_nome" name="meu_nome" placeholder="email" />
</div>
<div>
<input type="password" class="textbox" id="minha_senha" name="minha_senha" placeholder="senhas"/>
</div>
<div>
<input type="button" value="logar" name="but_submit" id="but_submit" />
<a href="inicio.php"><strong>Cadastrar</strong></a>
</div>
</div>
</div>
</body>
</html>
agora vem oque busca os dados no banco e é justamente essa parte que eu não entendo oque acontece.
<?php
require_once "config.php";
// AQUI É O PESQUISAR PHP
$uname = mysqli_real_escape_string($con,$_POST['username']);
$password = mysqli_real_escape_string($con,$_POST['password']);
if ($uname != "" && $password != ""){
$sql_query = "SELECT count(*) as cntUser FROM usuarios WHERE email='".$uname."' and password='".$password."'";
$result = mysqli_query($con,$sql_query);
$row = mysqli_fetch_array($result);
$count = $row['cntUser'];
if($count > 0){
$_SESSION['uname'] = $uname;
echo 1;
}else{
echo 0;
}
}
desde já fico agradeçoGrabielms, desculpa por não ter sido específico na pergunta. Mas na verdade essa parte eu entendo eu até reformulei a pergunta, estou pensando em usar outra criptografia de senha, mas oque estou com dificuldade é de logar no banco com criptografia na senha, eu fiz um modelo de login mas deu erro exatamente por causa que não reconhecia a senha criptografada, eu fiz uma busca na net mas não achei nada parecido que me ajude, se puder me ajudar nessa, eu fico grato. desculpa pelos erros.
@ricardonews Atualmente é recomendado usar os métodos password do php, aqui tem a documentação deles https://www.php.net/manual/pt_BR/ref.password.php.
eu não entendi direito, mas a onde que eu uso isso? é sem eu ultilizar o ajax funciona normal o login com senha criptografada, eu ja fiz vários projetos com ele, mas agora com ajax é que estou com essa dificuldade.
Criar o hash durante o cadastro
$senha = password_hash("sua_senha", PASSWORD_DEFAULT);
Armazene a variável $senha no banco
Conferir se a senha bate durante o login:
if (password_verify("senha_digitada", "senha_do_banco_armazena_vinda_da_query")) {
// Senha confirmada
}
Valeu Osmar.
eu tentei usar essa criptografia no cadastro, mas não funcionou. mas eu acredito que tudo é jquery ou ajax, porque eu fiz vários login, cadastro normal e funciona. agora a unica que funcionou gravando senha no banco foi a que coloco md5. eu uso uma vareavel que recebe o array json com todos os dados e distribui nos campos. eu aqui tem umas imagems. mas o login era para reconhecer a criptografia md5 e logar no banco como no procedimento normal de php sem envolver ajax e jquery.

Osmar, resolvido! oque estava faltando era especificar no login a criptografia do banco. neste caso era a md5 o cadastro foi feito com ela.porem eu vou mudalo para outra, mas segue a regra se o cadastro é em uma criptografia, o login precisa ser a mesma criptografia. como eu não havia especificado nada. ele só pegava a senha sem criptografia e a que estava criptografada ele não reconhecia. depois de fazer um login em php que eu lembrei que nesse faltava a criptografia do banco e foi quando resolvi o problema e eu pensando que era o ajax rsss. mas obrigado a todos pelas dicas.
@ricardonews
Quando você faz o cadastro do usuário você tem que salvo a senha criptografada do usuário, assim quando o usuário digitar a senha e você fazer a citografia da senha ela deve bater com a salva no banco de dados.
Você nunca deve salva a senha do usuário pura no banco de dados!