Jump to content
Biel.

password_verify

Recommended Posts

olá pessoal. Direto ao ponto. Estou tentando implementar password_verify  para logar ,  O que está faltando na query abaixo ? Obrigado

Exemplo base

<?php 
   $senhaNormal = "aprendiz"; 

  $senhaCodificada = password_hash($senhaNormal, PASSWORD_DEFAULT);

    print "<b>Senha normal-> </b> " .$senhaNormal.'<br>';
    print "<b>senha codificada -> </b> " .$senhaCodificada.'<br>';


    $senhaCriada     = "aprendiz"; // <- senha criada
    $senhaCodificadaJaGravadaNoBD = '$2y$10$wThtpwRFohNOX8rx9BhHguDYRZlXAvOLiFufbxiMmPbQOQkVFB8hu';

  if(password_verify($senhaCriada, $senhaCodificadaJaGravadaNoBD)){
	  echo 'Acesso permitido  - Senha OK! ';
	  } 
  else{
	  echo ' Acesso negado- Senha incorreta! ';
	  }
	?>

..

tentando implementar na query abaixo pra logar

tab_logar
id     email                     senhaNormal       senhaEncriptada
1       joao1@gmail.com    aprendiz           $2y$10$lhMEGYgHW6hLzu22V4tLSuJCouPVLV9.EeJ2Dm3P5vfnRwBGHty6y      
2       joao2@gmail.com    aluno               $2y$10$R1xdJvp4sa9Z3eh5Ei/WwOXo9siSNZImJDiAv8tuhTI46lwmP5N0S        
3       joao3@gmail.com    professor          $2y$10$9tjp.U4zKIxY7HADZZTde.NTlxUsMJtiVXF0sy1EJ2z2frwowNlfK      

<?php
@$senha = $_POST['senha']; 
@$email = $_POST['email'];  
?>
<?php
$sqlZ = mysqli_query($con, "SELECT * FROM tab_logar WHERE email = '".$email."' AND  senha = '".$senha."'   ");
//while($linha=mysqli_fetch_array($sqlZ)){
//@$senha=$linha['senha'];
//}
?>
<?php 
if(password_verify($senha)){ 
    echo 'senha correta';
	} 

else {
	echo 'senha incorreta';
	}
?>

 

Share this post


Link to post
Share on other sites

Rapaz só tem um jeito de você fazer a coisa andar.

1º - Você tem que salvar a senha do usuário durante seu cadastro usando o password_hash

2 º - Como o login é e-mail e senha você verifica somente se existe o e-mail, se existir aí você traz os dados desse e-mail, na precisão precisa da senha que está salva lá quando o usuário se cadastrou.

3º - Com essa senha obtida pelo e-mail aí você compara o valor salvo no banco de dados com a digitada usando o password_verify

 

E a propósito:

NUNCA/ JAMAIS/ EM HIPÓTESE ALGUMA!!! Ofusque alguma coisa! E ainda pior você fez cometeu erro gravíssimo em uma super global....

16 horas atrás, Biel. disse:

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

@$email = $_POST['email'];

 

Nada deve ser ofuscado e nunca super-globais devem ser acessadas diretamente.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Biel.
      Ola pessoal. Direto ao ponto. Como remover  valor duplicado de uma string? O código abaixo imprime abcaaade. Como remover os duplicados e imprimir por EX abcde
      <?php $string = 'abcaaade'; print $string; ?>  
    • By Biel.
      Olá pessoal. Direto ao ponto. É possível colocar required em todos os options do select?  Obrigado !
      <form name="aprendiz"> <select name="teste" multiple size="3" style="width:50px;" required> <option >aa</option> <option >bb</option> <option >cc</option> </select> <hr> <input type="submit" value="enviar"> </form>  
    • By Biel.
      Olá pessoal. Direto ao ponto. Abaixo temos EX1 e EX2 funcionando normalmente. Tem como fazer com que EX1 e EX2 retorne por EX 10 caracteres independentemente de quantos caracteres tenha a string EX1 e string EX2 e ao decodificar retornasse o nome real de cada string? Obrigado !
      Ex1 <?php $stringA = base64_encode("aprendiz"); print 'codificado<br>'.$stringA.'<br>'; // retorna 12 caracteres $stringB = base64_decode($stringA); print 'decodificado<br>'.$stringB; // retorna aprendiz ?> <hr> Ex2 <?php $stringA = base64_encode("jogando com vontade"); print 'codificado<br>'.$stringA.'<br>'; // retorna 28 caracteres $stringB = base64_decode($stringA); print 'decodificado<br>'.$stringB; // retorna jogando com vontade ?>  
    • By Biel.
      Olá pessoal. direto ao ponto. Ao digitar no campo de texto 123 por EX o número é codificado, mas na url não aparece codificado. Como fazer com que na url também retorne  codificado? Obrigado ! 
      <?php @$string = $_GET['resultado']; @$encode = base64_encode($string); // print $encode; ?> <form action="" method="get" > <input type="text" name="resultado" value="" /> <input type="submit" value="enviar"> </form>  
    • By Biel.
      Olá pessoal. Direto ao ponto. o exemplo abaixo simula upload de imagem. Ao carregar uma imagem qualquer, dar submit e voltar para pg1.php e depois atualizar a página/f5 a imagem sai no input file . Gostaria que a imagem não saisse do input file mesmo atualizando a página. Obrigado !
      esta é a pg1.php <form action="pg2.php" method="post" autocomplete="on" enctype="multipart/form-data"> <input type="file" name="image" id="myFile"> <input type="submit" name="aprendiz" onclick="myFunction()" value="Enviar"> </form> <script> function myFunction() { var x = document.getElementById("myFile"); x.autocomplete = true; } </script>  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.