- php/
- 哈希密码时CakePHP 3出错:hash()至少需要2个参数,1个给定的APP/Model/Entity/User.php
哈希密码时CakePHP 3出错:hash()至少需要2个参数,1个给定的APP/Model/Entity/User.php
哈希密码时CakePHP 3出错:hash()至少需要2个参数,1个给定的APP/Model/Entity/User.php,php,mysql,cakephp,cakephp-3.0,Php,Mysql,Cakephp,Cakephp 3.0,我正在学习官方的书签教程:
但是在将\u setPassword($value)方法添加到我的用户类之后,我收到了这些警告,这些警告阻止我将哈希密码正确保存在我的用户表中
Warning (2): hash() expects at least 2 parameters, 1 given [APP/Model/Entity/User.php, line 26]
Warning (4096): Object of class Cake\Auth\DefaultPasswordHasher coul
我正在学习官方的书签教程:
但是在将\u setPassword($value)方法添加到我的用户类之后,我收到了这些警告,这些警告阻止我将哈希密码正确保存在我的用户表中
Warning (2): hash() expects at least 2 parameters, 1 given [APP/Model/Entity/User.php, line 26]
Warning (4096): Object of class Cake\Auth\DefaultPasswordHasher could not be converted to string [APP/Model/Entity/User.php, line 26]
Notice (8): Undefined variable: _SESSION [CORE/src/Network/Session.php, line 440]
警告(2):hash()至少需要2个参数,1个给定[APP/Model/Entity/User.php,第26行]
警告(4096):类Cake\Auth\DefaultPasswordHasher的对象无法转换为字符串[APP/Model/Entity/User.php,第26行]
注意(8):未定义变量:_SESSION[CORE/src/Network/SESSION.php,第440行]
- 这是我在App\Model\Entity\User中的方法:
受保护函数_setPassword($value)
{
$hasher=新的DefaultPasswordHasher();
返回$hasher.hash($value);
}
- 数据库中我的密码字段长度为255(有些人报告由于MySQL中的字段长度以及CakePHP 3使用的新加密方法而出现问题)
- 我的PHP版本是PHP5.5.20(cli)(构建时间:2015年2月25日23:30:53)
- 在myerror.log中,我看到以下几行:
2015-08-08 21:43:56警告:警告(2):hash()至少需要2个参数,1个参数在[/Applications/AMPPS/www/projects/bookmarker/src/Model/Entity/User.php,第26行]
跟踪:
Cake\Error\BaseErrorHandler::handleError()-CORE/src/Error/BaseErrorHandler.php,第139行
散列-[内部],行??
App\Model\Entity\User::_setPassword()-App/Model/Entity/User.php,第26行
Cake\ORM\Entity::set()-CORE/src/Datasource/EntityTrait.php,第254行
Cake\ORM\Marshaller::merge()-CORE/src/ORM/Marshaller.php,第467行
Cake\ORM\Table::patchEntity()-CORE/src/ORM/Table.php,第2032行
App\Controller\userscocontroller::edit()-App/Controller/userscocontroller.php,第75行
Cake\Controller\Controller::invokeAction()-CORE/src/Controller/Controller.php,第411行
Cake\Routing\Dispatcher::_invoke()-CORE/src/Routing/Dispatcher.php,第114行
Cake\Routing\Dispatcher::dispatch()-CORE/src/Routing/Dispatcher.php,第87行
[main]-ROOT/webroot/index.php,第37行
2015-08-08 21:43:56警告:警告(4096):Cake\Auth\DefaultPasswordHasher类的对象无法转换为[/Applications/AMPPS/www/projects/bookmarker/src/Model/Entity/User.php,第26行]中的字符串
跟踪:
Cake\Error\BaseErrorHandler::handleError()-CORE/src/Error/BaseErrorHandler.php,第139行
App\Model\Entity\User::_setPassword()-App/Model/Entity/User.php,第26行
Cake\ORM\Entity::set()-CORE/src/Datasource/EntityTrait.php,第254行
Cake\ORM\Marshaller::merge()-CORE/src/ORM/Marshaller.php,第467行
Cake\ORM\Table::patchEntity()-CORE/src/ORM/Table.php,第2032行
App\Controller\userscocontroller::edit()-App/Controller/userscocontroller.php,第75行
Cake\Controller\Controller::invokeAction()-CORE/src/Controller/Controller.php,第411行
Cake\Routing\Dispatcher::_invoke()-CORE/src/Routing/Dispatcher.php,第114行
Cake\Routing\Dispatcher::dispatch()-CORE/src/Routing/Dispatcher.php,第87行
[main]-ROOT/webroot/index.php,第37行
➜ 书签器git:(主)✗ 垃圾箱/蛋糕控制台
欢迎使用CakePHP v3.0.11控制台
---------------------------------------------------------------
App:src
路径:/Applications/AMPPS/www/projects/bookmarker/src/
---------------------------------------------------------------
您可以使用“CTRL-C”或“exit”退出`
Justin Hileman的Psy Shell v0.5.2(PHP5.5.20-cli)
>>>$u=新应用程序\模型\实体\用户;
=>App\Model\Entity\User{212
+“[新]”:对,
+“[可访问]”:[
“*”=>正确,
],
+“[脏]”:[],
+“[原件]”:[],
+“[虚拟]”:[],
+“[错误]”:[],
+“[存储库]”:null,
}
>>>$u->set('password','a password');
PHP警告:hash()至少需要2个参数,第26行的/Applications/AMPPS/www/projects/bookmarker/src/Model/Entity/User.PHP中给出了1个参数
>>>$u->密码
=>空
方法_setPassword应该
return $hasher->hash($value);
而不是
return $hasher.hash($value);
“return$hasher->hash($value);“not”return$hasher.hash($value);“Hi@Eugen,你说得对!我的错;来自Java语法对我没有帮助:)密码哈希最初对我不起作用。我必须先删除用户,然后再添加,才能让散列正常工作。
➜ bookmarker git:(master) ✗ bin/cake console
Welcome to CakePHP v3.0.11 Console
---------------------------------------------------------------
App : src
Path: /Applications/AMPPS/www/projects/bookmarker/src/
---------------------------------------------------------------
You can exit with `CTRL-C` or `exit`
Psy Shell v0.5.2 (PHP 5.5.20 — cli) by Justin Hileman
>>> $u = new App\Model\Entity\User;
=> App\Model\Entity\User {#212
+"[new]": true,
+"[accessible]": [
"*" => true,
],
+"[dirty]": [],
+"[original]": [],
+"[virtual]": [],
+"[errors]": [],
+"[repository]": null,
}
>>> $u->set('password', 'a password');
PHP warning: hash() expects at least 2 parameters, 1 given in /Applications/AMPPS/www/projects/bookmarker/src/Model/Entity/User.php on line 26
>>> $u->password
=> null
return $hasher->hash($value);
return $hasher.hash($value);