Регистриране на потребител в phpBB 3.

FestarBG

Registered
Здравейте,
имам си система за регистрация, но искам при добавянето на потребител в моята база данни да се добавя потребител и в базата данни на phpbb-то.Става дума за 2 бази данни.
Първо ми трябва код с който да проверявам дали имейла и потребителското име са свободни.След това ми трябва кода за самото добавяне.Ето това ползвам аз:
Код:
		$sql->close();
		unset($sql);
		$sql = new Database(DB_SERVER, FORUM_USER, FORUM_PASS, FORUM_NAME);
		$sql->connect();
		$birthday = $_POST['day'] . '-' . $_POST['month'] . '-' . $_POST['year'];
		$time = time();
		$town = id2city($town);
		$sql->query_insert('phpbb_users', array(
		'username' => $username,
		'user_password' => md5($pass1),
		'user_ip' => $ip,
		'user_regdate' => $time,
		'user_email' => $email,
		'user_from' => $town,
		'user_birthday' => $birthday,
		'username_clean' => $username

Като виждате - сняна на базата данни и после инсертове. Така кода инсертва, но после не мога да се логна в phpbb-то с потребителя. Има и полета, които не "попълвам", а сигурно са важни - username_clean, user_email_hash и т.н.Освен това броя на потребителите не се увеличава като правя аз инсертите, нито последно регистриран потребител.Просто искам в сайта и в форума потребителите да са с едно и също име и парола, като не ми трябва интеграция!
Мерси много. :–)
 
Тук има един голям проблем. Както виждам ти използваш md5 криптиране на паролата, което няма как да проработи при phpBB3. Във версия 2 паролите се криптираха с md5, но в трета версия phpBB са разработили специална функция, която криптира паролите също и имейлите (друга функция). Функцията за криптиране на пароли се казва phpbb_hash($password); като приема параметър парола и връща криптирания стринг. Тази функция се намира в includes/functions.php, но не можеш просто да инклуднеш само functions.php, защото скрипта ще бъгне и ще върне грешка. Единствената идея, която мога да ти дам е да инклуднеш common.php, който съдържа всички инклуди нужни на системата да работи правилно включително връзка към БД на форума.

Не знам до колко ще ти е от помощ това, но се надявам да съм бил полезен. :lol:
 
Виж как завършва phpbb_hash:
Код:
	if (strlen($hash) == 34)
	{
		return $hash;
	}

	return md5($password);

Това съм го проучил, може и с md5.Аз питам за полетата, които се инсертват/ъпдейтват.. :roll:
 
Айде обяснете че и на мене ми трябва тази информация :cry: как да стане ..
 
md5 fallback механизъма е огромна грешка и е правена само и единствено заради разни мърлячи. Разликата между md5 и phpbb3 хешовете е че вторите се bruteforce-ват 2048 пъти по-бавно, че не могат да се търсят в таблици с предварително пресметнати хешове и че не могат да се атакуват с rainbow таблици. Ползването на md5 за хеширане на пароли и меко казано безотговорно.
 

Back
Горе