Пропустить

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

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).

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

Сообщение construktor » 25.01.2010 19:00

Eсть форум на forum.mysite.ru и каталог на catalog.mysite.ru Общую авторизацию поставил без проблем. Стоит задача - предоставить возможность пользователям зарегистрироваться на форуме при этом не покидая каталога. Как это можно реализовать?

construktor
phpBB 1.0.0
 
Сообщения: 1
Зарегистрирован: 12.11.2009 12:16
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение Zerox » 26.01.2010 14:30

Здравствуйте. У меня что то с кодировкой. Посмотрите www.joker-main.com/login.php
стало это сразу после того, как я добавил дизайн require'ами...

Zerox
phpBB 1.0.0
 
Сообщения: 1
Зарегистрирован: 26.01.2010 14:26
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение crash » 26.01.2010 14:32

форум работает в utf-8
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
Аватара пользователя
crash
Former team member
 
Сообщения: 6619
Зарегистрирован: 07.07.2004 16:12
Откуда: Бердск
Благодарил (а): 0 раз.
Поблагодарили: 16 раз.

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

Сообщение OTSHELNIK » 08.02.2010 19:33

а где можно найти подобный скрипт как из первого поста,но только с регистрацией нового пользователя?

OTSHELNIK
phpBB 1.0.0
 
Сообщения: 1
Зарегистрирован: 08.02.2010 16:08
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение AllFuns » 23.02.2010 3:16

Подскажите пожалуйста 2 момента по интеграции:
1. Будет ли обновляться статус онлайн для пользователя,если он не заходит на сам форум,а перемещается только на сайте?
2.Можно ли сделать вывод данного статуса как то на самом сайте?
Аватара пользователя
AllFuns
phpBB 1.2.0
 
Сообщения: 16
Зарегистрирован: 21.06.2009 19:16
Откуда: Иваново
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение rxu » 23.02.2010 6:40

AllFuns писал(а):Будет ли обновляться статус онлайн для пользователя,если он не заходит на сам форум,а перемещается только на сайте?

Да.
AllFuns писал(а):Можно ли сделать вывод данного статуса как то на самом сайте?

Теоретически - да, но практически есть варианты. На примере viewtopic.php
// 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);

Здесь $id_cache - массив идентификаторов пользователей, онлайн-информацию по которым нужно вывести.
Изображение
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
 
Сообщения: 7316
Зарегистрирован: 12.05.2006 17:16
Откуда: Красноярск
Благодарил (а): 2 раз.
Поблагодарили: 251 раз.

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

Сообщение AllFuns » 23.02.2010 15:03

Прошу прощения.Хотелось бы уточнить:
Значит $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);

Я так понял?
И как мне выводить статус?Я имею ввиду надпись или картинку,не суть.
Аватара пользователя
AllFuns
phpBB 1.2.0
 
Сообщения: 16
Зарегистрирован: 21.06.2009 19:16
Откуда: Иваново
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение rxu » 23.02.2010 16:41

Вы для самого пользователя это показывать будете, или для других тоже?
Отбирайте, напрмиер, все записи в таблице сессий за определенное время, в течение которого вы считаете пользователя находящимся в сети. В данном случае это время
session_time > (time() - $update_time)

Либо массив $id_cache заполняйте всеми существующими идентификаторами пользователей.
Изображение
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
 
Сообщения: 7316
Зарегистрирован: 12.05.2006 17:16
Откуда: Красноярск
Благодарил (а): 2 раз.
Поблагодарили: 251 раз.

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

Сообщение AllFuns » 23.02.2010 16:43

Мне надо отобразить для всех пользователей,кто посетил страницу,статус пользователя,написавшего коммент,чтобы знать,в сети он сейчас или нет.
Аватара пользователя
AllFuns
phpBB 1.2.0
 
Сообщения: 16
Зарегистрирован: 21.06.2009 19:16
Откуда: Иваново
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение rxu » 23.02.2010 17:08

Тогда заполняйте массив $id_cache списком идентификаторов авторов комментов, и выполняйте приведенный выше код.
Изображение
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
 
