Я предполагаю, что ваш functions_phpbb.php
файл является копией includes/functions.php
файла пакета phpBB3.
Теперь причина того, что вы получаете эту ошибку, заключается в том, что функция phpbb_hash
использует функцию phpBB unique_id
для энтропии, которая зависит от соединения с базой данных (для изменения и сохранения энтропии при каждом запросе).
Есть два способа это исправить.
a) включает phpBB common.php
, который загрузит ваш код для phpBB (включая соединение с БД, обработчики ошибок и т. Д.).
b) phpBB3 использует phpass для хеширования. Я предлагаю вам просто загрузить автономный пакет phpass и использовать его для генерации хэша.
Небольшое предостережение: phpBB3 меняет идентификатор хеша с '$ P $' на '$ H $' (не спрашивайте меня, почему), поэтому вам придется изменить эту строку:
$output = '$P$';
до:
$output = '$H$';
Поскольку опция a) добавляет довольно много служебной информации, и вы, вероятно, хотите использовать только функции хеширования, я бы предложил вариант b).