Ignorando per ora i problemi con le istruzioni del tuo database, risponderò alla domanda relativa a password_hash
.
In breve, no, non è così che si fa. Se non vuoi conservare il sale da solo, dovresti memorizzare sia l'hash che il sale e quindi utilizzare entrambi per verificare la password. password_hash
restituisce una stringa contenente entrambi.
Il password_hash
La funzione restituisce una stringa che contiene sia l'hash che il salt. Quindi:
$hashAndSalt = password_hash($password, PASSWORD_BCRYPT);
// Insert $hashAndSalt into database against user
Quindi per verificare:
// Fetch hash+salt from database, place in $hashAndSalt variable
// and then to verify $password:
if (password_verify($password, $hashAndSalt)) {
// Verified
}
Inoltre, come suggeriscono i commenti, se sei interessato alla sicurezza potresti voler guardare mysqli
(ext/mysql
è deprecato in PHP5.5), e anche questo articolo su SQL injection:http://php.net/manual/en/security.database.sql-injection.php