【问题标题】:Error: password_hash(): Password must be a string in laravel错误:password_hash():密码必须是 laravel 中的字符串
【发布时间】:2014-11-20 01:51:13
【问题描述】:

我的代码中发生了错误异常 $user->password = Hash::make(Input::get('password')); 说password_hash():密码必须是字符串。我正在使用 laravel 框架

            $user = new User();
            $user->username = Input::get('username');
            $user->password = Hash::make(Input::get('password'));   
             if($user->save())
             {   
                return Redirect::route('home')->with('success','You register successfully. You can now login');
             } else {
                return Redirect::route('home')->with('fail','An error occurred while creating user. Please try again.');
             }

【问题讨论】:

  • 您应该编辑您的问题并将您的表单代码放在那里
  • 可能Input::get('password') 不包含任何值,所以我会检查您的 HTML 表单是否真的有一个具有此名称的输入字段。
  • @martinstoeckli 我之前已经检查过了,但似乎即使你根本没有输入,你也不会看到这样的错误。
  • 我也有这种问题,解决了吗?

标签: string laravel hash passwords password-hash


【解决方案1】:

我使用 PHP 5.4 附带的 wamp 2.4 也遇到了同样的问题,但是在升级到 php 5.5 附带的 wamp 2.5 后,它得到了解决,所以解决方案编号 1:

  • 如果您运行的是较低版本的 php,那么您可能需要升级。

仍在寻找不需要升级的解决方案,因为在 Laravel 的文档中,它提到 Laravel 4.2 支持 5.4+

【讨论】:

  • 我在 hhvm 上遇到过这个问题,有什么解决办法吗?
  • 没关系,只需将传递给 Hash::make() 的参数转换为字符串即可。调用 Hash::make(123) 会导致此错误,而 Hash::make('123' ) 不
【解决方案2】:

我在一台Linux机器上遇到了类似的问题

ErrorException
password_hash(): Password must be a string

通过将 PHP 从 PHP 5.4 升级到 PHP 5.5,它在我的 Laravel 环境中解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-20
    • 1970-01-01
    • 2017-02-23
    • 2020-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-24
    相关资源
    最近更新 更多