PasswordHash не работает с CodeIgniter
Я поместил файлы, которые я скачал из http://www.openwall.com/phpass/ to 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.
2 ответа:
Я думаю, что ваша проблема заключается в том, что вы пытаетесь использовать универсальный объект PHP в качестве библиотеки CodeIgniter. Ты не можешь просто так это сделать. Вам нужно будет изменить исходный код для работы или загрузить одну из библиотек , уже разработанных для CodeIgniter.
Библиотеки CodeIgniter имеют некоторые ограничения (например, как они создаются), поэтому простое удаление любого файла в папку библиотеки не будет работать.
У меня была та же проблема при интеграции PasswordHash в Symfony2.
Чтобы решить ее, я переименовал методPasswordHash
в__construct
.Теоретически PHP 5+ должен искать метод с тем же именем, что и класс, если он не может найти конструктор (http://php.net/manual/en/language.oop5.decon.php я предполагаю, что имя класса разрешается по-разному, как только пространство имен добавляется (требование для моей интеграции), но я не исследовал вообще.