[FAQ] Интеграция входа на конференцию phpBB с сайтом

Темы по наиболее часто задаваемым вопросам без привязки к версии phpBB. Читать в первую очередь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x/3.3.x | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16947
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1700 раз

[FAQ] Интеграция входа на конференцию phpBB с сайтом

Сообщение rxu »

Ниже приведен пример скрипта с интегрированной формой входа на конференцию (общего вида).
В приведённом примере папка, в которой находится скрипт, находится на один уровень выше папки конференции. Файлы конференции находятся в папке phpBB3 относительно скрипта.

По коду скрипта имеются пояснительные комментарии (на английском языке).

Вопросы принимаются в этой теме.

Версия 1.1.0 с интегрированным списком онлайн и легендой групп здесь.
Версия 1.2.0 с аватарой здесь.

Версия 2.0.1 для phpBB 3.2/3.3 здесь.

login_1.0.5.zip
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось rxu 22.05.2020 8:37, всего редактировалось 6 раз.
Изображение
patison

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение patison »

Т.е. вы хотите сказать что можно оставить настройка для Домена куки .main.com , а людям у которых не сохранялись кукисы авторизации посоветовать просто вычистить весь кэш? Что-ж, попробуем, посмотрим каков будет результат :)
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16947
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1700 раз

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение rxu »

Не просто вычистить кэш, но убить средствами браузера все куки, относящиеся к домену main.com и всем его поддоменам.
Изображение
patison

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение patison »

Хе. Только после того как ВРУЧНУЮ в настройках браузера были убиты все кукисы связанные с доменом, заработало как надо :)

А теперь такой вопрос. Что если сайт будет на домене main.com , а форум на forum.domain.com , настройки кукисов в форуме ( домен куки - .main.com ) остаются в силе?
Аватара пользователя
Rayden
Former team member
Сообщения: 3739
Стаж: 19 лет 10 месяцев
Поблагодарили: 3 раза

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение Rayden »

Да, остаются в силе. Домен куки - .main.com действует на все поддомены.
phpBB2 FAQ
phpBB3 FAQ
dark_hero
phpBB 1.0.0
Сообщения: 8
Стаж: 15 лет 11 месяцев

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение dark_hero »

такая проблема, скачал из этой темы login.php последний, чуть подработал его для своих нужд и получил желаем результат на основном сайте, вот теперь не могу этот скрипт прикрутить на странице форума, вот что у меня в скрипте:

Код: Выделить всё

<?php
define('IN_PHPBB', true);

// Set phpBB root folder properly. Change in according to the actual board folder
//define('PHPBB_ROOT_PATH', './');
//$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';

//$phpEx = substr(strrchr(__FILE__, '.'), 1);
include_once("/home/zagsby/public_html/forum/common.php");

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('ucp');

// Initialize  login result array
$login = array();

// Handle logouot button if pressed
if(isset($_POST['logout']) && $user->data['user_id'] != ANONYMOUS)
{
  $user->session_kill();
}

// Check if user has submitted login and password and try to log in
if(isset($_POST['login']) && $user->data['user_id'] == ANONYMOUS)
{
  $username = request_var('username', '', true);
  $password = request_var('password', '', true);
  $autologin  = (!empty($_POST['autologin'])) ? true : false;

  $login = $auth->login($username, $password, $autologin);
}

// Check if user has tried to log in and greet him if login is successful
if((!empty($login) && $login['status'] == LOGIN_SUCCESS) || $user->data['user_id'] != ANONYMOUS)
{
  // Reset permissions data if user has just logged in
  if(!empty($login))
  {
    $auth->acl($user->data);
  }
  $user=$user->data["username"];
  $welcome="welcome";
}
else
{
  // Handle login errors if exist and display error message right above the login form
  if(isset($login['error_msg']) && $login['error_msg'])
  {
    $error="<div style='position:absolute; margin-left:60px; //margin-left:-120px; margin-top:-27px; color:#f00;'>╨Т╨▓╨╡╨┤╨╡╨╜╨╜╤Л╨╡ ╨╗╨╛╨│╨╕╨╜ ╨╕╨╗╨╕ ╨┐╨░╤А╨╛╨╗╤М ╨╜╨╡ ╨▓╨╡╤А╨╜╤Л!</div>";
  }
  
  // Show login form
  $login_form="login";
}
?>
почему нельзя использовать стандартный вход на форум? потому, что нужно чтобы это делалось через шапку сайта, которая одинаковая и на форуме и на сайте.

вот что у меня выкидывает при подключении скрипта:

Fatal error: Call to a member function acl() on a non-object in /home/zagsby/public_html/forum/includes/login.php on line 13
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16947
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1700 раз

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение rxu »

dark_hero писал(а):Fatal error: Call to a member function acl() on a non-object in /home/zagsby/public_html/forum/includes/login.php on line 13
Верхние строки попробуйте раскомментировать.
Изображение
dark_hero
phpBB 1.0.0
Сообщения: 8
Стаж: 15 лет 11 месяцев

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение dark_hero »

Верхние строки попробуйте раскомментировать.
а толку?! там задается путь до файла common.php + так как я скрипт подключаю в шаблоне стиля, то до этого уже что-то успело объявится и все еще раньше начинает ругаться, то есть если сделать вот так:

Код: Выделить всё

/*
// Set phpBB root folder properly. Change in according to the actual board folder
define('PHPBB_ROOT_PATH', './');
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';

$phpEx = substr(strrchr(__FILE__, '.'), 1);
include_once("/home/zagsby/public_html/forum/common.php");
*/
define('IN_PHPBB', true);

