PasswordHash не работает с CodeIgniter - PullRequest
3 голосов
/ 16 августа 2011

Я положил файлы, которые я скачал с 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 сейчас.

Ответы [ 2 ]

11 голосов
/ 29 августа 2013

У меня была такая же проблема при интеграции PasswordHash в Symfony2.

Чтобы решить эту проблему, я переименовал метод PasswordHash в __construct.

Теоретически, PHP 5+ должен искать метод с тем же именем, что и класс, если он не может найти конструктор (http://php.net/manual/en/language.oop5.decon.php). Я предполагаю, что имя класса разрешается по-разному после добавления пространства имен (требование для моей интеграции), но я вообще не исследовал.

2 голосов
/ 16 августа 2011

Я думаю, что ваша проблема в том, что вы пытаетесь использовать универсальный объект PHP в качестве библиотеки CodeIgniter. Вы не можете просто сделать это. Вам нужно будет изменить исходный код для работы или загрузить одну из предоставленных библиотек, уже разработанных для CodeIgniter .

Библиотеки CodeIgniter имеют некоторые ограничения (например, способ их создания), поэтому просто удаление любого файла в папку библиотеки не будет работать.

...