ciao!
ho un problema su una nuova applicazione che non riesco proprio a capire.
partiamo dal basico:
Codice PHP:
$password = '123456';
$hash = password_hash($password, PASSWORD_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??