[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 раз.
Изображение
bronto
phpBB 1.2.0
Сообщения: 10
Стаж: 14 лет 10 месяцев

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

Сообщение bronto »

rxu писал(а):Покажите функцию utf8_strrpos() из файла /www/libraries/phputf8/mbstring/core.php объявленную в строке 49.
Вот такая:

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

function utf8_strrpos($str, $search, $offset = FALSE){
    if ( $offset === FALSE ) {
        # Emulate behaviour of strrpos rather than raising warning
        if ( empty($str) ) {
            return FALSE;
        }
        return mb_strrpos($str, $search);
    } else {
        if ( !is_int($offset) ) {
            trigger_error('utf8_strrpos expects parameter 3 to be long',E_USER_WARNING);
            return FALSE;
        }

        $str = mb_substr($str, $offset);

        if ( FALSE !== ( $pos = mb_strrpos($str, $search) ) ) {
            return $pos + $offset;
        }

        return FALSE;
    }
}
Diakon
phpBB 1.0.0
Сообщения: 1
Стаж: 14 лет 10 месяцев

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

Сообщение Diakon »

Привет всем!
Использую ваш код для авторизации через сайт.
Но есть такой вопрос. Можно ли каким либо способом загнать в переменную имя авторизированного пользователя?
Заранее спасибо!
Аватара пользователя
fargred
phpBB 1.2.1
Сообщения: 20
Стаж: 14 лет 11 месяцев
Откуда: /usr/portage/people/

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

Сообщение fargred »

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

$user->data['username'] 
же
Maksim90
phpBB 1.4.2
Сообщения: 65
Стаж: 16 лет 11 месяцев

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

Сообщение Maksim90 »

Здравствуйте!

Схема
map.gif
Шапка
3.jpg
Аватара и ссылка на профиль и выход было сделано как предложил Nekstati
Поставить аватару на всех страницах

1) Как добавить в login.php регистрацию с форума, причем чтобы после регистрации мы сразу же попадали на форум и были авторизированы.
2) Как сделать, чтобы после ввода имени и пароля в login.php мы сразу же попадали на форум.
3) Вот на схемы есть ещё и другие сервисы, кроме форума, есть ещё и "библиотека" и "Аплоад", какой код нужно добавить в эти сервисы, чтобы сохранялась авторизация, а также аватара из шапки( представленная на картинке)и ссылка на профиль в личный раздел форума, выход.
4) При нажатии кнопки выход на форуме - мы попадали обратно на login.php.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
MAzZY
Бывший член :)
Сообщения: 2925
Стаж: 19 лет 11 месяцев
Благодарил (а): 19 раз
Поблагодарили: 30 раз
Забанен: Бессрочно

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

Сообщение MAzZY »

На сайте будет использоваться эта же шапка или что-то другое?
Если эта же, то никаких действий делать не надо - все само будет логинить через форум
Maksim90
phpBB 1.4.2
Сообщения: 65
Стаж: 16 лет 11 месяцев

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

Сообщение Maksim90 »

На сайте будет эта шапка.
После ввода имени и пароля в login.php выводиться ещё
4.gif
А нужно, чтобы сразу попадал на форум.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
MAzZY
Бывший член :)
Сообщения: 2925
Стаж: 19 лет 11 месяцев
Благодарил (а): 19 раз
Поблагодарили: 30 раз
Забанен: Бессрочно

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

Сообщение MAzZY »

Ну так настройте все грамотно и не будет проблем
Maksim90
phpBB 1.4.2
Сообщения: 65
Стаж: 16 лет 11 месяцев

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

Сообщение Maksim90 »

Спасибо, я разобрался и всё настроил.

Возник другой вопрос, как можно сделать так что бы пользователь если не авторизовался на login.php, то не смог бы попасть не на одну страницу форума.
Например, если пользователь, который не авторизовался, напишет в адресной строке test1.ru/forum/index.php (или же любую другую страницу) его перенаправляла сразу же на test1.ru/login.php?
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3336
Стаж: 16 лет 1 месяц
Благодарил (а): 17 раз
Поблагодарили: 561 раз

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

Сообщение Nekstati »

Найти в includes/functions.php

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

	if (defined('HEADER_INC'))
	{
		return;
	}
