Регистрация на сайте с одновременной регистрацией на форуме
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
Odina
- phpBB 1.2.0
- Сообщения: 10
- Стаж: 18 лет 5 месяцев
- Откуда: Санк-Петербург
Регистрация на сайте с одновременной регистрацией на форуме
Мне необходимо сделать так, чтобы при регистрации на сайте происходила регистрация на форуме.
Насколько я поняла, мне необходимо добавить данные в таблицу users. При этом необходимо внести данные в следующие поля:
group_id - 2
user_ip - IP при регистрации
user_regdate - текущий UNIX timestamp
username - Логин
username_clean - Логин
user_password - зашифрованный пароль
user_passchg - текущий UNIX timestamp
user_email - e-mail
user_email_hash - ???
user_lastmark - текущий UNIX timestamp
user_lang - ru
user_style - 1
user_form_salt - ???
Остальные поля можно оставить со значениями по-умолчанию.
Кто-нибудь знает формулу шифровки пароля, для чего используются поля user_email_hash и user_form_salt и что необходимо в них забить?
Необходимо ли еще добавление информации в другие таблицы форума?
Насколько я поняла, мне необходимо добавить данные в таблицу users. При этом необходимо внести данные в следующие поля:
group_id - 2
user_ip - IP при регистрации
user_regdate - текущий UNIX timestamp
username - Логин
username_clean - Логин
user_password - зашифрованный пароль
user_passchg - текущий UNIX timestamp
user_email - e-mail
user_email_hash - ???
user_lastmark - текущий UNIX timestamp
user_lang - ru
user_style - 1
user_form_salt - ???
Остальные поля можно оставить со значениями по-умолчанию.
Кто-нибудь знает формулу шифровки пароля, для чего используются поля user_email_hash и user_form_salt и что необходимо в них забить?
Необходимо ли еще добавление информации в другие таблицы форума?
-
FladeX
- Former team member
- Сообщения: 1935
- Стаж: 19 лет 3 месяца
- Откуда: Саранск
- Благодарил (а): 7 раз
- Поблагодарили: 59 раз
Советую заглянуть в раздел FAQ
//
// 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 для форумов | форум про форумы
-
Всеслав Чародей
- phpBB 1.0.0
- Сообщения: 8
- Стаж: 18 лет 5 месяцев
-
Odina
- phpBB 1.2.0
- Сообщения: 10
- Стаж: 18 лет 5 месяцев
- Откуда: Санк-Петербург
Мне необходимо чтобы регистрация происходила на сайте, а в таблицу форума забивались данные. Незарегистрированные на сайте пользователи не видят форум.
Движок сайта на стадии написания и именно такие условия поставлены заказчиком.
В разделе FAQ я не нашла темы, в которой есть ответы на мои вопросы. Там есть тема об интеграции авторизации, а мне нужно интегрировать регистрацию.
Движок сайта на стадии написания и именно такие условия поставлены заказчиком.
В разделе FAQ я не нашла темы, в которой есть ответы на мои вопросы. Там есть тема об интеграции авторизации, а мне нужно интегрировать регистрацию.
Если толкнуть кувшин, из него плеснет тем, чем он наполнен...
-
FladeX
- Former team member
- Сообщения: 1935
- Стаж: 19 лет 3 месяца
- Откуда: Саранск
- Благодарил (а): 7 раз
- Поблагодарили: 59 раз
Odina
http://scarydolls.ru/ - интеграция двойки
http://ageof.ru/ - интеграция тройки (еще не до конца сделал, но регистрация + авторизация совместная).
Поэтому если с движком не определились, советую выбрать Slaed cms (примеры выше), e107 (есть плагин интеграции, я его переводил на русский язык). Также если не ошибаюсь Joomla поддерживает олимпус.
http://scarydolls.ru/ - интеграция двойки
http://ageof.ru/ - интеграция тройки (еще не до конца сделал, но регистрация + авторизация совместная).
Поэтому если с движком не определились, советую выбрать Slaed cms (примеры выше), e107 (есть плагин интеграции, я его переводил на русский язык). Также если не ошибаюсь Joomla поддерживает олимпус.
//
// 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 месяцев
- Откуда: Санк-Петербург
-
FladeX
- Former team member
- Сообщения: 1935
- Стаж: 19 лет 3 месяца
- Откуда: Саранск
- Благодарил (а): 7 раз
- Поблагодарили: 59 раз
Odina
посмотрите тему про совместный логин, возможно наведет на мысли...
ссылка
Или в моей теме про интеграцию с Slaed посмотреть как сделана регистрация совместная.
посмотрите тему про совместный логин, возможно наведет на мысли...
ссылка
Или в моей теме про интеграцию с Slaed посмотреть как сделана регистрация совместная.
//
// 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 месяцев
- Откуда: Санк-Петербург
-
FladeX
- Former team member
- Сообщения: 1935
- Стаж: 19 лет 3 месяца
- Откуда: Саранск
- Благодарил (а): 7 раз
- Поблагодарили: 59 раз
common.php + includes/constans.php, includes/function_*.php
//
// 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 месяцев
- Откуда: Санк-Петербург
FladeX,
Каким образом функция видит массив config?
Код: Выделить всё
//кусок кода из phpbb3, который отвечает за генерирование ключей сессий и паролей
function unique_id()
{
$val = $config['rand_seed'] . microtime();
$val = md5($val);
$config['rand_seed'] = md5($config['rand_seed'] . $val . $extra);
return substr($val, 4, 16);
}Если толкнуть кувшин, из него плеснет тем, чем он наполнен...
-
FladeX
- Former team member
- Сообщения: 1935
- Стаж: 19 лет 3 месяца
- Откуда: Саранск
- Благодарил (а): 7 раз
- Поблагодарили: 59 раз
Odina
Код: Выделить всё
if ($forum == "phpbb3"){
include_once("forum/config.php");
$result = $db->sql_query("SELECT * FROM ".$table_prefix."config");
while ($row = $db->sql_fetchrow($result)) {
$board_config[$row['config_name']] = $row['config_value'];
}//
// 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 месяцев
- Откуда: Санк-Петербург
Да, но функция увидит этот массив, только если его в функции объявить глобальным. Разве не так?
Добавлено спустя 5 минут 7 секунд:
Код: Выделить всё
//кусок кода из phpbb3, который отвечает за генерирование ключей сессий и паролей
function unique_id()
{
global $config;
$val = $config['rand_seed'] . microtime();
$val = md5($val);
$config['rand_seed'] = md5($config['rand_seed'] . $val . $extra);
return substr($val, 4, 16);
}Да и здесь забивается массив board_config, а функция использует массив config. Массив config забивается в скрипте common.phpFladeX писал(а):OdinaКод: Выделить всё
if ($forum == "phpbb3"){ include_once("forum/config.php"); $result = $db->sql_query("SELECT * FROM ".$table_prefix."config"); while ($row = $db->sql_fetchrow($result)) { $board_config[$row['config_name']] = $row['config_value']; }
Если толкнуть кувшин, из него плеснет тем, чем он наполнен...
-
FladeX
- Former team member
- Сообщения: 1935
- Стаж: 19 лет 3 месяца
- Откуда: Саранск
- Благодарил (а): 7 раз
- Поблагодарили: 59 раз
Odina
это лишнее имхо. Тот вариант что я выложил - рабочий. Проверялось мною и еще несколькими юзерами, все в порядке, все работает.
это лишнее имхо. Тот вариант что я выложил - рабочий. Проверялось мною и еще несколькими юзерами, все в порядке, все работает.
//
// 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 месяцев
- Откуда: Санк-Петербург
Это ошибка, но не критичная.
А работает потому что функция md5 все равно генерирует код, ей по барабану, что ей передают.
Добавлено спустя 17 минут 30 секунд:
А вот это уже критичная ошибка:
Что произойдет, если функция getenv("REMOTE_ADDR") вернет false?
Произойдет сбой в записи, функция sql_query вернет false, а скрипт побежит дальше, не отработав эту ошибку...
Добавлено спустя 10 минут 57 секунд:
Вот в этот запрос вместо 2 должно забиваться значение $user_def_group
Это не критично, пока у Вас группа пользователей имеет group_id = 2. Если group_id будет другой, то произойдет сбой.
А работает потому что функция md5 все равно генерирует код, ей по барабану, что ей передают.
Добавлено спустя 17 минут 30 секунд:
А вот это уже критичная ошибка:
Код: Выделить всё
function new_user($user_name, $user_password, $user_email) {
global $db, $table_prefix, $board_config, $user_def_group;
$user_name_clean = strtolower(str_replace('|', '|', $user_name));
if(strlen($user_password) != 34){
$phpbb_password = phpbb_hash($user_password);
} else {
$phpbb_password = $user_password;
}
$email_hash = crc32(strtolower($user_email)).strlen($user_email);
$form_salt = unique_id();
$user_ip = getenv("REMOTE_ADDR");
$num_users_new = $board_config['num_users'] + 1;
list($last_id) = $db->sql_fetchrow($db->sql_query("SELECT user_id FROM ".$table_prefix."users ORDER BY user_id DESC LIMIT 1"));
$reg_id = $last_id + 1;
$db->sql_query("INSERT INTO ".$table_prefix."users (user_id, group_id, user_ip, user_regdate, username, username_clean, user_password, user_passchg, user_email, user_email_hash, user_lang, user_dateformat, user_form_salt) VALUES ('".$reg_id."', '".$user_def_group."', '".$user_ip."', '".time()."', '".$user_name."', '".$user_name_clean."', '".$phpbb_password."', '".time()."', '".$user_email."', '".$email_hash."', '".$board_config['default_lang']."', '".$board_config['default_dateformat']."', '".$form_salt."')");
$db->sql_query("INSERT INTO ".$table_prefix."user_group (group_id, user_id, group_leader, user_pending) VALUES ('2', '".$reg_id."', '0', '0')");
$db->sql_query("UPDATE ".$table_prefix."config SET config_value = '".$reg_id."' WHERE config_name = 'newest_user_id'");
$db->sql_query("UPDATE ".$table_prefix."config SET config_value = '".$user_name."' WHERE config_name = 'newest_username'");
$db->sql_query("UPDATE ".$table_prefix."config SET config_value = '".$num_users_new."' WHERE config_name = 'num_users'");
}Произойдет сбой в записи, функция sql_query вернет false, а скрипт побежит дальше, не отработав эту ошибку...
Добавлено спустя 10 минут 57 секунд:
Вот в этот запрос вместо 2 должно забиваться значение $user_def_group
Код: Выделить всё
$db->sql_query("INSERT INTO ".$table_prefix."user_group (group_id, user_id, group_leader, user_pending) VALUES ('2', '".$reg_id."', '0', '0')");Если толкнуть кувшин, из него плеснет тем, чем он наполнен...


