Регистрация на сайте с одновременной регистрацией на форуме
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
FladeX
- Former team member
- Сообщения: 1935
- Стаж: 19 лет 3 месяца
- Откуда: Саранск
- Благодарил (а): 7 раз
- Поблагодарили: 59 раз
rxu
да, кстати, я когда пароли переносил, заметил. В двойке используется md5, в олимпусе уже что-то другое.
Odina
к сожалению не могу как-либо прокомментировать это, потому что основной автор этой интеграции не я. Я лишь исправил несколько ошибок, протестировал и записал инструкцию согласно стандартам оформления модов phpBB.
да, кстати, я когда пароли переносил, заметил. В двойке используется md5, в олимпусе уже что-то другое.
Odina
к сожалению не могу как-либо прокомментировать это, потому что основной автор этой интеграции не я. Я лишь исправил несколько ошибок, протестировал и записал инструкцию согласно стандартам оформления модов phpBB.
//
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы
-
Odina
- phpBB 1.2.0
- Сообщения: 10
- Стаж: 18 лет 5 месяцев
- Откуда: Санк-Петербург
Я бы рада, но функция user_add тащит за собой приличное количество классов и других функцийrxu писал(а):Odina
Не занимайтесь самодеятельностью, тем более, что в phpBB3 хэш собственный, а не чистый md5.
includes/functions_user.php
function user_add
Предложенный вариант вполне рабочий, после небольшой модернизации. В результате регистрация происходит, пользователь успешно аутентифицируется форумом.
Добавлено спустя 2 часа 8 минут 31 секунду:
Попробовала воспользоваться функцией user_add
Код: Выделить всё
<?php
define('IN_PHPBB', true);
$phpbb_root_path='forum/';
$phpEx="php";
// Include files
include ("forum/config.php");
require($phpbb_root_path . 'includes/acm/acm_file.' . $phpEx);
require($phpbb_root_path . 'includes/cache.' . $phpEx);
//require($phpbb_root_path . 'includes/template.' . $phpEx);
require($phpbb_root_path . 'includes/session.' . $phpEx);
require($phpbb_root_path . 'includes/auth.' . $phpEx);
require($phpbb_root_path . 'includes/functions.' . $phpEx);
require($phpbb_root_path . 'includes/functions_content.' . $phpEx);
require($phpbb_root_path . 'includes/functions_user.' . $phpEx);
require($phpbb_root_path . 'includes/constants.' . $phpEx);
require($phpbb_root_path . 'includes/db/' . $dbms . '.' . $phpEx);
require($phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx);
// Set PHP error handler to ours
set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler');
// Instantiate some basic classes
$user = new user();
$auth = new auth();
//$template = new template();
$cache = new cache();
$db = new $sql_db();
// Connect to DB
$db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false, defined('PHPBB_DB_NEW_LINK') ? PHPBB_DB_NEW_LINK : false);
// We do not need this any longer, unset for safety purposes
unset($dbpasswd);
// Grab global variables, re-cache if necessary
$config = $cache->obtain_config();
// Add own hook handler
//require($phpbb_root_path . 'includes/hooks/index.' . $phpEx);
//$phpbb_hook = new phpbb_hook(array('exit_handler', 'phpbb_user_session_handler', 'append_sid', array('template', 'display')));
//foreach ($cache->obtain_hooks() as $hook)
//{
// @include($phpbb_root_path . 'includes/hooks/' . $hook . '.' . $phpEx);
//}
$user_row['username'] = "qwerty";
$user_row['user_password'] = phpbb_hash("qwerty");
$user_row['group_id'] = 2;
$user_row['user_email'] = "qwerty@qwerty.ru";
$user_row['user_type'] = 0;
user_add($user_row,false);
?>Добавлено спустя 2 минуты 6 секунд:
Перед отправкой данных, надо обязательно проверить наличие пользователя с таким логином или email, а то вылетает глобальная ошибка MySql.
Добавлено спустя 48 минут 18 секунд:
Начала раскручивать клубок, собирая все функции, запрашиваемые скриптом. Набрала на 1500 строк, плюнула, пускай будет так, как есть.
Код: Выделить всё
<?php
define('IN_PHPBB', true);
$phpbb_root_path='forum/';
$phpEx="php";
// Include files
require("forum/config.php");
require($phpbb_root_path . 'includes/utf/utf_normalizer.' . $phpEx);
require($phpbb_root_path . 'includes/acm/acm_file.' . $phpEx);
require($phpbb_root_path . 'includes/cache.' . $phpEx);
require($phpbb_root_path . 'includes/session.' . $phpEx);
require($phpbb_root_path . 'includes/auth.' . $phpEx);
require($phpbb_root_path . 'includes/functions.' . $phpEx);
require($phpbb_root_path . 'includes/functions_user.' . $phpEx);
require($phpbb_root_path . 'includes/constants.' . $phpEx);
require($phpbb_root_path . 'includes/db/' . $dbms . '.' . $phpEx);
require($phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx);
// Set PHP error handler to ours
set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler');
// Instantiate some basic classes
$user = new user();
$auth = new auth();
$cache = new cache();
$db = new $sql_db();
// Connect to DB
$db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false, defined('PHPBB_DB_NEW_LINK') ? PHPBB_DB_NEW_LINK : false);
// We do not need this any longer, unset for safety purposes
unset($dbpasswd);
// Grab global variables, re-cache if necessary
$config = $cache->obtain_config();
$user_row['username'] = "qwerty";
$user_row['user_password'] = phpbb_hash("qwerty");
$user_row['group_id'] = 2;
$user_row['user_email'] = "qwerty@qwerty.ru";
$user_row['user_type'] = 0;
user_add($user_row,false);
?>
Если толкнуть кувшин, из него плеснет тем, чем он наполнен...
-
rxu
- phpBB Guru

