What are best practices for securely storing user passwords in a PHP registration form?

When storing user passwords in a PHP registration form, it is crucial to securely hash the passwords using a strong hashing algorithm like bcrypt. This helps protect the passwords in case of a data breach. Additionally, it is recommended to salt the passwords before hashing to add an extra layer of security.

// Hash and salt the user password before storing it in the database
$password = $_POST['password'];
$salt = uniqid(mt_rand(), true);
$hashed_password = password_hash($password . $salt, PASSWORD_BCRYPT);

// Store the hashed password and salt in the database
$stmt = $pdo->prepare("INSERT INTO users (username, password, salt) VALUES (:username, :password, :salt)");
$stmt->bindParam(':username', $_POST['username']);
$stmt->bindParam(':password', $hashed_password);
$stmt->bindParam(':salt', $salt);
$stmt->execute();