Добавить после

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

	if ($user->data['user_id'] == ANONYMOUS)
	{
		header('Location: /login.php');
	}
Maksim90
phpBB 1.4.2
Сообщения: 65
Стаж: 16 лет 11 месяцев

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

Сообщение Maksim90 »

Спасибо, работает!

Добавлено спустя 2 часа 12 минут 32 секунды:
Тут появилась маленькая загвоздка: пользователь, который не авторизовался, не может попасть ни на одну страницу форума, кроме страницы регистрации. Как это можно сделать?
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3336
Стаж: 16 лет 1 месяц
Благодарил (а): 17 раз
Поблагодарили: 561 раз

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

Сообщение Nekstati »

Вставить этот же код не в includes/functions.php, а в index.php, viewforum.php, viewtopic.php и т. д., то есть во все «титульные» скрипты, исключая ucp.php. Вставлять следует после таких строк (на примере index.php):

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

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');
Добавлено спустя 1 минуту 16 секунд:
А вообще зачем такие строгости? Запретите гостям читать ваши форумы да и всё.
Quake_SS
phpBB 1.2.0
Сообщения: 12
Стаж: 14 лет 11 месяцев

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

Сообщение Quake_SS »

Добрай день.
У когото есть опыт интеграции с магазином на скрипте WebAsyst?
непейвода
phpBB 1.0.0
Сообщения: 5
Стаж: 14 лет 7 месяцев

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

Сообщение непейвода »

Вот код, которым я пользуюсь. Он выводит имя и аватар зарегеного пользователя или ссылку на регистрацию/вход.

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

<?php 
/**
*
* @package phpBB3
* @version $Id: login.php,v 1.0.5 2008/03/09 15:15:06 rxu Exp $
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
* Minimum Requirement: PHP 4.3.3
*/

/*
* This code is an example for board login integration on sites.
*/

/**
*/
define('IN_PHPBB', true);

// Set phpBB root folder properly. Change in according to the actual board folder
define('PHPBB_ROOT_PATH', './Forum/');
$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);


// 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);
}

// Send headers





// 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);
	}
	echo 'Привет, ' . get_username_string ('full', $user->data['user_id'],  $user->data['username'],  $user->data['user_colour']); 
echo '<br />' . get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']);
	echo '<form method="post" action="login.php">';
	
	echo '</form>';
}
else
{ 
	
	echo '	<h3 align="center"><a href="http://chertog-iskusstv.ru/Forum/ucp.php?mode=login&sid=c8459898851101127552060623797404" class="LINKSHAPKA"><img src="img/newuser.png" width="16" height="16" align="absbottom" border="">Вход:<br>(регистрация)
</a></h3> ';
	
	
	
	
}

 ?>
Если заходит человек неавторизованный, над ссылкой регистрация/вход выводятся какие-то ошибки, такого типа:

[phpBB Debug] PHP Notice: in file /includes/session.php on line 1007: Cannot modify header information - headers already sent by (output started at /home/cherto/public_html/Master.php:7)
[phpBB Debug] PHP Notice: in file /includes/session.php on line 1007: Cannot modify header information - headers already sent by (output started at /home/cherto/public_html/Master.php:7)
[phpBB Debug] PHP Notice: in file /includes/session.php on line 1007: Cannot modify header information - headers already sent by (output started at /home/cherto/public_html/Master.php:7)

Не могу разобраться в чём проблема. Помогите!
Если нужен сайт: http://chertog-iskusstv.ru/
Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Стаж: 19 лет 11 месяцев
Откуда: Оренбург (Южный Урал)
Благодарил (а): 3 раза

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

Сообщение Поручик »

Попробуй вариант из твоего же поста, только сохрани файл без метки BOM.

Добавлено спустя 2 минуты 59 секунд:
Хотя нет, надо знать как ты этот скрипт вызываешь. Функция $user->session_begin() отсылавет куки, но заголовок уже сформирован и отдан браузеру.
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html
непейвода
phpBB 1.0.0
Сообщения: 5
Стаж: 14 лет 7 месяцев

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

Сообщение непейвода »

как быть?
Перенесено из форума FAQ (phpBB 3.0.x) в форум FAQ 28.09.2016 15:02 модератором rxu

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