- Сообщения: 17272
- Стаж: 20 лет 4 месяца
- Откуда: Красноярск
- Благодарил (а): 632 раза
- Поблагодарили: 2412 раз
Odina
Вместо десятков ненужных строк кода, предшествующих вызову user_add, вы могли просто сделать
Вместо десятков ненужных строк кода, предшествующих вызову user_add, вы могли просто сделать
Код: Выделить всё
include($phpbb_root_path . 'common.' . $phpEx);-
Odina
- phpBB 1.2.0
- Сообщения: 10
- Стаж: 18 лет 5 месяцев
- Откуда: Санк-Петербург
-
FladeX
- Former team member
- Сообщения: 1935
- Стаж: 19 лет 3 месяца
- Откуда: Саранск
- Благодарил (а): 7 раз
- Поблагодарили: 59 раз
Каким образом обрабатывается bb-код в подписи пользователя? В базе данных в таблице users несколько полей, в одном хранится сам текст подписи, в другом bb-коды, причем в странном формате. Так вот, при интеграции и выводе подписи пользователя таким образом:
получается такой результат:
Вопрос - как правильно выводить подпись вне форума?
Код: Выделить всё
if($userinfo['user_sig'] != $user_sig) $db->sql_query("UPDATE ".$prefix."_users SET user_sig = '".$user_sig."' WHERE LOWER(user_name) = '".$user_name."'");Код: Выделить всё
Текст обычной толщины и [b:8nioq7rc]жирный![/b:8nioq7rc]//
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы
-
rxu
- phpBB Guru

- Сообщения: 17272
- Стаж: 20 лет 4 месяца
- Откуда: Красноярск
- Благодарил (а): 632 раза
- Поблагодарили: 2412 раз
Есть поля user_sig_bbcode_uid и user_sig_bbcode_bitfield, которые используются при парсинге ббкода.
Обработку можете посмотреть во viewtopic.php, блок начинается с комментария
Обработку можете посмотреть во viewtopic.php, блок начинается с комментария
Код: Выделить всё
// End signature parsing, only if needed-
FladeX
- Former team member
- Сообщения: 1935
- Стаж: 19 лет 3 месяца
- Откуда: Саранск
- Благодарил (а): 7 раз
- Поблагодарили: 59 раз
То есть вместо этого:
должно быть так:
верно?
Код: Выделить всё
if($userinfo['user_sig'] != $user_sig) $db->sql_query("UPDATE ".$prefix."_users SET user_sig = '".$user_sig."' WHERE LOWER(user_name) = '".$user_name."'");Код: Выделить всё
$user_sig = censor_text($user_sig);
$user_sig = bbcode_nl2br($user_sig);
$user_sig = smiley_text($user_sig);
if($userinfo['user_sig'] != $user_sig) $db->sql_query("UPDATE ".$prefix."_users SET user_sig = '".$user_sig."' WHERE LOWER(user_name) = '".$user_name."'");//
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы
-
FladeX
- Former team member
- Сообщения: 1935
- Стаж: 19 лет 3 месяца
- Откуда: Саранск
- Благодарил (а): 7 раз
- Поблагодарили: 59 раз
Скажите хотя бы где эти функции заданы? Не нашел я их...
//
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы

