Задача: реализовать создание учётной записи пользователя форума с логином и паролем, совпадающими с аналогичными параметрами на остальном сайте. В phpBB2 было просто - запрос SQL вроде "insert into `phpbb_users` (`username`, `user_password`) values ('$username', ".md5($user_password)."');". Теперь (в phpBB3) вместо md5() нужно использовать phpbb_hash(), которая ещё 4 функции требует (unique_id, _hash_encode64, _hash_crypt_private, _hash_gensalt_private). Функция unique_id в свою очередь вызывает set_config, которая у меня падает с сообщением о невозможности использования sql_escape для не-объекта. Это в случае, если предварительно установить нужные константы и переменные и подключить "includes/functions.php".
Бросил это грязное дело, скопировал только нужные функции в отдельный файл, вызовы функции set_config закоментировал. Вроде учётка добавляется, но зайти под ней не получается - ругается на неверный пароль. Чтение конфига в массив $config реализовал целиком на всякий случай (пара элементов точно используется этими функциями). Попробовал зарегистрировать одного пользователя как положено, через регистрацию, а второго, с точно таким же паролем, уже через свой скрипт. Запрос формируется так: "insert into `phpbb_users` (`username`, `user_password`, `user_timezone`, `user_regdate`, `username_clean`) values ('".$tui['login']."', '".phpbb_hash($tui['pwd'])."', 10.00, '".time()."', '".strtolower($tui['login'])."')". В базе данных поля `user_password` получаются разные. Что упустил из виду? Обновление конфига обязательно?