Пропустить

Объединение регистрации

Вопросы без привязки к версии. Установлена авточистка (2 года).
Свернуть Развернуть Правила форума Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

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

Объединение регистрации

Сообщение Soldier Ghost » 01.12.2009 17:14

Всем привет, столкнулся с такой проблемой нужно сделать регистрацию единой т.е. регистрируются на сайте заодно аккаунт создаётся на форуме.
Подскажите пжл какие таблицы и поля затрагиваются в базе phpBB 3.0.6 при регистрации и метод хеширования пароля, Хочу всё это добавить через INSERT INTO на сайте.

Soldier Ghost
phpBB 1.4.0
 
Сообщения: 30
Зарегистрирован: 23.02.2008 18:34
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Объединение регистрации

Сообщение MAzZY » 01.12.2009 17:19

topic18700.html

Если какой-то распространенный движок, то, скорее всего, есть мост
Аватара пользователя
MAzZY
Former team member
 
Сообщения: 2952
Зарегистрирован: 14.05.2005 23:43
Благодарил (а): 61 раз.
Поблагодарили: 54 раз.
Предупреждения: 1

Re: Объединение регистрации

Сообщение Soldier Ghost » 01.12.2009 17:32

Нет движок не распространённый, самописный )

Добавлено спустя 2 часа 44 минуты 46 секунд:
Прошу прощение за такой вопрос :) может подскажите какойнибудь движок форума с которым это будет легче реализовать?

Soldier Ghost
phpBB 1.4.0
 
Сообщения: 30
Зарегистрирован: 23.02.2008 18:34
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Объединение регистрации

Сообщение MAzZY » 01.12.2009 20:56

Soldier Ghost писал(а):может подскажите какойнибудь движок форума с которым это будет легче реализовать?

Любой, у которого есть мост.

Моя ссылка Вам совсем не помогла?
Аватара пользователя
MAzZY
Former team member
 
Сообщения: 2952
Зарегистрирован: 14.05.2005 23:43
Благодарил (а): 61 раз.
Поблагодарили: 54 раз.
Предупреждения: 1

Re: Объединение регистрации

Сообщение Soldier Ghost » 01.12.2009 21:22

К сожалению нет, там авторизация и есть один способ но если использовать базу пользователей форума и сайта одну в общем объединённую, но мне так не подходит.

