我已经把我从http://www.openwall.com/phpass/下载的文件放到application/libraries
在我的控制器中,我使用这个代码-
$params = array(
'phpass_hash_strength' => 8,
'phpass_hash_portable' => FALSE
);
$this->load->library('PasswordHash', $params);
$password = $this->passwordhash->HashPassword($pwd);
我得到这些错误-
A PHP Error was encountered
Severity: Notice
Message: Uninitialized string offset: 3
Filename: libraries/PasswordHash.php
Line Number: 116
A PHP Error was encountered
Severity: Warning
Message: strpos() [function.strpos]: Empty delimiter
Filename: libraries/PasswordHash.php
Line Number: 116
更新删除PasswordHash.php
,现在使用SimpleLoginSecure
我在将PasswordHash集成到Symfony2时遇到了同样的问题。
为了解决这个问题,我将PasswordHash
方法重命名为__construct
。
理论上,PHP 5+如果找不到构造函数,应该寻找与类同名的方法(http://php.net/manual/en/language.oop5.decon.php)。我的猜测是,一旦添加了名称空间(我的集成的一个要求),类名的解析就会不同,但我根本没有研究过。
我认为你的问题是你试图使用一个通用的PHP对象作为CodeIgniter库。你不能这么做。您需要修改原始代码才能工作,或者下载已经为CodeIgniter设计的贡献库之一。
CodeIgniter库有一些限制(例如它们如何实例化),所以只是将任何文件放入libraries文件夹将不起作用。