Уважаемые пользователи!
В версии phpBB 3.3.13 обнаружены ошибки при использовании функции поиска по конференции.
Обсуждение проблемы и ее решения здесь Re: Вышел phpBB 3.3.13 [обсуждаем].
В связи с этим, не рекомендуется установка и обновление до phpBB 3.3.13.
Ошибка будет устранена разработчиками в версии phpBB 3.3.14.
Скачать предыдущую версию - phpBB 3.3.12 - можно здесь.
В версии phpBB 3.3.13 обнаружены ошибки при использовании функции поиска по конференции.
Обсуждение проблемы и ее решения здесь Re: Вышел phpBB 3.3.13 [обсуждаем].
В связи с этим, не рекомендуется установка и обновление до phpBB 3.3.13.
Ошибка будет устранена разработчиками в версии phpBB 3.3.14.
Скачать предыдущую версию - phpBB 3.3.12 - можно здесь.
Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
Авторизация на сайте и авторизация на форуме
-
- phpBB 1.0.0
- Сообщения: 6
- Стаж: 19 лет 8 месяцев
Авторизация на сайте и авторизация на форуме
Извините, может быть вопрос ламерский, но я бы хотел объединить авториацию на сайте и на форуме. При авторизации на сайте посылаются куки, которые потом читает форум.
Я хотел спросить у профессионалов: какие именно куки нужно, и что в них записать, чтобы форум потом при регистрации сессии все верно считал.
Спасибо.
Я хотел спросить у профессионалов: какие именно куки нужно, и что в них записать, чтобы форум потом при регистрации сессии все верно считал.
Спасибо.
Адекватный дизайн | [url=hhtp://printgraphics.ru]Типография, бесплатный заказ[/url]
-
- phpBB 1.2.0
- Сообщения: 17
- Стаж: 19 лет 8 месяцев
А я пробывал делать наоборот, использовать на сайте базу данных пользователей форума.
То есть логинился на форуме, а потом гулял по сайту с уже определенным пользователем.
Вот где-то такая схема была проверки на каждой странице, что требовали идентификации.
Кстати, может отцы подскажут, может я где накосячил в этой функции.
То есть логинился на форуме, а потом гулял по сайту с уже определенным пользователем.
Вот где-то такая схема была проверки на каждой странице, что требовали идентификации.
Кстати, может отцы подскажут, может я где накосячил в этой функции.
Код: Выделить всё
function Auth() {
// do not retrive twice
if (isset($GLOBALS['L_USER'])) return $GLOBALS['L_USER'];
$result = array();
$result['user_id'] = -1; // default we have anonymous user
// check for session
$cookieusersid = stripslashes($_COOKIE['phpbb2mysql_sid']);
// check for saved session
$cookiedata = unserialize(stripslashes($_COOKIE['phpbb2mysql_data']));
if (!empty($cookiedata) and !empty($cookieusersid)) {
// fetch active session
$query = "SELECT session_user_id FROM forum_sessions
WHERE session_id='$cookieusersid' AND `session_logged_in`=1 LIMIT 1";
$qresult = DBQuery($query);
if (mysql_num_rows($qresult)) { // heh, user have a really good sessions
$qdata = mysql_fetch_assoc($qresult);
$result['user_id'] = $qdata['session_user_id'];
};
mysql_free_result($qresult);
} else if (!empty($cookiedata) and !empty($cookiedata['autologinid'])) {
// remembered session, we must validate password
$cookiedata['autologinid'] = addslashes($cookiedata['autologinid']);
$cookiedata['userid'] = (int)$cookiedata['userid'];
$query = "SELECT `user_id` FROM forum_users
WHERE `user_id`='{$cookiedata['userid']}' AND
`user_password` = '{$cookiedata['autologinid']}' LIMIT 1";
$qresult = DBQuery($query);
if (mysql_num_rows($qresult)) { // nice, password is good
$qdata = mysql_fetch_assoc($qresult);
$result['user_id'] = $qdata['user_id'];
mysql_free_result($qresult);
};
};
// how retrieve data for current user
$query = "SELECT f.*, permissions.* FROM forum_users f
LEFT JOIN site_permissions permissions ON f.user_id = permissions.p_user_id
WHERE f.user_id='{$result['user_id']}' AND f.user_active = 1 LIMIT 1";
$qresult = DBQuery($query);
if (mysql_num_rows($qresult)) {
$result = mysql_fetch_assoc($qresult);
};
mysql_free_result($qresult);
// correct getted values if needed
if (empty($result['user_dateformat']) ) {
$result['user_dateformat'] = $GLOBALS['settings']['defaultdatetime'];
}
// Next line try to get ip address of user
// they use $HTTP_SERVER_VARS['REMOTE_ADDR'], $HTTP_ENV_VARS['REMOTE_ADDR']
// and if it failed $REMOTE_ADDR, $_SERVER["REMOTE_ADDR"]
$result['user_ip'] = encode_ip( (!empty($HTTP_SERVER_VARS['REMOTE_ADDR']) ) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] :
(( !empty($HTTP_ENV_VARS['REMOTE_ADDR'])) ? $HTTP_ENV_VARS['REMOTE_ADDR'] :
(((!empty($REMOTE_ADDR)) ? $REMOTE_ADDR : $_SERVER["REMOTE_ADDR"] ))) );
$GLOBALS['L_USER'] = $result;
return $result;
};
-
- phpBB 1.0.0
- Сообщения: 6
- Стаж: 19 лет 8 месяцев
К сожалению наоборот невозможно в моем случае.
Просто у меня на сайте своя авторизация и переделывать ее не хотелось бы, так как на ней много чего завязано, а форум установлен только что и необходимо, чтобы человек, авторизированный на сайте, не был бы вынужден логиниться снова, заходя в форум.
Я понял, что при авторизации на сайте надо послать 2 куки с именами phpbb2mysql_sid и phpbb2mysql_data.
В phpbb2mysql_sid, согласно коду форума записывается md5(uniqid($user_ip));
А в phpbb2mysql_data, если я правильно понял, нужно записать целый массив, преобразованный до строчки. Но что за данные в этом массиве? И как его преобразовывать перед записыванием в куки?
Просто у меня на сайте своя авторизация и переделывать ее не хотелось бы, так как на ней много чего завязано, а форум установлен только что и необходимо, чтобы человек, авторизированный на сайте, не был бы вынужден логиниться снова, заходя в форум.
Я понял, что при авторизации на сайте надо послать 2 куки с именами phpbb2mysql_sid и phpbb2mysql_data.
В phpbb2mysql_sid, согласно коду форума записывается md5(uniqid($user_ip));
А в phpbb2mysql_data, если я правильно понял, нужно записать целый массив, преобразованный до строчки. Но что за данные в этом массиве? И как его преобразовывать перед записыванием в куки?
Адекватный дизайн | [url=hhtp://printgraphics.ru]Типография, бесплатный заказ[/url]
-
- phpBB 1.2.0
- Сообщения: 17
- Стаж: 19 лет 8 месяцев
Descriptor
Нет, послать достаточно только "phpbb2mysql_sid", но тогда надо еще и сессию завести в таблице сессий.
а phpbb2mysql_data это если стояла галочка "Входить при каждом посещении", тогда phpbb сам начинает сессию, если где такое встречает.
и потом сам поставит "phpbb2mysql".
Мне кажется достаточно поставить одну куку.
насколько я помню, но могу ошибаться
Нет, послать достаточно только "phpbb2mysql_sid", но тогда надо еще и сессию завести в таблице сессий.
а phpbb2mysql_data это если стояла галочка "Входить при каждом посещении", тогда phpbb сам начинает сессию, если где такое встречает.
и потом сам поставит "phpbb2mysql".
Мне кажется достаточно поставить одну куку.
Код: Выделить всё
$phpbb2mysql = serialize(array('autologonid' => md5($user_password), 'userid'=> $user_id))
-
- phpBB 1.0.0
- Сообщения: 6
- Стаж: 19 лет 8 месяцев
Это если на сессиях делать. можнои на сессиях конечно. знать бы - как.[test] писал(а):Descriptor
Нет, послать достаточно только "phpbb2mysql_sid", но тогда надо еще и сессию завести в таблице сессий.
Вот этого я и хочу.[test] писал(а): а phpbb2mysql_data это если стояла галочка "Входить при каждом посещении", тогда phpbb сам начинает сессию, если где такое встречает.
Добавлено спустя 20 минут 11 секунд:
Ничего не выходит. Вот что я писал:
Код: Выделить всё
$sql1="SELECT user_id FROM phpbb_users WHERE main_user_id='$now_user_id' LIMIT 1";
$sql2=mysql_query($sql1);
$sql3=mysql_fetch_array($sql2);
$user_id=$sql3['user_id'];
$current_time=time();
$user_ip=$_SERVER['REMOTE_IP'];
$session_id = md5(uniqid($user_ip));
$current_time=time();
$sesssiondata = array();
$cookiename="phpbb2mysql_sid";
setcookie($cookiename, $session_id, $current_time + 31536000, "/", "", "0");
$sql1="SELECT user_password FROM phpbb_users WHERE main_user_id='$now_user_id'";
$sql2=mysql_query($sql1);
$sql3=mysql_fetch_array($sql2);
$user_password=$sql3['user_password'];
$sessiondata['autologinid']=$user_password;
$cookiename="phpbb2mysql_data";
setcookie($cookiename, serialize($sessiondata), $current_time + 31536000, "/", "", "0");
$phpbb2mysql = serialize(array('autologonid' => $user_password, 'userid'=> $user_id));
setcookie("phpbb2mysql", $phpbb2mysql, $current_time + 31536000, "/", "", "0");
Адекватный дизайн | [url=hhtp://printgraphics.ru]Типография, бесплатный заказ[/url]
-
- phpBB 1.0.0
- Сообщения: 1
- Стаж: 19 лет 8 месяцев
Нет такого поля, main_user_id, в таблице phpbb_users, посмотри повнимательнее.Descriptor писал(а): $sql1="SELECT user_id FROM phpbb_users WHERE main_user_id='$now_user_id' LIMIT 1";
$sql2=mysql_query($sql1);
$sql3=mysql_fetch_array($sql2);
$user_id=$sql3['user_id'];
$current_time=time();
$user_ip=$_SERVER['REMOTE_IP'];
$session_id = md5(uniqid($user_ip));
$current_time=time();
$sesssiondata = array();
$cookiename="phpbb2mysql_sid";
setcookie($cookiename, $session_id, $current_time + 31536000, "/", "", "0");
$sql1="SELECT user_password FROM phpbb_users WHERE main_user_id='$now_user_id'";
$sql2=mysql_query($sql1);
$sql3=mysql_fetch_array($sql2);
$user_password=$sql3['user_password'];
$sessiondata['autologinid']=$user_password;
$cookiename="phpbb2mysql_data";
setcookie($cookiename, serialize($sessiondata), $current_time + 31536000, "/", "", "0");
$phpbb2mysql = serialize(array('autologonid' => $user_password, 'userid'=> $user_id));
setcookie("phpbb2mysql", $phpbb2mysql, $current_time + 31536000, "/", "", "0");
Последний раз редактировалось black_cat 08.02.2005 11:31, всего редактировалось 1 раз.
-
- phpBB 1.2.0
- Сообщения: 17
- Стаж: 19 лет 8 месяцев
-
- phpBB 1.0.0
- Сообщения: 6
- Стаж: 19 лет 8 месяцев
Такое поле есть. Я его добавил и записываю туда то, что мне нужно, чтобы юзер нужный выделялся.
Я послал куки _data, но форум их не распознает все равно.
Я послал куки _data, но форум их не распознает все равно.
Адекватный дизайн | [url=hhtp://printgraphics.ru]Типография, бесплатный заказ[/url]
-
- phpBB 2.0.4
- Сообщения: 404
- Стаж: 20 лет
- Откуда: оттуда
Все он распознает, просто от шибко резвых в форуме стоит защита, вот она и срабатывает.Я послал куки _data, но форум их не распознает все равно.
Значит так... Тем, кто хочет, чтобы после авторизации на сайте бродить по форуму, однозначно нужно создавать новую сессию и прописывать в куки номер сессии.
Внимательно читаем function session_begin
в файле includes/sessions.php
Тем, кто хочет сделать интеграцию:
Код: Выделить всё
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_ALBUM);
init_userprefs($userdata);
//
// End session management
//
-
- phpBB 1.0.0
- Сообщения: 6
- Стаж: 19 лет 8 месяцев
То есть вставки этого кода после авторизации на сайте достаточно для заведения сесии? И соответствующая запись в таблице сесиий phpbb появится?
Вроде бы нет. Если так начинать сессию - то начнется сессия _анонимного_ юзера. А нужно - уже залогиненного.
Вроде бы нет. Если так начинать сессию - то начнется сессия _анонимного_ юзера. А нужно - уже залогиненного.
Последний раз редактировалось Descriptor 09.02.2005 22:55, всего редактировалось 1 раз.
Адекватный дизайн | [url=hhtp://printgraphics.ru]Типография, бесплатный заказ[/url]
-
- phpBB 1.0.0
- Сообщения: 3
- Стаж: 19 лет 8 месяцев
Это все работает, если убрать все и оставить только HTML код, но у меня есть ещё и подключаемые(методом include) модули от CuteNews.
Так вот что я получаю
Как бы от этого избавиться??
Так вот что я получаю
Код: Выделить всё
Warning: htmlspecialchars() expects parameter 1 to be string, object given in C:\server\www\Natali\news\inc\functions.inc.php on line 26
-
- phpBB 1.0.0
- Сообщения: 4
- Стаж: 19 лет 8 месяцев
- Откуда: Орел
Товарищи прошу прошения если вопрос ламерский
После вставки следующего кода
установленные переменны сбрасываются
После вставки следующего кода
Код: Выделить всё
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_ALBUM);
init_userprefs($userdata);
//
// End session management
//
-
- phpBB 1.2.0
- Сообщения: 10
- Стаж: 18 лет 6 месяцев
Я думаю, может сделать так? Ничего не делать на сайте, а все изменения внести в програмный код форума.
В файле, "формирующем" заголовок страницы, прописать, например если есть кука User (которая ставится, при авторизации на сайте), то отправлять на страницу Входа.
Но, на странице входа прописать, чтобы он брал Логин и Пароль не из формы, а из БД, относительно куки User. Т.е. форма появляться не будет, сервер сам подставит значения Логина и Пароля и отправит пользователя обратно на страницу, но только уже авторизованным.
Как Вы думаете, сработает это?
В файле, "формирующем" заголовок страницы, прописать, например если есть кука User (которая ставится, при авторизации на сайте), то отправлять на страницу Входа.
Но, на странице входа прописать, чтобы он брал Логин и Пароль не из формы, а из БД, относительно куки User. Т.е. форма появляться не будет, сервер сам подставит значения Логина и Пароля и отправит пользователя обратно на страницу, но только уже авторизованным.
Как Вы думаете, сработает это?
Система АЗК - Система автоматического заполнения квитанций.
-
- phpBB 1.0.0
- Сообщения: 1
- Стаж: 17 лет 9 месяцев
-
- phpBB 1.0.0
- Сообщения: 1
- Стаж: 17 лет 9 месяцев
Авторизация на сайте давно уже реализована (средствами phpBB ессно). теперь проблема в следующем:
у сайта есть субдомены, меню у сайта и субдоменов одно. как изменить область видимости кук, чтобы юзер, вошедший на основной сайт, в то же время считался "зарегеным" и на субдоменах?
у сайта есть субдомены, меню у сайта и субдоменов одно. как изменить область видимости кук, чтобы юзер, вошедший на основной сайт, в то же время считался "зарегеным" и на субдоменах?
Хорошо там, где мы есть, а мы есть везде!
www.zaural.org - о г.Кургане и его предприятиях
www.ancestor.ru - Предки руси
www.zaural.org - о г.Кургане и его предприятиях
www.ancestor.ru - Предки руси