Трудности возникли.
Итак, пациент - phpBB 3.0.1.
Мои действия:
/includes/ucp/ucp_register.php
После строк (примерно 314-316)
- Код: Выделить всё
$user_row = array(
'username' => $data['username'],
'user_password' => phpbb_hash($data['new_password']),
добавляю после
- Код: Выделить всё
'user_cmspass' => md5($data['new_password']),
Теперь есть переменная с md5 хэшем пароля пользователя.
Далее... Строки 331-332:
- Код: Выделить всё
// Register user...
$user_id = user_add($user_row, $cp_data);
Добавляю после
- Код: Выделить всё
cmsuser_add($user_row, $user_id);
Получается вызов новой функции.
Теперь файл includes/functions_user.php
Строки 294-298
- Код: Выделить всё
set_config('newest_user_colour', $row['group_colour'], true);
}
return $user_id;
}
Добавляем после:
- Код: Выделить всё
function cmsuser_add($user_row, $user_id)
{
global $db, $user, $auth, $config, $phpbb_root_path, $phpEx;
if (empty($user_row['username']) || !isset($user_row['user_email']))
{
return false;
}
$username_clean = utf8_clean_string($user_row['username']);
$sql_ary = array(
'username' => $user_row['username'],
'username_clean' => $username_clean,
'user_cmspass' => (isset($user_row['user_cmspass'])) ? $user_row['user_cmspass'] : '',
'user_pass_convert' => 0,
'user_email' => strtolower($user_row['user_email']),
'user_email_hash' => crc32(strtolower($user_row['user_email'])) . strlen($user_row['user_email']),
'user_regdate' => $user_row['user_regdate'],
'group_id' => $user_row['group_id'],
'user_type' => $user_row['user_type'],
);
if (sizeof($remaining_vars))
{
foreach ($remaining_vars as $key)
{
$sql_ary[$key] = $user_row[$key];
}
}
$sql = "INSERT INTO dncms_users (userid, uname, upass, umail, regdate, activate) VALUES ('$user_id', '$username', '$user_cmspass', '$user_email', '$user_regdate', 1)");
$db->sql_query($sql);
}
То есть описываю новую функцию, которая вставляет в табличку dncms_users запись с данными только что зарегистрированного на форуме юзера. Только хэш пароля другой.
На практике при попытке зарегистрироваться (/forum/ucp.php?mode=register) получаю пустую страницу.
Помогите пожалуйста, что тут неверно?