Сообщения: 7316
Зарегистрирован: 12.05.2006 17:16
Откуда: Красноярск
Благодарил (а): 2 раз.
Поблагодарили: 251 раз.

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

Сообщение AllFuns » 23.02.2010 17:09

Я попытался сделать это более понятным для меня:
$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';}

Но так ли я понял?Просто у меня все равно пишет OFFLINE,хотя я в сети.

Добавлено спустя 9 минут 32 секунды:
Видимо надо вот здесь переделать
and `session_time`='".d_clean($session_time)."'
заменить на
and `session_time`>='".d_clean($session_time)."'
Аватара пользователя
AllFuns
phpBB 1.2.0
 
Сообщения: 16
Зарегистрирован: 21.06.2009 19:16
Откуда: Иваново
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение rxu » 23.02.2010 17:19

AllFuns писал(а):and `session_time`='".d_clean($session_time)

Вероятность такого события практически равна нулю. Попробуйте
and `session_time`>'".d_clean($session_time)
Изображение
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
 
Сообщения: 7316
Зарегистрирован: 12.05.2006 17:16
Откуда: Красноярск
Благодарил (а): 2 раз.
Поблагодарили: 251 раз.

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

Сообщение AllFuns » 23.02.2010 17:26

Спасибо.Изменил...Так по крайней мере,где мои записи отображает статус онлайн.Позже проверю на других пользователях.Спасибо.
Аватара пользователя
AllFuns
phpBB 1.2.0
 
Сообщения: 16
Зарегистрирован: 21.06.2009 19:16
Откуда: Иваново
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение takoy » 03.03.2010 15:03

Добрый день.
Мне необходимо интегрировать форум, в некую самописную кмс (далее кмс).
Для этого я сделал таблицы phpbb_users, phpbb_sessions общими.
Но регистрация, авторизация, активация должна происходить по средствам кмс.
При регистрации нового пользователя я заношу данные в таблицу phpbb_users,
далее авторизируюсь на сайте, перехожу на форум, там я тоже авторизован.
Но вместо форумов надпись «На этом сайте нет форумов.» ответ как я понимаю кроется в этих полях (user_permissions, user_perm_from ).
Я задаю права на группу но это не помогает, а помогает только задавание ролей каждого юзера на каждую ветку, но это не выход.
Так же есть задача автоматического добавления тем на форуме из кмс.
Я делаю запись в таблице phpbb_topics добаляеться тема, но когда в нее захожу надпись «Запрошенной темы не существует»
Пожалуйста помогите разобраться

takoy
phpBB 1.0.0
 
Сообщения: 1
Зарегистрирован: 01.03.2010 11:43
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение RamireZ » 06.03.2010 8:59

Здравствуйте.
Пишу небольшой скрипт по интеграции форума в рукописный сайт. У меня есть файл 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>

Если пользователь есть в базе, он нажимает на кнопку "Войти" и попадает на форум. Если же такого пользователя нет в базе, я добавляю в базу users, после чего так же он входит на сайт.
функции phpbb, типа phpbb_hash инклудятся выше.
Суть проблемы: скажите где я накосячил, если при вводе имени на английском маленькими - ramirez, он нормально регистрирует и авторизует, а при вводе с использованием заглавных - RamireZ, или русских имен - Рамирез, рамирез, не входит на сайт - выдает ошибку что мол ввели имя неправильно.
Если регистрироваться стандартными средставами PHPBB3 - все нормально, через мой скрипт авторизует.
Проверял на имена из базы, выводил пользователя - имена сохранены нормально, пароли тоже. Средствами phpbb зарегестрированные моим скриптом польлзователи так же могут войти на сайт.

RamireZ
phpBB 1.0.0
 
Сообщения: 2
Зарегистрирован: 06.03.2010 8:30
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Пред.След.

Вернуться в FAQ (phpBB 3.0.x)

 

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

Кто сейчас на конференции

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

Бессрочный конкурс phpBB-ориентированных материалов
FastVPS — надёжный и доступный хостинг для phpBB
Изображение