Добавлено спустя 26 секунд:
Мне просто нужен запрос :(

Soldier Ghost
phpBB 1.4.0
 
Сообщения: 30
Зарегистрирован: 23.02.2008 18:34
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Объединение регистрации

Сообщение nissin » 01.12.2009 21:42

Тут приходил один товарищ, тоже пытался запросом пользователей добавлять.
Поищите по форуму.
Всё повторяется. nurlan.info
Аватара пользователя
nissin
Поддержка
Поддержка
 
Сообщения: 1381
Зарегистрирован: 16.12.2007 15:01
Откуда: Павлодар
Благодарил (а): 1 раз.
Поблагодарили: 124 раз.

Re: Объединение регистрации

Сообщение Soldier Ghost » 02.12.2009 4:00

nissin писал(а):Тут приходил один товарищ, тоже пытался запросом пользователей добавлять.
Поищите по форуму.

Да кажется я его нашёл он дал ссылку на статью в ЖЖ, но мой гавнопровайдер закрыл доступ к этому сайту что-то они там не поделили.
Помогите пжл пройдите по ссылке http://andrvm.livejournal.com/3855.html скопируйте пжл статью и можете сдесь выложить или в файл отдельный и в приложениях выложить или мне в ЛС буду очень благодарен

Soldier Ghost
phpBB 1.4.0
 
Сообщения: 30
Зарегистрирован: 23.02.2008 18:34
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Объединение регистрации

Сообщение MAzZY » 02.12.2009 10:45

Вроде, неплохая статья.
Может нам её на сайт добавить?

Интеграция форума phpbb с сайтом
integration.txt
(16.69 КБ) Скачиваний: 99
Аватара пользователя
MAzZY
Former team member
 
Сообщения: 2952
Зарегистрирован: 14.05.2005 23:43
Благодарил (а): 61 раз.
Поблагодарили: 54 раз.
Предупреждения: 1

Re: Объединение регистрации

Сообщение nissin » 02.12.2009 11:16

Там, как минимум username_clean неправильно формируется.
В остальные подробности не вдавался.
Всё повторяется. nurlan.info
Аватара пользователя
nissin
Поддержка
Поддержка
 
Сообщения: 1381
Зарегистрирован: 16.12.2007 15:01
Откуда: Павлодар
Благодарил (а): 1 раз.
Поблагодарили: 124 раз.

Re: Объединение регистрации

Сообщение Soldier Ghost » 02.12.2009 12:47

MAzZY писал(а):Вроде, неплохая статья.
Может нам её на сайт добавить?

Интеграция форума phpbb с сайтом
integration.txt

Спасибо большое.
Как сделаю отпишусь

Добавлено спустя 2 часа 22 минуты 40 секунд:
В общем добился своего сделал общую регистрацию, статья очень помогла но были свои проблемы с ней пришлось немного изменить запросы и условия ниже код с комментариями не судите строго за гавнокод я знаком только со структурным программированием на php :)
Для начала создаём отдельный файл в который мы положим все нужные функции:
registr_phpbb_func.php
function phpbb_hash($password)
	{
	$itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';

	$random_state = unique_id();
	$random = '';
	$count = 6;

	if (($fh = @fopen('/dev/urandom', 'rb')))
	{
		$random = fread($fh, $count);
		fclose($fh);
	}

	if (strlen($random) < $count)
	{
		$random = '';

		for ($i = 0; $i < $count; $i += 16)
		{
			$random_state = md5(unique_id() . $random_state);
			$random .= pack('H*', md5($random_state));
		}
		$random = substr($random, 0, $count);
	}

	$hash = _hash_crypt_private($password, _hash_gensalt_private($random, $itoa64), $itoa64);

	if (strlen($hash) == 34)
	{
		return $hash;
	}

	return md5($password);
	}
	
	function phpbb_check_hash($password, $hash)
	{
	$itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
	if (strlen($hash) == 34)
	{
		return (_hash_crypt_private($password, $hash, $itoa64) === $hash) ? true : false;
	}

	return (md5($password) === $hash) ? true : false;
	}
	
	function _hash_gensalt_private($input, &$itoa64, $iteration_count_log2 = 6)
	{
	if ($iteration_count_log2 < 4 || $iteration_count_log2 > 31)
	{
		$iteration_count_log2 = 8;
	}

	$output = '$H$';
	$output .= $itoa64[min($iteration_count_log2 + ((PHP_VERSION >= 5) ? 5 : 3), 30)];
	$output .= _hash_encode64($input, 6, $itoa64);

	return $output;
	}
	
	function _hash_encode64($input, $count, &$itoa64)
	{
	$output = '';
	$i = 0;

	do
	{
		$value = ord($input[$i++]);
		$output .= $itoa64[$value & 0x3f];

		if ($i < $count)
		{
			$value |= ord($input[$i]) << 8;
		}

		$output .= $itoa64[($value >> 6) & 0x3f];

		if ($i++ >= $count)
		{
			break;
		}

		if ($i < $count)
		{
			$value |= ord($input[$i]) << 16;
		}

		$output .= $itoa64[($value >> 12) & 0x3f];

		if ($i++ >= $count)
		{
			break;
		}

		$output .= $itoa64[($value >> 18) & 0x3f];
	}
	while ($i < $count);

	return $output;
	}
	
	function _hash_crypt_private($password, $setting, &$itoa64)
	{
	$output = '*';

	// Check for correct hash
	if (substr($setting, 0, 3) != '$H$')
	{
		return $output;
	}

	$count_log2 = strpos($itoa64, $setting[3]);

	if ($count_log2 < 7 || $count_log2 > 30)
	{
		return $output;
	}

	$count = 1 << $count_log2;
	$salt = substr($setting, 4, 8);

	if (strlen($salt) != 8)
	{
		return $output;
	}

	/**
	* We're kind of forced to use MD5 here since it's the only
	* cryptographic primitive available in all versions of PHP
	* currently in use.  To implement our own low-level crypto
	* in PHP would result in much worse performance and
	* consequently in lower iteration counts and hashes that are
	* quicker to crack (by non-PHP code).
	*/
	if (PHP_VERSION >= 5)
	{
		$hash = md5($salt . $password, true);
		do
		{
			$hash = md5($hash . $password, true);
		}
		while (--$count);
	}
	else
	{
		$hash = pack('H*', md5($salt . $password));
		do
		{
			$hash = pack('H*', md5($hash . $password));
		}
		while (--$count);
	}

	$output = substr($setting, 0, 12);
	$output .= _hash_encode64($hash, 16, $itoa64);

	return $output;
	}
	
	function unique_id($extra = 'c'){

	$rand_seed = '8a414598ba18a512b8fe97f1497fa22b';

	$val = $rand_seed . microtime();
	$val = md5($val);

	return substr($val, 4, 16);

	}


register.php

include "registration_phpBB.php";
				
$hpass = phpbb_hash($pass); // $pass = наш пароль полученный методом $_POST
$hemail = crc32(strtolower($email) . strlen($email)); // $email = наш мэйл полученный методом $_POST

