[FAQ] Интеграция входа на конференцию phpBB с сайтом
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x/3.3.x | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x/3.3.x | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение

-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
[FAQ] Интеграция входа на конференцию phpBB с сайтом
Ниже приведен пример скрипта с интегрированной формой входа на конференцию (общего вида).
В приведённом примере папка, в которой находится скрипт, находится на один уровень выше папки конференции. Файлы конференции находятся в папке phpBB3 относительно скрипта.
По коду скрипта имеются пояснительные комментарии (на английском языке).
Вопросы принимаются в этой теме.
Версия 1.1.0 с интегрированным списком онлайн и легендой групп здесь.
Версия 1.2.0 с аватарой здесь.
Версия 2.0.1 для phpBB 3.2/3.3 здесь.
В приведённом примере папка, в которой находится скрипт, находится на один уровень выше папки конференции. Файлы конференции находятся в папке phpBB3 относительно скрипта.
По коду скрипта имеются пояснительные комментарии (на английском языке).
Вопросы принимаются в этой теме.
Версия 1.1.0 с интегрированным списком онлайн и легендой групп здесь.
Версия 1.2.0 с аватарой здесь.
Версия 2.0.1 для phpBB 3.2/3.3 здесь.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось rxu 22.05.2020 8:37, всего редактировалось 6 раз.
-
- phpBB 1.0.0
- Сообщения: 1
- Стаж: 15 лет 5 месяцев
Re: [FAQ RC] Интеграция входа на конференцию с сайтом
Eсть форум на forum.mysite.ru и каталог на catalog.mysite.ru Общую авторизацию поставил без проблем. Стоит задача - предоставить возможность пользователям зарегистрироваться на форуме при этом не покидая каталога. Как это можно реализовать?
-
- phpBB 1.0.0
- Сообщения: 1
- Стаж: 15 лет 3 месяца
Re: [FAQ RC] Интеграция входа на конференцию с сайтом
Здравствуйте. У меня что то с кодировкой. Посмотрите www.joker-main.com/login.php
стало это сразу после того, как я добавил дизайн require'ами...
стало это сразу после того, как я добавил дизайн require'ами...
-
- Former team member
- Сообщения: 6517
- Стаж: 20 лет 9 месяцев
- Откуда: Бердск
Re: [FAQ RC] Интеграция входа на конференцию с сайтом
форум работает в utf-8
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
-
- phpBB 1.0.0
- Сообщения: 1
- Стаж: 15 лет 2 месяца
Re: [FAQ RC] Интеграция входа на конференцию с сайтом
а где можно найти подобный скрипт как из первого поста,но только с регистрацией нового пользователя?
-
- phpBB 1.4.0
- Сообщения: 39
- Стаж: 15 лет 10 месяцев
- Откуда: Иваново
Re: [FAQ RC] Интеграция входа на конференцию с сайтом
Подскажите пожалуйста 2 момента по интеграции:
1. Будет ли обновляться статус онлайн для пользователя,если он не заходит на сам форум,а перемещается только на сайте?
2.Можно ли сделать вывод данного статуса как то на самом сайте?
1. Будет ли обновляться статус онлайн для пользователя,если он не заходит на сам форум,а перемещается только на сайте?
2.Можно ли сделать вывод данного статуса как то на самом сайте?
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: [FAQ RC] Интеграция входа на конференцию с сайтом
Да.AllFuns писал(а):Будет ли обновляться статус онлайн для пользователя,если он не заходит на сам форум,а перемещается только на сайте?
Теоретически - да, но практически есть варианты. На примере viewtopic.phpAllFuns писал(а):Можно ли сделать вывод данного статуса как то на самом сайте?
Код: Выделить всё
// Generate online information for user
if ($config['load_onlinetrack'] && sizeof($id_cache))
{
$sql = 'SELECT session_user_id, MAX(session_time) as online_time, MIN(session_viewonline) AS viewonline
FROM ' . SESSIONS_TABLE . '
WHERE ' . $db->sql_in_set('session_user_id', $id_cache) . '
GROUP BY session_user_id';
$result = $db->sql_query($sql);
$update_time = $config['load_online_time'] * 60;
while ($row = $db->sql_fetchrow($result))
{
$user_cache[$row['session_user_id']]['online'] = (time() - $update_time < $row['online_time'] && (($row['viewonline']) || $auth->acl_get('u_viewonline'))) ? true : false;
}
$db->sql_freeresult($result);
}
unset($id_cache);
-
- phpBB 1.4.0
- Сообщения: 39
- Стаж: 15 лет 10 месяцев
- Откуда: Иваново
Re: [FAQ RC] Интеграция входа на конференцию с сайтом
Прошу прощения.Хотелось бы уточнить:
Значит $id_cache это массив с идентификаторами пользователей?Получается что я должен присваивать ему эти идентификаторы?По умолчанию он пустая?
Если да,то по какому принципу я должен присваивать ей идентификаторы?Мне ведь надо выводить,например,надпись онлайн,рядом с ником пользователя,если он действительно в сети.
Можно ли адаптировать запрос таким образом,чтобы прописать его один раз,например,в файле с функциями,который инклюдится к каждой странице,а уже потом в любом месте сайта делать вывод статуса к нику пользователя?
Добавлено спустя 1 час 31 минуту 51 секунду:
Допустим у меня есть раздел,где пользователи оставили свои сообщения.В записях имеется id пользователя $ro['user_id']
Значит мой запрос должен быть :
Я так понял?
И как мне выводить статус?Я имею ввиду надпись или картинку,не суть.
Значит $id_cache это массив с идентификаторами пользователей?Получается что я должен присваивать ему эти идентификаторы?По умолчанию он пустая?
Если да,то по какому принципу я должен присваивать ей идентификаторы?Мне ведь надо выводить,например,надпись онлайн,рядом с ником пользователя,если он действительно в сети.
Можно ли адаптировать запрос таким образом,чтобы прописать его один раз,например,в файле с функциями,который инклюдится к каждой странице,а уже потом в любом месте сайта делать вывод статуса к нику пользователя?
Добавлено спустя 1 час 31 минуту 51 секунду:
Допустим у меня есть раздел,где пользователи оставили свои сообщения.В записях имеется id пользователя $ro['user_id']
Значит мой запрос должен быть :
Код: Выделить всё
$id_cache=$ro['user_id'];
// Generate online information for user
if ($config['load_onlinetrack'] && sizeof($id_cache))
{
$sql = 'SELECT session_user_id, MAX(session_time) as online_time, MIN(session_viewonline) AS viewonline
FROM ' . SESSIONS_TABLE . '
WHERE ' . $db->sql_in_set('session_user_id', $id_cache) . '
GROUP BY session_user_id';
$result = $db->sql_query($sql);
$update_time = $config['load_online_time'] * 60;
while ($row = $db->sql_fetchrow($result))
{
$user_cache[$row['session_user_id']]['online'] = (time() - $update_time < $row['online_time'] && (($row['viewonline']) || $auth->acl_get('u_viewonline'))) ? true : false;
}
$db->sql_freeresult($result);
}
unset($id_cache);
И как мне выводить статус?Я имею ввиду надпись или картинку,не суть.
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: [FAQ RC] Интеграция входа на конференцию с сайтом
Вы для самого пользователя это показывать будете, или для других тоже?
Отбирайте, напрмиер, все записи в таблице сессий за определенное время, в течение которого вы считаете пользователя находящимся в сети. В данном случае это время
Либо массив $id_cache заполняйте всеми существующими идентификаторами пользователей.
Отбирайте, напрмиер, все записи в таблице сессий за определенное время, в течение которого вы считаете пользователя находящимся в сети. В данном случае это время
Код: Выделить всё
session_time > (time() - $update_time)
-
- phpBB 1.4.0
- Сообщения: 39
- Стаж: 15 лет 10 месяцев
- Откуда: Иваново
Re: [FAQ RC] Интеграция входа на конференцию с сайтом
Мне надо отобразить для всех пользователей,кто посетил страницу,статус пользователя,написавшего коммент,чтобы знать,в сети он сейчас или нет.
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: [FAQ RC] Интеграция входа на конференцию с сайтом
Тогда заполняйте массив $id_cache списком идентификаторов авторов комментов, и выполняйте приведенный выше код.
-
- phpBB 1.4.0
- Сообщения: 39
- Стаж: 15 лет 10 месяцев
- Откуда: Иваново
Re: [FAQ RC] Интеграция входа на конференцию с сайтом
Я попытался сделать это более понятным для меня:
Но так ли я понял?Просто у меня все равно пишет OFFLINE,хотя я в сети.
Добавлено спустя 9 минут 32 секунды:
Видимо надо вот здесь переделать заменить на
Код: Выделить всё
$update_time = $config['load_online_time'] * 60;
$session_time = time() - $update_time;
$st_on = @mysql_query("select * from `phpbb_sessions` where `session_user_id`='".d_clean($ro['user_id'])."' and `session_time`='".d_clean($session_time)."'");
if (mysql_affected_rows() == 0) {$status='OFFLINE';}else{$status='ONLINE';}
Добавлено спустя 9 минут 32 секунды:
Видимо надо вот здесь переделать
Код: Выделить всё
and `session_time`='".d_clean($session_time)."'
Код: Выделить всё
and `session_time`>='".d_clean($session_time)."'
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: [FAQ RC] Интеграция входа на конференцию с сайтом
Вероятность такого события практически равна нулю. ПопробуйтеAllFuns писал(а):and `session_time`='".d_clean($session_time)
Код: Выделить всё
and `session_time`>'".d_clean($session_time)
-
- phpBB 1.4.0
- Сообщения: 39
- Стаж: 15 лет 10 месяцев
- Откуда: Иваново
Re: [FAQ RC] Интеграция входа на конференцию с сайтом
Спасибо.Изменил...Так по крайней мере,где мои записи отображает статус онлайн.Позже проверю на других пользователях.Спасибо.
-
- phpBB 1.0.0
- Сообщения: 1
- Стаж: 15 лет 2 месяца
Re: [FAQ RC] Интеграция входа на конференцию с сайтом
Добрый день.
Мне необходимо интегрировать форум, в некую самописную кмс (далее кмс).
Для этого я сделал таблицы phpbb_users, phpbb_sessions общими.
Но регистрация, авторизация, активация должна происходить по средствам кмс.
При регистрации нового пользователя я заношу данные в таблицу phpbb_users,
далее авторизируюсь на сайте, перехожу на форум, там я тоже авторизован.
Но вместо форумов надпись «На этом сайте нет форумов.» ответ как я понимаю кроется в этих полях (user_permissions, user_perm_from ).
Я задаю права на группу но это не помогает, а помогает только задавание ролей каждого юзера на каждую ветку, но это не выход.
Так же есть задача автоматического добавления тем на форуме из кмс.
Я делаю запись в таблице phpbb_topics добаляеться тема, но когда в нее захожу надпись «Запрошенной темы не существует»
Пожалуйста помогите разобраться
Мне необходимо интегрировать форум, в некую самописную кмс (далее кмс).
Для этого я сделал таблицы phpbb_users, phpbb_sessions общими.
Но регистрация, авторизация, активация должна происходить по средствам кмс.
При регистрации нового пользователя я заношу данные в таблицу phpbb_users,
далее авторизируюсь на сайте, перехожу на форум, там я тоже авторизован.
Но вместо форумов надпись «На этом сайте нет форумов.» ответ как я понимаю кроется в этих полях (user_permissions, user_perm_from ).
Я задаю права на группу но это не помогает, а помогает только задавание ролей каждого юзера на каждую ветку, но это не выход.
Так же есть задача автоматического добавления тем на форуме из кмс.
Я делаю запись в таблице phpbb_topics добаляеться тема, но когда в нее захожу надпись «Запрошенной темы не существует»
Пожалуйста помогите разобраться
-
- phpBB 1.0.0
- Сообщения: 2
- Стаж: 15 лет 1 месяц
Re: [FAQ RC] Интеграция входа на конференцию с сайтом
Здравствуйте.
Пишу небольшой скрипт по интеграции форума в рукописный сайт. У меня есть файл login.php.
Если пользователь есть в базе, он нажимает на кнопку "Войти" и попадает на форум. Если же такого пользователя нет в базе, я добавляю в базу users, после чего так же он входит на сайт.
функции phpbb, типа phpbb_hash инклудятся выше.
Суть проблемы: скажите где я накосячил, если при вводе имени на английском маленькими - ramirez, он нормально регистрирует и авторизует, а при вводе с использованием заглавных - RamireZ, или русских имен - Рамирез, рамирез, не входит на сайт - выдает ошибку что мол ввели имя неправильно.
Если регистрироваться стандартными средставами PHPBB3 - все нормально, через мой скрипт авторизует.
Проверял на имена из базы, выводил пользователя - имена сохранены нормально, пароли тоже. Средствами phpbb зарегестрированные моим скриптом польлзователи так же могут войти на сайт.
Пишу небольшой скрипт по интеграции форума в рукописный сайт. У меня есть файл login.php.
Код: Выделить всё
<?
$user=$_SESSION['user'];
$pass=$_SESSION['pass'];
//подключаемся к базе данных
$link=mysql_connect($DBSERVER, $DBUSER, $DBPASS) or die("Ошибка подключения");
mysql_select_db($DB,$link) or die("Не могу выбрать базу данных");
//ищем совпадающее имя
$r=mysql_query("SELECT * FROM `phpbb_users` WHERE username='".$user."'");
$ra=mysql_fetch_array($r);
//был ли зарегестрирован пользователь в БД
if($ra){
echo "<br>Такой пользователь есть!<br>";
echo $ra["username"];
}else{//если не зарегенстрирован, добавляем в БД нового пользователя
echo "<br>Нету!";
$username = $user;
$password = $pass;
$email_address = 'pomenay_email@mail.ru';
$timezone = '+5';
$language = 'ru';
$registration_time = time();
$user_inactive_time = time();
$password =phpbb_hash($password);
$email_hash=phpbb_email_hash($email_adress);
$username_clean = utf8_clean_string($username);
//записываем
$query ="INSERT INTO `phpbb_users`(username,username_clean,user_password,user_pass_convert,user_email,user_email_hash,group_id,user_type,user_timezone,user_regdate) VALUES('".$username."','".$username_clean."','".$password."','0','".$email_address."','".$email_hash."','2','0','5','".time()."')";
mysql_query($query);
}
?>
<div id="main">
<form id="login" method="post" action="msforum/ucp.php?mode=login">
<input type="hidden" name="username" value="<?php print $user;?>"/>
<input type="hidden"name="password" value="<?php print $pass;?>"/>
<input type="hidden" value="index.php" name="redirect"/>
<input type="submit" id="forum" value="Sign In" name="login"/>
</form>
</div>
</body>
</html>
функции phpbb, типа phpbb_hash инклудятся выше.
Суть проблемы: скажите где я накосячил, если при вводе имени на английском маленькими - ramirez, он нормально регистрирует и авторизует, а при вводе с использованием заглавных - RamireZ, или русских имен - Рамирез, рамирез, не входит на сайт - выдает ошибку что мол ввели имя неправильно.
Если регистрироваться стандартными средставами PHPBB3 - все нормально, через мой скрипт авторизует.
Проверял на имена из базы, выводил пользователя - имена сохранены нормально, пароли тоже. Средствами phpbb зарегестрированные моим скриптом польлзователи так же могут войти на сайт.