我已将我从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
现在使用 SimpleLoginSecure 删除了PasswordHash.php
。
答案 0 :(得分:11)
我在将PasswordHash集成到Symfony2时遇到了同样的问题。
要解决此问题,我将PasswordHash
方法重命名为__construct
。
理论上,如果找不到构造函数(http://php.net/manual/en/language.oop5.decon.php),PHP 5+应该寻找与该类同名的方法。我的猜测是,一旦添加了命名空间(类似于我的集成),类名就会以不同的方式解析,但我根本没有调查过。
答案 1 :(得分:2)
我认为您的问题是您正在尝试将通用PHP对象用作CodeIgniter库。你不能这样做。您需要修改原始代码才能使用,或者下载其中一个contributed libraries already designed for CodeIgniter。
CodeIgniter库有一些限制(例如它们如何实例化),所以只删除任何文件到libraries文件夹中都不起作用。