Ignorant les problèmes avec vos déclarations de base de données pour l'instant, je vais répondre à la question concernant password_hash
.
Bref, non, ce n'est pas comme ça qu'on fait. Vous ne voulez pas stocker le sel seul, vous devez stocker à la fois le hachage et le sel, puis utiliser les deux pour vérifier le mot de passe. password_hash
renvoie une chaîne contenant les deux.
Le password_hash
La fonction renvoie une chaîne qui contient à la fois le hachage et le sel. Donc :
$hashAndSalt = password_hash($password, PASSWORD_BCRYPT);
// Insert $hashAndSalt into database against user
Ensuite pour vérifier :
// Fetch hash+salt from database, place in $hashAndSalt variable
// and then to verify $password:
if (password_verify($password, $hashAndSalt)) {
// Verified
}
De plus, comme le suggèrent les commentaires, si vous êtes intéressé par la sécurité, vous pouvez consulter mysqli
(ext/mysql
est obsolète en PHP5.5), ainsi que cet article sur l'injection SQL :http://php.net/manual/en/security.database.sql-injection.php