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']);
}
我刚刚升级到 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']);
}