// Запрос на добавления пользователя
// У автора статьи была ошибка в синтаксисе запроса (исправил)
// Использую mysql_query() потомучто не нашёл функции в файлах связанные с БД
// mysql_real_escape_string() защищает от SQL-инъекций решил её воспользоватся потомучто пользуюсь mysql_query()
//

$sql_phpBB = mysql_query("INSERT INTO `phpbb_users`
(`username`, `username_clean`, `user_email`, `user_email_hash`, `user_password`, `user_regdate`, `user_form_salt`, `group_id`, `user_permissions`, `user_ip`) 
VALUES ('".mysql_real_escape_string($nickname)."', '".(mysql_real_escape_string((strtolower($nickname))) ."', '". mysql_real_escape_string($email) ."', '".mysql_real_escape_string($hemail)."', '".mysql_real_escape_string($hpass)."', '". time() ."', '".unique_id()."', '2','' ,'".$_SERVER['REMOTE_ADDR']. "')");

// Далее идёт условие, если запрос прошёл тогда берём user_id нового пользователя и создаём права группы
if($sql_phpBB)
				{
					$select_id = mysql_query("SELECT user_id FROM phpbb_users WHERE username = '".mysql_real_escape_string($nickname)."'");
					if(mysql_num_rows($select_id) == 1)
					{
						$phpbb_user_id = mysql_fetch_array($select_id);
						$sql_phpBB_group = mysql_query("INSERT INTO `phpbb_user_group`
						(`user_id`, `user_pending`, `group_id`)
						VALUES ('".mysql_real_escape_string($phpbb_user_id['user_id'])."', 0, 2)");

						$phpbb_update_1 = mysql_query("UPDATE`phpbb_config` SET `config_value`=`config_value`+1 where `config_name`='num_users'");
						
						$phpbb_update_2 = mysql_query("UPDATE `phpbb_config` SET `config_value` = '".mysql_real_escape_string($phpbb_user_id['user_id'])."' where `config_name`='newest_user_id'");
						$phpbb_update_3 = mysql_query("UPDATE `phpbb_config` SET `config_value`='".mysql_real_escape_string($nickname)."' where `config_name`='newest_username'");
					}
				}


Всё, сейчас буду делать общею редактирование пароля алгоритм шифрования известен как сделаю код тут выложу

Добавлено спустя 56 минут 19 секунд:
Столкнулся с ещё одной проблемой не могу зарегестрированным юзером создать тему пишет
phpBB писал(а):Вы не можете отправить следующее сообщение сразу после предыдущего. Пожалуйста, попробуйте чуть позже.

Где копать ни кто не подскажет?

Soldier Ghost
phpBB 1.4.0
 
Сообщения: 30
Зарегистрирован: 23.02.2008 18:34
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Объединение регистрации

Сообщение nissin » 02.12.2009 17:00

Остальные поля в phpbb_users Пушкин будет заполнять?
Зарегистрируйте пользователя нормальным образом и сравнивайте в чём разница.
Всё повторяется. nurlan.info
Аватара пользователя
nissin
Поддержка
Поддержка
 
Сообщения: 1381
Зарегистрирован: 16.12.2007 15:01
Откуда: Павлодар
Благодарил (а): 1 раз.
Поблагодарили: 124 раз.

Re: Объединение регистрации

Сообщение Soldier Ghost » 03.12.2009 0:11

Совсем разобрался, не подскажите куда идти чтобы отключить вкладку "Регистрационные данные" в личном разделе?

Soldier Ghost
phpBB 1.4.0
 
Сообщения: 30
Зарегистрирован: 23.02.2008 18:34
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Объединение регистрации

Сообщение Палыч » 03.12.2009 0:25

Soldier Ghost
Админка - Система - Управление модулями - Личный раздел - Профиль - Регистрационные данные - Отключить
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
Палыч
Просто Палыч
Просто Палыч
 
Сообщения: 9471
Зарегистрирован: 24.05.2006 23:20
Откуда: Питер
Благодарил (а): 3 раз.
Поблагодарили: 337 раз.

Re: Объединение регистрации

Сообщение Soldier Ghost » 03.12.2009 0:41

Спасибо, надеюсь функцию восстановления пароля можно точно так же лёгким движением отключить? )

Soldier Ghost
phpBB 1.4.0
 
Сообщения: 30
Зарегистрирован: 23.02.2008 18:34
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Объединение регистрации

Сообщение Палыч » 03.12.2009 0:48

1. Как ваши вопросы соотносятся с темой? (ответа не требуется).
2. Вы уверены, что это вам нужно? (ответа не требуется).
3. Надежда существует всегда.
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
Палыч
Просто Палыч
Просто Палыч
 
Сообщения: 9471
Зарегистрирован: 24.05.2006 23:20
Откуда: Питер
Благодарил (а): 3 раз.
Поблагодарили: 337 раз.

След.

Вернуться в phpBB-пространство

 

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

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

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

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