Seite 1 von 1

User per Query selber anlegen bei phpbb 3 hilfeeee!

Verfasst: 10.10.2009 14:00
von adis
Also ich habe da ein Projekt am laufen. eine lustige Kontaktbörse mit vielen Funktionen. Da darf natürlich ein Forum nicht fehlen.
Installation hat gut geklappt. Nun möchte ich es meinen Usern von Transflirt.de ersparen sich ein zweites mal im Forum anzumelden.
Habe ein Quer mit den wichtigsten Optionen zu Testzwecken geschriben. Der user kann sich einloggen doch er sieht das Forum nich weil er kein Recht dazu hat, oder so :roll: . Nu habe ich zwei Tage damit verbracht doch es klappt nicht.
Der Query

Code: Alles auswählen

$pass=md5('test');
echo $pass;
mysql_select_db('Datenbank');
mysql_query("INSERT INTO phpbb_users (user_permissions,user_type,group_id,username,username_clean,user_password, user_email, user_lang,user_timezone,user_dateformat,user_style,user_full_folder,user_topic_sortby_type,user_topic_sortby_dir,user_post_sortby_type,user_post_sortby_dir,user_notify,user_notify_pm,user_allow_pm,user_allow_viewonline,user_allow_viewemail,user_options) values ('00000000006xv29nwg','0','2','wurst','wurst','$pass','$emailforum','de','0.00','Dj.MY,H.i','2','-3','t','d','t','a','0','1','1','1','1','895')"); 
Wo zum Geier muss ich reinschreiben das er das Forum sehen kann :-?

Würde mich freuen wenn mir mal einer helfen kann. :-?

Re: User per Query selber anlegen bei phpbb 3 hilfeeee!

Verfasst: 12.10.2009 12:15
von oxpus
Hallo,

ich habe die gesamte Routine nun auch nicht im Kopf, allerdings werden dem User im Feld user_permissions zunächst keine Rechte eingetragen, sondern der User wird der Gruppe "Registrierte Benutzer" eingetragen und erhält somit alle nötigen Standardrechte.
Also folgende SQL-Anweisung wäre das (aus dem phpBB 3 entnommen):

Code: Alles auswählen

$sql = 'SELECT group_id
	FROM ' . GROUPS_TABLE . "
	WHERE group_name = 'REGISTERED'
		AND group_type = " . GROUP_SPECIAL;
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$group_id = $row['group_id'];
und

Code: Alles auswählen

$sql = 'INSERT INTO ' . USER_GROUP_TABLE . ' ' . $db->sql_build_array('INSERT', array(
	'user_id'		=> (int) $user_id,
	'group_id'		=> (int) $group_id,
	'user_pending'	=> 0)
);
$db->sql_query($sql);
Dann wird dem User diese Gruppe als Hauptgruppe zugewiesen (Funktion group_set_user_default in der Datei includes/functions_user.php) und zuletzt noch ein paar Board-Statistiken ergänzt:

Code: Alles auswählen

		set_config('newest_user_id', $user_id, true);
		set_config('newest_username', $user_row['username'], true);
		set_config_count('num_users', 1, true);

		$sql = 'SELECT group_colour
			FROM ' . GROUPS_TABLE . '
			WHERE group_id = ' . (int) $user_row['group_id'];
		$result = $db->sql_query_limit($sql, 1);
		$row = $db->sql_fetchrow($result);
		$db->sql_freeresult($result);

		set_config('newest_user_colour', $row['group_colour'], true);
Da wäre es fast schon einfacher, die Datei includes/functions_user.php zu includieren und die Funktion user_add(); auszuführen.
Die dafür nötigen Parameter werden in der Datei includes/ucp/ucp_register.php aufbereitet...