Php 为什么这段代码散列为null?

Php 为什么这段代码散列为null?,php,forms,post,passwords,sha256,Php,Forms,Post,Passwords,Sha256,以下代码通过用户名检查,但密码检查失败 如您所见,散列是重复的,但出于某种原因,它们输出e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855,这是/dev/null的sha256sum。由于密码似乎根本没有回音,我只能假设它无法获得帖子,但为什么 登录 用户名: 密码: 多洛金 if($\u POST[username]==$actualsername){ //散列密码 $hashedpassword=hash('s

以下代码通过用户名检查,但密码检查失败

如您所见,散列是重复的,但出于某种原因,它们输出
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
,这是
/dev/null
sha256sum
。由于密码似乎根本没有回音,我只能假设它无法获得帖子,但为什么

登录

用户名:
密码:
多洛金
if($\u POST[username]==$actualsername){
//散列密码
$hashedpassword=hash('sha256',$_POST[password]);
echo$_POST[密码];
echo$hashedpassword;
如果($hashedpassword==$actualpassword){
echo“登录”;
}否则{
回显“密码不正确”;
echo$hashedpassword;
}
}否则{
回显“不正确的用户名”;
}

关闭输入标记是否可以解决问题? 此外,您还可以使用

isset($_POST["blabla"])

测试值是否在
$\u POST
中设置

您不应该使用SHA*系列对密码进行哈希运算。请参阅并执行
$\u POST['password']
,而不是
[password]
。@Gargron@LewisGoddard-因为它会导致一个非常讨厌且难以发现的错误,其他开发人员或外部库是否应该在某处定义一个名为
password
的常量?是的!我以为HTML5意味着你不需要关闭像链接、元、img和输入项这样的东西?多么奇怪的怪癖啊。
    if ( $_POST[username] == $actualusername ) {
        // Hash the password
        $hashedpassword = hash('sha256', $_POST[password]);
        echo $_POST[password];
        echo $hashedpassword;
        if ( $hashedpassword == $actualpassword ) {
            echo '<h2>Logged in</h2>';
        } else {
        echo '<h2>Incorrect password</h2>';
        echo $hashedpassword;
        }
    } else {
        echo '<h2>Incorrect username</h2>';
    }
isset($_POST["blabla"])