php 升级触发 sha256 的新警告

php upgrade triggers new warning for sha256

我刚刚升级到 php 7.4,我在登录时收到一条新警告 pages:Warning:使用未定义常量 sha256 - 假定 'sha256' 这是片段:

 if(isset($_POST['password'])) {$_POST['password'] = hash(sha256, $_POST['password'].$row_rsSalt['salt']);}

我该怎么做才能解决这个问题并删除这个警告?

谢谢。

您需要将 sha256 括在撇号或引号中以使其成为字符串。

否则,PHP 正在执行警告所说的:寻找一个名为 sha256 的常量,但由于没有找到,它假定 sha256 是一个字符串值(而不是常量名称)。

正确的代码是

hash('sha256', $_POST['password'].$row_rsSalt['salt']);

注意:覆盖超全局 $_POST 变量的值是一种不好的做法。相反,您应该将该值保存到一个常规变量中并使用它。

if(isset($_POST['password'])) {
    $password = hash('sha256', $_POST['password'].$row_rsSalt['salt']);
}