Ignorando os problemas com suas instruções de banco de dados por enquanto, responderei à pergunta sobre
password_hash
. Em suma, não, não é assim que você faz. Você não deseja armazenar o sal sozinho, você deve armazenar o hash e o sal e, em seguida, usar ambos para verificar a senha.
password_hash
retorna uma string contendo ambos. O
password_hash
A função retorna uma string que contém o hash e o sal. Então:$hashAndSalt = password_hash($password, PASSWORD_BCRYPT);
// Insert $hashAndSalt into database against user
Então para verificar:
// Fetch hash+salt from database, place in $hashAndSalt variable
// and then to verify $password:
if (password_verify($password, $hashAndSalt)) {
// Verified
}
Além disso, como os comentários sugerem, se você estiver interessado em segurança, talvez queira dar uma olhada em
mysqli
(ext/mysql
está obsoleto no PHP5.5), e também este artigo sobre injeção de SQL:http://php.net/manual/en/security.database.sql-injection.php