PasswordHash不使用CodeIgniter

时间:2011-08-16 02:22:14

标签: php codeigniter password-hash

我已将我从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

2 个答案:

答案 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文件夹中都不起作用。