所以,这对我来说有点头疼。服务器是Ubuntu,包含Apache 2.4,MySQL和PHP 7.0.8。我已经阅读了文档,并搜索了Google和SO以寻找可能的答案而没有运气。我有一个基本功能:
public function updatePassword($pw)
{
$passwd = password_hash($pw, PASSWORD_DEFAULT);
if($passwd !== NULL)
{
$this->sql = "UPDATE {$this->table} SET passwd='{$passwd}' WHERE id=".$_SESSION[PUBLIC_SITE]['uid'];
$this->execSql("Updating User Password", UPDATE);
}
}
$passwd
是NULL
,我似乎无法弄清楚原因。我还尝试将第二个参数设置为PASSWORD_BCRYPT
,而password_hash
仍然返回NULL
。这是什么问题?他们没有更新文档以包括提及新算法或其他内容吗?或者我在这里错过了其他什么?
答案 0 :(得分:2)
在查看https://wiki.php.net/rfc/password_hash并提醒调试的错误标志后,我很快意识到我正在将一个数组传递给该函数。 @play.mvc.Http.Context.current.set(play.core.j.JavaHelpers.createJavaContext(request))
@forProviders(playAuth, skipCurrent) { p =>
期望字符串作为第一个参数。通过传递正确的预期输入来解决。