// Set phpBB root folder properly. Change in according to the actual board folder
define('PHPBB_ROOT_PATH', '/home/zagsby/public_html/forum/');
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';

$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
то получим, вот так:

Fatal error: Cannot redeclare class cache in /home/zagsby/public_html/forum/includes/cache.php on line 23
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16947
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1700 раз

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение rxu »

dark_hero писал(а):а толку?!
Там объявляются и задаются переменные, используемые во включаемых скриптах.
dark_hero писал(а):так как я скрипт подключаю в шаблоне стиля
Не знаком с вашим скриптом, поэтому не могу сказать, где там у вас что вперед подключается.
Изображение
dark_hero
phpBB 1.0.0
Сообщения: 8
Стаж: 15 лет 11 месяцев

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение dark_hero »

Там объявляются и задаются переменные, используемые во включаемых скриптах.
ну дык, пробовал при изменении

Код: Выделить всё

    /*
    // Set phpBB root folder properly. Change in according to the actual board folder
    define('PHPBB_ROOT_PATH', './');
    $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';

    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    include_once("/home/zagsby/public_html/forum/common.php");
    */
    define('IN_PHPBB', true);

    // Set phpBB root folder properly. Change in according to the actual board folder
    define('PHPBB_ROOT_PATH', '/home/zagsby/public_html/forum/');
    $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';

    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    include($phpbb_root_path . 'common.' . $phpEx);
вылетает ошибка
Fatal error: Cannot redeclare class cache in /home/zagsby/public_html/forum/includes/cache.php on line 23
Не знаком с вашим скриптом, поэтому не могу сказать, где там у вас что вперед подключается.
скрипт подключается в самом верху overall_header.html
vasiliy_b
phpBB 1.0.0
Сообщения: 2
Стаж: 15 лет 11 месяцев

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение vasiliy_b »

Доброго времени суток. Мой вопрос относится к интеграции, правда не совсем к авторизации. Дело в том, что реализовал авторизацию, и я привязываюсь к id пользователя, теперь мне надо вывести имя пользователя, которому он соответствует. Как это реализовать, желательно чтобы при этом была ссылка на его профиль?
vasiliy_b
phpBB 1.0.0
Сообщения: 2
Стаж: 15 лет 11 месяцев

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение vasiliy_b »

Попробовал использовать функцию get_username_string('full', $row["userid"], "", $user->data['user_colour']) - но она отображает правильно только того пользователя под дкоторым я зашел на сайт, для остальных пользователей имя не определено. Уже думаю. может напрямую обращаться к Таблице *_users?

Еще хотел спросить есть ли возможность также использовать wysiwyg редактор, чтобы не держать несколько редакторов на одном сайте.
Otto fon f.
phpBB 1.0.0
Сообщения: 6
Стаж: 17 лет 1 месяц

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение Otto fon f. »

Спасибо за тему, очень нужная.
Решил потестить на локалхосте. Всё сделал как описывалось в первом сообщении (установил форум в папку а файл login.php поставил рядом).
Авторизация происходила, но на форуме всегда после авторизации в урл было sid=********, а если авторизироваться через login.php то сессия не сохранялась.
После того, как перелопатил тему, и сделал по совету rxu
"В случае с localhost фокус может и не сработать.
Попробуйте домен куки - localhost и путь куки - /"
заработало как надо.

Просьба для таких как я об этом написать в первом топике и спасибо за поддержку, очень нужный скрипт.
p-vasya
phpBB 1.2.1
Сообщения: 20
Стаж: 16 лет 10 месяцев

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение p-vasya »

Огромное спасибо за скрипт! Всё сразу стало и вроде пока работает без сбоев ;)

Но несмотря на отличную работу скрипта, у меня всё-равно появлись вопросы, касательно интеграции форума и сайта.
Суть вот какая:
У меня есть БД не связанная с форумом, в неё будет добавляться информация и разумеется нужно знать, кто именно информацию добавлял(аккаунты будут использованы из форума), для этого планирую рядом с записью в своей БД хранить id пользователя(id из phpbb_users).

Поковырялся в скрипте и замети, что после авторизации в массиве $user->data лежит куча нужной мне информации.

При выводе информации из своей БД, мне пригоится часть этой информаци, логично, что в phpBB есть функция отвечающая а получение всей этой информации из базы и соответсвенно не хотелось бы изобретать свой велосипед.
Поверхностный анализ скрипта логининга и скрипта auth.php, не ал точных сведений о названии сей чудесной функции.
Разумеется ковыряя осталные скрипты, я найду всё что меня интересовало, либо на крайний случай допишу сам, но во-первых на это всё придётся впустую потратить кучу времени и как уже писал выше зачем изобретать велосипед? Поэтому обращаюсь к вам, с просьбой подсказать, где именно следует искать искомый мне функционал?

Заранее огромное спасибо!
p-vasya
phpBB 1.2.1
Сообщения: 20
Стаж: 16 лет 10 месяцев

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение p-vasya »

Также ещё хотел спросить:

Что означает user_type в таблице phpbb_users?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16947
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1700 раз

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение rxu »

p-vasya
Класс user задается в Includes/session.php. Прошу заметить, что ваши вопросы - оффтоп.
Изображение
Перенесено из форума FAQ (phpBB 3.0.x) в форум FAQ 28.09.2016 15:02 модератором rxu

Вернуться в «FAQ»