Центр пользователя  |  Ваши сообщения  |  FAQ
Форум поддержки phpBB » phpBB 3.0.x » Интеграция и конвертирование

Интеграция пользователей с сайта на форум

Взаимодействие phpBB 3.0.x с другими системами.
Пожалуйста, помните, что существуют: Поиск, Правила форума
Возможно, ответ на Ваш вопрос уже имеется: Документация, Статьи, Накопленный опыт
Полезные материалы по этой теме: Конвертеры

Сообщение 14 июл 2015, 16:16

Подобные вопросы уже задавались, поэтому уточню конкретнее, что я хочу сделать и что мне для этого нужно.
Есть сайт, куда я уже успешно добавил форум.
На этом сайте есть своя таблица пользователей. Мне нужно записать этих пользователей в бд форума, чтобы логин и пароль были такими же.
В бд я нашел таблицу phpbb_users.
Вижу там поля user_password, user_email_hash, user_form_salt, который генерируются неизвестным мне образом.
Думаю сделать следующим образом: авторизацию изменить так, что проверять он будет пароль по тому способу, которым я пользуюсь на сайте.
Кто-нибудь может подсказать, где она проводится? Пока сам пробую искать grep'ами - результатов достаточно много.
И что делать с user_email_hash и user_form_salt? На них наверняка где-то производится проверка.
Уверен, что кто-нибудь решал подобную задачу. Слушаю советы. :)
sscopin
Пользователь
 
Сообщений: 25
Зарегистрирован:
14 июл 2015, 15:49
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.

Сообщение 14 июл 2015, 18:34

crash
Поддержка
 
Сообщений: 11335
Зарегистрирован:
27 янв 2009, 03:22
Благодарил (а): 1 раз.
Поблагодарили: 568 раз.

Сообщение 15 июл 2015, 08:50

Поделюсь результатами.
Для того чтобы сработала функция из примера
Код: выделить все
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);

$user_row = array(
    'username'              => $username,
    'user_password'         => phpbb_hash($password),
    'user_email'            => $email_address,
    'group_id'              => (int) $group_id,
    'user_timezone'         => (float) $timezone,
    'user_dst'              => $is_dst,
    'user_lang'             => $language,
    'user_type'             => $user_type,
    'user_actkey'           => $user_actkey,
    'user_ip'               => $user_ip,
    'user_regdate'          => $registration_time,
    'user_inactive_reason'  => $user_inactive_reason,
    'user_inactive_time'    => $user_inactive_time,
);

// all the information has been compiled, add the user
// tables affected: users table, profile_fields_data table, groups table, and config table.
$user_id = user_add($user_row);

Я убрал из нее user_dst, потому что выдавалась ошибка что такой колонки в таблице нет. Устаревшая версия доков?
Также для того чтобы срабатывал скрипт добавления в отдельном файле,
Код: выделить все
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
оказалось недостаточно.
Добавил в его начало первые строчки из index.php
Код: выделить все
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');

Скорее всего что-то из этого можно убрать, но это сработало.
Есть еще задача. Логином у меня выступает телефон. Отображать телефон в качестве логина - не лучшая затея. В моей таблице пользователей есть фио. Я могу создать таблицу связку вида: user_id, Фамилия_Имя.
Может быть посоветуете как лучше изменить отображаемый логин на Фамилия_Имя?
sscopin
Пользователь
 
Сообщений: 25
Зарегистрирован:
14 июл 2015, 15:49
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.

Сообщение 15 июл 2015, 15:24

Решил задачу так:
в /includes/functions_contet.php есть функция
Код: выделить все
get_username_string

В ней нужно объявить глобальную переменную для работы с БД.
Код: выделить все
global $db;

Там есть много кейсов, модов итд.
Перед возвращаемым значением я вставил код с получением фио.
Код: выделить все
         $sql ="query receiving fio";
         $res = $db->sql_query($sql);
         $row = $db->sql_fetchrow($res);
         $username_string=$row['fio'];
   return $username_string;

Все сработало. Отображается нормальное имя.
sscopin
Пользователь
 
Сообщений: 25
Зарегистрирован:
14 июл 2015, 15:49
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.

Сообщение 16 июл 2015, 09:57

Интеграции для 3.1.5 не нашел. Поэтому продолжаю здесь писать. Теперь мне нужно чтобы при авторизации на моем сайте, автоматически авторизовывалось и на форуме.
Есть какие-нибудь идеи как это можно сделать, если вообще возможно?
У меня на сайте тоже форма с post-переменными.
sscopin
Пользователь
 
Сообщений: 25
Зарегистрирован:
14 июл 2015, 15:49
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.

Сообщение 16 июл 2015, 10:17

Попробовал на своем сайте при нажатии кнопки submit передавать такой аякс:
data={username:'admin',password:'admin_password'};
$.ajax({
type: "POST",
url: "./forum/phpBB3/phpBB3/ucp.php?mode=login",
data: data,
success: function (data, textStatus, jqXHR)
{
console.log(data);
}
});
Результат в консоли - код страницы с неавторизованным пользователем. Движусь ли я хотя бы в верном направлении, смогу ли я вообще как-нибудь авторизоваться с помощью аякса?
Need help.
sscopin
Пользователь
 
Сообщений: 25
Зарегистрирован:
14 июл 2015, 15:49
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.

Сообщение 16 июл 2015, 10:35

crash
Поддержка
 
Сообщений: 11335
Зарегистрирован:
27 янв 2009, 03:22
Благодарил (а): 1 раз.
Поблагодарили: 568 раз.

Сообщение 16 июл 2015, 15:25

Считаю что надо поделиться результатом. В аяксе не хватало post переменной Login (name submit'а)
sscopin
Пользователь
 
Сообщений: 25
Зарегистрирован:
14 июл 2015, 15:49
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.


Вернуться в Интеграция и конвертирование

 


  • Похожие темы
    Ответов
    Просмотров
    Последнее сообщение

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

Форум поддержки phpBB
2008 - 2017 © BB3x.ru - русская поддержка форума phpBB3
Создано на основе phpBB® Forum Software © phpBB Group
авторов модов
разработчиков скинов
русификаторов
и всех поклонников phpBB3