Php 如何使用$hash加密密码

Php 如何使用$hash加密密码,php,hash,password-hash,Php,Hash,Password Hash,我如何使这个$hash成为用户注册网站时输入的密码?我已经使用$hash登录,当我使用手动输入的$hash密码测试它时,它工作正常,但无法使用此表单创建加密密码 <?php if(isset($_POST['emailaddress'],$_POST['password'],$_POST['name'])){ $result= $pdo->prepare('INSERT INTO user (emailaddress, password, name )

我如何使这个$hash成为用户注册网站时输入的密码?我已经使用$hash登录,当我使用手动输入的$hash密码测试它时,它工作正常,但无法使用此表单创建加密密码

<?php
if(isset($_POST['emailaddress'],$_POST['password'],$_POST['name'])){
    $result= $pdo->prepare('INSERT INTO user (emailaddress, password, name )
                        VALUES(:emailaddress, :password, :name)');
    $hash = password_hash(password, PASSWORD_DEFAULT);
    unset($_POST['submit']);
    $result->execute($_POST);
    header("Location:admin.php");
}

在执行查询之前,将
$hash
添加到
$\u POST

$_POST['password'] = $hash;
$result->execute($_POST);

更好的是,kingkero评论的内容,这样可以避免在
$\u POST

中出现不需要的值,您只传递
$\u POST
而从不传递
$hash
。类似于
execute(数组(':emailaddress'=>$\u POST['emailaddress'],':password'=>$hash,…)
should workpassword\u hash(password,password\u DEFAULT);->密码\u散列($\u POST['password'],密码\u默认值);!