Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Problema password_hash e password_verify

    ciao!

    ho un problema su una nuova applicazione che non riesco proprio a capire.
    partiamo dal basico:
    Codice PHP:
    $password '123456';
    $hash password_hash($passwordPASSWORD_BCRYPT);
    echo 
    $hash '<br>';
    if (
    password_verify('123456'$hash)) {
        echo 
    'OK';
    } else {
        echo 
    'KO';

    questo codice funziona bene.
    quell'hash l'ho preso e schiaffato dentro al campo password del db.
    Mysql, e campo varchar(255).

    questa la funzione di login che uso sempre:
    Codice PHP:
    public function login($user$pwd) {
        
    $cmd 'SELECT * FROM utenti WHERE ut_email = ? AND ut_attivo = 1';
        
    $res $this->connessione->execQueryPrepare($cmd, array($user));
        if (
    count($res) > 0) {
            if (
    password_verify($pwd$res[0]['password'])) {
                return 
    json_encode(
                    array(
                        
    "res" => "ok",
                        
    "message" => "Login effettuato!"
                    
    )
                );
            } else {
                return 
    json_encode(
                    array(
                        
    "res" => "ko",
                        
    "message" => "Password errata!"
                    
    )
                );
            }
        } else {
            return 
    json_encode(
                array(
                    
    "res" => "ko",
                    
    "message" => "Email inesistente!"
                
    )
            );
        }

    rientro sempre nel caso di password errata.
    questo il form:
    codice:
    <?php
    if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['btn_login'])) {
        $utenti = new Utenti($connessione);
        $l = $utenti->login($_POST['email'], $_POST['password']);
        var_dump($l);
    }
    ?>
    <div class="form-group">
        <input type="email" class="form-control"
               name="email" placeholder="Email" value="email@email.it"
               autofocus>
    </div>
    <div class="form-group">
        <input type="password" class="form-control" value="123456"
               name="password" placeholder="Password">
    </div>
    ..........
    non c'è verso.
    qualche idea??

  2. #2
    sicuramente l'hai fatto, e magari dico una cosa scontata, ma, hai provato con "var_dump" (nel metodo login) per vedere i valori di $pwd e $res[0]['password'] ?
    aquatimer2000

  3. #3
    Quote Originariamente inviata da aquatimer2000 Visualizza il messaggio
    sicuramente l'hai fatto, e magari dico una cosa scontata, ma, hai provato con "var_dump" (nel metodo login) per vedere i valori di $pwd e $res[0]['password'] ?
    ciao!

    alla fine ho scoperto che c'era un bug per il quale in fase di registrazione veniva aggiunto un carattere all'hash della password salvata sul db.
    era un problema di registrazione utente, non di login.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.