Zum Inhalt springen

Typo3 und ein *echtes* phpBB

Erstellt am 3. Januar 2005 · 56 Antworten · letzte Antwort am 14. März 2007 · Seite 2 von 3

Tags: Frage

Guido ·

Aber das ist doch eine der weltbesten Extensions :o

Damit würde typo3 zum universellen Werkzeug. Alles, was typo3 nicht kann, läuft über 3rd party apps.

Vorausgesetzt, sie funktionert. Ich hatte noch keine Zeit, es zu testen...

boonkerz ·

Hallo,

Als Forum wird chc_forum empfohlen.

Stand das mit der Entwicklung nicht hier im Forum. Ich denke auch das es zu aufwendig ist das weiter zu machen.

MFG

rmj13 ·

hallo phpbb2t3-community,

war im mai 05 wochenlang auf der suche nach einer akzeptablen lösung für die connection von t3 und phpbb...

mir war dabei wichtig, dass das phpbb nicht als extension in t3 integriert, sondern komplett eigenständig läuft, damit es bei der integration von div. mods oder späteren updates von phpbb zu keinen bösen überraschungen kommen kann.
da ich nicht wirklich was brauchbares gefunden habe, versuchte ich selber, ein interface zu schreiben, wofür ich eine woche meiner freizeit opferte.

folgende punkte waren mir wichtig:
- t3 und phpbb sollen komplett eigenständig laufen
- bei der login- & registrier-zusammenführung gilt t3 als master
- minimalste änderungen am phpbb

seit anfang juni laufen beide welten über das interface für registrierung und login einwandfrei

schaut es euch mal unter http://www.readyfornature.com an und teilt mir eure meinung mit - ihr findet es unter forum oder direkt mit folgender url http://www.readyfornature.com/mwa/phpbb_typo3

lg,
rmj13

xantos ·

Hi rmj13
Kannst du mir bitte erklähren, wie du es geschaft hast das phpbb Forum in Typo3 einzubetten.
Währe echt nett!
Danke xantos

rmj13 ·

habe 2 files geschrieben - eines für die registrierung und eines fürs login - melde mich alsbald zeitlich möglich mit einer ausführlicheren erklärung...

lg,
rmj13

philipps ·

Hi rmj!

Würde mich auch brennend für die Integration von phpBB in Typo3 interssieren. Bin auf deine Lösung gespannt ...

Grüße
philipps

Leonard ·

Hallo mrj13,

hast du schon neue Info's für uns? Gibt sicherlich eine Menge Leute, denen Du mit deiner Lösung helfen könntest.

Ich hab alternativ mal das sigsso ausprobiert, aber da klappt bei mir garnichts.

Leonard ·

Habe sigsso mittlerweile ans laufe bekommen, und es funktioniert auch. Allerdings ist diese Extension totaler Quatsch!

Das Problem an sigsso: Die Userdaten werden von Typo3 an phpBB übergeben (ist ja auch so gewollt), jedoch muß der User dazu in der SQL-Tabelle von phpBB existieren, sprich: Der User muß zuvor einmal im phpBB registriert worden sein.

Und schon habe ich wieder das Problem, daß sich der User zweimal registrieren muß. Ich könnte die User auch von Hand im phpBB anlegen, jedoch werden mir die Leute kaum ihr Kennwort verraten, und bei einer größeren Community macht das ja auch keinen Sinn. Zudem: Wenn der FE-User in Typo3 sein Passwort ändert, kommt er anschließend nichts mehr ins phpBB, er muß sich dann dort händisch mit seinem alten PW anmelden und dann neu setzen.

Fakt ist: sigsso ist eine nette Idee, aber im derzeitigen Zustand unbrauchbar bzw. nur Bastelei. Leider wurde das Projekt dieses Jahr eingestellt, und somit wird auch NAW's letztes Projekt "SSO with user propagation" (welches das Problem wahrlich gelöst hätte) nicht weiterführen.

Eine weitere Alternative wäre vBulletin mit der entsprechenden Typo3-Extension. Das scheint auch tatsächlich zu funktionieren, jedoch findet hier die komplette Benutzerverwaltung in vBulletin statt, und nicht in Typo3 (dort wird ohne FE-User gearbeitet). Zwar kann man einige Gruppen von vBulletin für "seichte" Rechteverwaltung der Typo3-Seiten verwenden, aber bei komplexeren Extensions wo dringend FE-User und Fe-Gruppen benötigt werden, hört der Spaß auch schon wieder auf.

Ich würde mich ja auch mit dem CHC-Forum zufrieden geben, es sieht schick aus und ist einfach zu installieren. Jedoch mangelt es beim CHC-Forum an Funktionalität. Beim Verfassen von Nachrichten kann man keine anderenSchriftfarben und sonstige bb-üblichen Dinge verwenden, HTML in den Postings geht ebenfalls nicht (manchmal wünschenswert).

Ich find's unverständlich, daß ein CMS der Enterprise-Klasse so wenig in Sachen Forum bietet.

Gibts sonst niemand, der eine zufriedenstellende Lösung gefunden hat? Das Thema scheint mir etwas eingeschlafen zu sein.

delldog ·

Hallo,

will mal nachfragen, ob schon jemand folgendes probiert oder darüber nachgedacht hat:

Die Benutzer/Gruppen-Tabellen von dem phpBB2-Forum löschen und durch Struktur-identische Views, welche auf die T3-Tabellen zugreifen, ersetzen.

Vorteil wäre:
* phpBB2 müsste nichts!!! im Code angepasst werden.-> Änderungen/Updates im phpBB2 können übernommen werden.
* Die DB-Views müssten nur bei Struktur-Änderungen der DB angepasst werden.
* Wäre alles reines SQL

Ich gebe zu .. ich bin im Moment im dem Punkt noch Theoretiker!
Ich muss mich selbst noch in die phpBB2-DB-Strukturen einarbeiten und schauen, ob man die Infos alle aus t3 bekommen kann.
Im phpBB2-Forum müssen dann auch alle User/Gruppen-Verwaltungsfunktionalitätenn vom Admin mit Bedacht verwendet werden, damit die Infos auch aus T3 kommen und nicht aus den phpBB-Tabellen. Es geht ja in erster Linie darum dem User eine einheitliches User/Gruppenprofil im Forum und T3 vorzugeben.

Ideen/Kritik/Kommentare?

Gruss Stephan.

philipps ·

Hi delldog!

Also wenn ich das richtig verstanden habe, scheint rmj13 ja DIE Lösung gefunden zu haben. -> keine Änderungen an phpBB und nur minimalean Typo3 ....

Hm, leider hat man von rmj13 seit dem nichts mehr gehört - hat da irgendjemand Kontakt oder neue Infos?

Grüße
philipp

Edit: Hab gerade die Extension phpbb_auth gefunden. Letztes Update laut TER 12.12.05, müsste also eigendlich noch recht aktuell sein ... werds mal ausprobieren ...

back ·

Tach Gemeinde!
Hallo philipps!

Ich habe mich im Portal von "rmj13" (http://www.readyfornature.com) mit einem "Testaccount" registriert und muss sagen, dass alles perfekt funktioniert.

Lasse mich mal überraschen, wa da noch so kommt, da ich bereits lange nach einer CMF+Forum Lösung bin, in dem man nur einen Login, eine Anmeldung etc. durchführen muss.

Grüße

back@me

der-tobi ·

Hi!
@ Leonard.
SIGSO:
Wie hast du die private/public keys erstellt?
Openssl ist mir irgendwie zu hoch.
Mir wäre es auch schon egal diese keys ohne passphrase zu haben.

THX Tobi

pst ·

Interessanter Ansatz und interssante Perspektive - nur leider keine Antwort... Vielleicht kann man diese Diskussion wiederbeleben und sie zu einem Ende führen (=erlösende Antwort von rmj13 mit Erklärungen, wies geht). Ich jedenfalls habe jetzt fast seit zwei Stunden den Bereich "Forum" durchgelesen, um herauszubekommen, wie ich mein erstes Forum mit Typo3 realisieren kann. Werde wohl CHC-Forum benutzen, wenn hier keine erlösende Antwort mehr kommt.
Thanx for Help
pst

Sohn der Sonne ·

Kannst du alles auf die Art und Weise realisieren, das du die selbe Datenbank bzw den selben Table nutzt.

Wenn du ein php Script haben willst das dir auf der Startseite neue Themen anzeigt sag bescheid.

rmj13 ·

sorry2all, dass ich mich so lange nicht gemeldet und auch eure emails und posts nicht beantwortet habe - dass war nicht böswillig - ich bin einfach nicht dazugekommen, da mein bischen freizeit seit meiner letzten post meiner kleinen tochter gehört...

ich werde jetzt mal mit der erklärung anfangen und wirklich versuchen, es so einfach wie möglich zu machen und das ganze in einer woche so gut es geht zu vervollständigen, da ich mir meine änderungen erst raussuchen muss - here we go...

1.) User-Registrierung und Daten-Editierung:

Wenn sich ein User im Typo3 registriertoder seine Daten ändert, werden die Registrierungsdaten zusätzlich zur Typo3-DB in die phpbb-DB geschrieben – bei der Registrierung über das phpbb-Forum wird der User zur Typo3 Registrierung weitergeleitet.
=> Diese Weiterleitung vom phpbb muss geändert werden - wo und was folgt später...

Typo3-Extension: Front End User Registration
Extension Key: sr_feuser_register
Version: 1.3.13
Extension Ordner: sr_feuser_register
File Name: class.tx_srfeuserregister_pi1.php

Download des kompletten File inkl. MOD:
http://www.mwa-networks.com/typo3_to_phpbb/class.tx_srfeuserregister_pi1.zip

Source-Code:

Zeile 1702:

/***************************************************************/
/* modified by mwa-networks, Ing. Roland Maldoner-Jaeger START */
/***************************************************************/

/* mwa-networks@explanation: define sql-parameter, check the connection and define the send_sql function */

//$server_mwa = "63.244.17.99";       // mysql-server
$server_mwa = "127.0.0.1";       // mysql-server
$user_mwa   = "p9988";            // mysql-user
$pass_mwa   = "password";        // mysql-pw
$db_typo3     = "usr_p9988_1";   // typo3-db
$db_phpbb     = "usr_p9988_4";   // phpbb-db
$conn_mwa = mysql_connect($server_mwa, $user_mwa, $pass_mwa);

if($conn_mwa) {
	mysql_select_db($db_typo3, $conn_mwa);
} else {
	die("<b>Verbindung zum Server konnte nicht hergestellt werden! </b>");
}

function send_sql_mwa($db,$sql) {
	if (! $res=mysql_db_query($db, $sql)) {
	echo mysql_error();
	exit;
	}
	return $res;
}
/**************************************************************/
/* modified by mwa-networks, Ing. Roland Maldoner-Jaeger STOP */
/**************************************************************/

Zeile 1767:

/***************************************************************/
/* modified by mwa-networks, Ing. Roland Maldoner-Jaeger START */
/***************************************************************/

/* mwa-networks@explanation: get the actual userdata after typo3-userdata-edit from typo3-db */

$uid_mwa_edit_all = strstr($query, 'uid');

$uid_mwa_edit = substr($uid_mwa_edit_all, 4);

$query_typo3_mwa = "SELECT username, password, email, crdate, city FROM fe_users WHERE uid='$uid_mwa_edit'";

$typo3_mwa_id = send_sql_mwa($db_typo3, $query_typo3_mwa);

/* mwa-networks@explanation: open TEMPORARY textfile */
/* $fh_mwa=fopen("mwa_temp_register.txt","r");
$str_mwa=fread($fh_mwa,20000);
fclose($fh_mwa); */

/* mwa-networks@explanation: output message to TEMPORARY textfile */
/* $str_mwa .= "EDIT USER \n";
$str_mwa .= "count of SELECT-query-rows: " . mysql_num_rows($typo3_mwa_id) . "\n"; */

$typo3_mwa_values = mysql_fetch_array($typo3_mwa_id);

$mwa_username = $typo3_mwa_values['username'];
$mwa_password = $typo3_mwa_values['password'];
$mwa_password_md5 = md5($mwa_password);
$mwa_email = $typo3_mwa_values['email'];
$mwa_date = $typo3_mwa_values['crdate'];
$mwa_city = $typo3_mwa_values['city'];

/* mwa-networks@explanation: write modified userdata into phpbb-db */
$query_phpbb_mwa = "UPDATE phpbb_users SET user_password='$mwa_password_md5', user_email='$mwa_email', user_from='$mwa_city' WHERE username='$mwa_username'";

$phpbb_mwa_id = send_sql_mwa($db_phpbb, $query_phpbb_mwa);

/* mwa-networks@explanation: output message to TEMPORARY textfile */
/* $str_mwa .= "query_phpbb_mwa: " . $query_phpbb_mwa . "\n";
$str_mwa .= "count of UPDATE-query-rows: " . mysql_affected_rows() . "\n\n"; */

/* mwa-networks@explanation: close TEMPORARY textfile */
/* $fh_mwa=fopen("mwa_temp_register.txt","w");
fwrite($fh_mwa,$str_mwa);
fclose($fh_mwa); */

/**************************************************************/
/* modified by mwa-networks, Ing. Roland Maldoner-Jaeger STOP */
/**************************************************************/

Zeile 1904:

/***************************************************************/
/* modified by mwa-networks, Ing. Roland Maldoner-Jaeger START */
/***************************************************************/

/* mwa-networks@explanation: get the actual userdata after typo3-userdata-edit from typo3-db */

$uid_mwa_create_all = strstr($query, 'uid');

$uid_mwa_create = substr($uid_mwa_create_all, 4);

$query_typo3_mwa = "SELECT username, password, email, crdate, city FROM fe_users WHERE uid='$uid_mwa_create'";

$typo3_mwa_id = send_sql_mwa($db_typo3, $query_typo3_mwa);

/* mwa-networks@explanation: open TEMPORARY textfile */
/* $fh_mwa=fopen("mwa_temp_register.txt","r");
$str_mwa=fread($fh_mwa,20000);
fclose($fh_mwa); */

/* mwa-networks@explanation: output message to TEMPORARY textfile */
/* $str_mwa .= "CREATE USER \n";
$str_mwa .= "query_typo3_mwa: $query_typo3_mwa \n";
$str_mwa .= "count of SELECT-query-rows: " . mysql_num_rows($typo3_mwa_id) . "\n"; */

$typo3_mwa_values = mysql_fetch_array($typo3_mwa_id);

$mwa_username = $typo3_mwa_values['username'];
$mwa_password = $typo3_mwa_values['password'];
$mwa_password_md5 = md5($mwa_password);
$mwa_email = $typo3_mwa_values['email'];
$mwa_date = $typo3_mwa_values['crdate'];
$mwa_city = $typo3_mwa_values['city'];

/* mwa-networks@explanation: calculate new user_id value for inserting user-data into phpbb_users */
$query_phpbb_mwa_uid_max = "SELECT MAX(user_id) AS total FROM phpbb_users";

$query_phpbb_mwa_uid_max_id = send_sql_mwa($db_phpbb, $query_phpbb_mwa_uid_max);

$query_phpbb_mwa_uid_max_id_values = mysql_fetch_array($query_phpbb_mwa_uid_max_id);

$phpbb_mwa_uid_max = $query_phpbb_mwa_uid_max_id_values['total'];

/* mwa-networks@explanation: output message to TEMPORARY textfile */
/* $str_mwa .= "phpbb_mwa_uid_max: $phpbb_mwa_uid_max \n"; */

$phpbb_mwa_uid_new = $phpbb_mwa_uid_max + 1;

/* mwa-networks@explanation: insert userdata with standard-settings into table phpbb_users */
$query_phpbb_mwa_insert_users = 'INSERT INTO phpbb_users (user_id, username, user_regdate, user_password, user_email, user_icq, user_website, user_occ, user_from, user_interests, user_sig, user_sig_bbcode_uid, user_avatar, user_avatar_type, user_viewemail, user_aim, user_yim, user_msnm, user_attachsig, user_allowsmile, user_allowhtml, user_allowbbcode, user_allow_viewonline, user_notify, user_notify_pm, user_popup_pm, user_timezone, user_dateformat, user_lang, user_style, user_level, user_allow_pm, user_active, user_actkey, user_rank, user_allowavatar, user_last_privmsg, user_unread_privmsg, user_new_privmsg, user_posts, user_lastvisit, user_session_page, user_session_time) VALUES (' . $phpbb_mwa_uid_new . ', "' . $mwa_username . '", ' . $mwa_date . ', "' . $mwa_password_md5 . '", "' . $mwa_email . '", "", "", "", "' . $mwa_city . '", "", "", "", "", 0, 1, "", "", "", 1, 1, 1, 1, 1, 1, 1, 1, "2.00", "D M d, Y g:i a", "german", 1, 0, 1, 1, "", 0, 1, 0, 0, 0, 0, 0, 0, 0)';

$phpbb_mwa_insert_users = send_sql_mwa($db_phpbb, $query_phpbb_mwa_insert_users);

/* mwa-networks@explanation: output message to TEMPORARY textfile */
/* $str_mwa .= "query_phpbb_mwa_insert_users: $query_phpbb_mwa_insert_users \n";
$str_mwa .= "count of INSERT-query-rows: " . mysql_affected_rows() . "\n"; */

/* mwa-networks@explanation: insert record into table phpbb_groups */
$query_phpbb_mwa_insert_groups = "INSERT INTO phpbb_groups (group_id, group_type, group_name, group_description, group_single_user, group_moderator) VALUES ($phpbb_mwa_uid_new, 1, '', 'Personal User', 1, 0)";

$phpbb_mwa_insert_groups = send_sql_mwa($db_phpbb, $query_phpbb_mwa_insert_groups);

/* mwa-networks@explanation: output message to TEMPORARY textfile */
/* $str_mwa .= "query_phpbb_mwa_insert_groups: $query_phpbb_mwa_insert_groups \n";
$str_mwa .= "count of INSERT-query-rows: " . mysql_affected_rows() . "\n"; */

/* mwa-networks@explanation: insert record into table phpbb_user_group */
$query_phpbb_mwa_insert_user_group = "INSERT INTO phpbb_user_group (user_id, group_id, user_pending) VALUES ($phpbb_mwa_uid_new, $phpbb_mwa_uid_new, 0)";

$phpbb_mwa_insert_user_group = send_sql_mwa($db_phpbb, $query_phpbb_mwa_insert_user_group);

/* mwa-networks@explanation: output message to TEMPORARY textfile */
/* $str_mwa .= "query_phpbb_mwa_insert_user_group: $query_phpbb_mwa_insert_user_group \n";
$str_mwa .= "count of INSERT-query-rows: " . mysql_affected_rows() . "\n\n"; */

/* mwa-networks@explanation: close TEMPORARY textfile */
/* $fh_mwa=fopen("mwa_temp_register.txt","w");
fwrite($fh_mwa,$str_mwa);
fclose($fh_mwa); */

/**************************************************************/
/* modified by mwa-networks, Ing. Roland Maldoner-Jaeger STOP */
/**************************************************************/

versuche, heute abend wieder weiter zu machen und euch den quellcode per zip anzuhängen...

bis später & lg,
roli

leider kann hier kein file angehängt werden => versuchs per url...

http://www.mwa-networks.com/typo3_to_phpbb/class.tx_srfeuserregister_pi1.zip

rmj13 ·

2.) User Redirection nach dem Login über das phpbb:

Wenn sich ein User im phpbb-Forum einloggt, so soll er nach dem Login nicht zu einer anderen Typo3-Site gelangen, sondern wieder zum Forum "umgeleitet" werden.

Typo3-Extension: Redirect user to page at login
Extension Key: dkd_redirect_at_login
Version: 2.1.2
Extension Ordner: dkd_redirect_at_login
File Name: class.tx_dkdredirectatlogin.php

Download des kompletten File inkl. MOD:
http://www.mwa-networks.com/typo3_to_phpbb/class.tx_dkdredirectatlogin.zip

Source-Code:

Zeile 49:

/* modified by mwa-networks, Ing. Roland Maldoner-Jaeger START */
/* mwa-networks@explanation:
 * HTTP_REFERER by phpbb-login: http://www.readyfornature.com/mwa/phpbb_typo3/login.php?sid=14fa1d85012a5017c521134c80f081b3
 * HTTP_REFERER by typo3-login: http://www.readyfornature.com/11.html */
if (strstr($_SERVER['HTTP_REFERER'], "phpbb")) {
	$phpbb_site = "http://www.readyfornature.com/mwa/phpbb_typo3/index.php";
	return $phpbb_site;
} else {
	// bericht-erstellen.html
	return $conf['redirect_url'];
}
/* modified by mwa-networks, Ing. Roland Maldoner-Jaeger STOP */

Download des kompletten File inkl. MOD:
http://www.mwa-networks.com/typo3_to_phpbb/class.tx_dkdredirectatlogin.zip

rmj13 ·

3.) Simultanes bzw. dualer User-Login:

Egal, ob sich ein User über das Typo3 oder aber über das phpbb-Forum einloggt, er ist automatisch nach dem jeweiligen Login auch am anderen System angemeldet!

Dieses Feature stellte bei diesem Interface die größte Herausforderung dar!

Um dies zu bewerkstelligen, musste einerseits die Typo3-Login-Extension modifiziert und gleichzeitig ein eigenes File für den phpbb-Login vom Typo3-System gecodet werden, welches beim Login über Typo3 von diesem included bzw. aufgerufen wird!

Der Login erfolgt also immer über Typo3 und Typo3 meldet den User dann automatisch am phpbb an und erzeugt die notwendige User-Session usw....

Typo3-Extension: New front end login box
Extension Key: newloginbox
Version: 2.2.9
Extension Ordner: newloginbox
File Name: class.tx_newloginbox_pi1.php

Download des kompletten File inkl. MOD:
http://www.mwa-networks.com/typo3_to_phpbb/class.tx_newloginbox_pi1.zip

Source-Code:

Zeile 381:

########
#### START hook by mwa-networks for auto-login on phpbb after typo3-login is ok and typo3-session is created successfully and active
########

define('IN_PHPBB', true);

include('typo3_to_phpbb_login_mwa.php');

########
#### END hook by mwa-networks for auto-login on phpbb
########

Folgendes File muss direkt im Typo3-Root-Verzeichnis "/html" plaziert werden und wird von der "New front end login box"-Extension aufgerufen!

File-Name: typo3_to_phpbb_login_mwa.php

Download des kompletten File:
http://www.mwa-networks.com/typo3_to_phpbb/typo3_to_phpbb_login_mwa.zip

Source-Code:

<?php

/***************************************************************************
 *                       typo3_to_phpbb_login_mwa.php
 *                            -------------------
 *   begin                : Friday', May 13', 2005
 *   copyright            : ('C) 2005 mwa-networks, Ing. Roland Maldoner-Jäger
 *   email                : office@mwa-networks.com
 *
 *   $Id: typo3_to_phpbb_login_mwa.php,v 1.0 2005/05/13 17:49:42 roli Exp $
 *
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License', or
 *   ('at your option) any later version.
 *
 ***************************************************************************/



#### vars definition
// activating autologon on phpbb
$autologin_mwa = TRUE;

// path from typo3 to phpbb root-directory
$phpbb_root_path = './mwa/phpbb/';

// php file-extension
$phpEx = 'php';

// get username and password from typo3
$username_mwa = $GLOBALS['TSFE']->fe_user->user['username'];
$password_mwa = $GLOBALS['TSFE']->fe_user->user['password'];
//$email_mwa = $GLOBALS['TSFE']->fe_user->user['email'];
//$city_mwa = $GLOBALS['TSFE']->fe_user->user['city'];
//$www_mwa = $GLOBALS['TSFE']->fe_user->user['www'];



#### function definition for outputfile
function read_testfile() {
	$fh_mwa=fopen("mwa_login_output.txt","r");
	$str_mwa=fread($fh_mwa,200000);
	fclose($fh_mwa);
	return $str_mwa;
}

function write_testfile($str_mwa) {
	$fh_mwa=fopen("mwa_login_output.txt","w");
	fwrite($fh_mwa,$str_mwa);
	fclose($fh_mwa);
}

function testfile($str_new) {
	$str_old = read_testfile();
	$str_old .= $str_new;
	write_testfile($str_old);
}



#### include phpbb-files
// include function library
include($phpbb_root_path . 'includes/functions.' . $phpEx);

// include of main language file
include($phpbb_root_path . 'language/lang_english/lang_main.' . $phpEx);

// include database login datas
include($phpbb_root_path . 'config.' . $phpEx);

// include database selector and sql-layer for db-communication
include($phpbb_root_path . 'includes/db.' . $phpEx);

// include of phpbb constants
include($phpbb_root_path . 'includes/constants.' . $phpEx);

// include session library
//include($phpbb_root_path . 'includes/sessions.' . $phpEx); 

// include template library
//include($phpbb_root_path . 'includes/template.' . $phpEx); 



#### start coding
// checking hack-attack
if (!defined('IN_PHPBB')) {
	die('hacking attempt on typo3_to_phpbb_login.php script');
}

// disable magic_quotes_runtime for secure phpbb runtime environment
$tmp_magic_quotes_mwa = false;
if (get_magic_quotes_runtime() == 1) {
	set_magic_quotes_runtime(0);
	$tmp_magic_quotes_mwa = true;
}

//testfile("check IN_PHPBB: " . IN_PHPBB . "  /  username_mwa: " . $username_mwa . "  /  password_mwa: " . $password_mwa . " \n");

// import forum wide options settings, if this fails we have to stop because there are the basic configuration settings
$sql_mwa = "SELECT *
	FROM " . CONFIG_TABLE;

if (!($result = $db->sql_query($sql_mwa))) {
	testfile("Could not query basic config information and settings from phpbb! \n    sql-mwa: " . $sql_mwa . "\n    Line-Nr.: " . __LINE__ . "  IN FILE: " . __FILE__ . " \n");
}

while ($row = $db->sql_fetchrow($result)) {
	$board_config[$row['config_name']] = $row['config_value'];
}

// obtain and encode users ip adress for session management and data-logging
$client_ip = (!empty($HTTP_SERVER_VARS['REMOTE_ADDR'])) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : ((!empty($HTTP_ENV_VARS['REMOTE_ADDR'])) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : getenv('REMOTE_ADDR'));
$user_ip = encode_ip($client_ip);

// get user data
$sql_mwa = "SELECT user_id, username, user_password, user_active, user_level
	FROM " . USERS_TABLE . "
	WHERE username = '" . str_replace("\\'", "''", $username_mwa) . "'";

// checking database connection and query-result
if (!($result = $db->sql_query($sql_mwa))) {
	testfile("Error in obtaining userdata from phpbb-database! \n    Line-Nr.: " . __LINE__ . "  IN FILE: " . __FILE__ . "\n");
}

if ($row = $db->sql_fetchrow($result)) {
	if (!$board_config['board_disable']) {	
		if (md5($password_mwa) == $row['user_password'] && $row['user_active']) {
			// start phpbb-session
			$user_id = $row['user_id'];
			$auto_create = 0;
			$enable_autologin = $autologin_mwa;
			$page_id = 9999;
			
			$cookiename = $board_config['cookie_name'];
			$cookiepath = $board_config['cookie_path'];
			$cookiedomain = $board_config['cookie_domain'];
			$cookiesecure = $board_config['cookie_secure'];
			
			if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename . '_data']) ) {
				$session_id = isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : '';
				$sessiondata = isset($HTTP_COOKIE_VARS[$cookiename . '_data']) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array();
				$sessionmethod = SESSION_METHOD_COOKIE;
			} else {
				$sessiondata = array();
				$session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';
				$sessionmethod = SESSION_METHOD_GET;
			}

			if (!preg_match('/^[A-Za-z0-9]*$/', $session_id)) {
				$session_id = '';
			}

			$last_visit = 0;
			$current_time = time();
			$expiry_time = $current_time - $board_config['session_length'];

			// try and pull the last time stored in a cookie, if it exists
			$sql = "SELECT * 
				FROM " . USERS_TABLE . " 
				WHERE user_id = $user_id";
			if ( !($result = $db->sql_query($sql)) ) {
				testfile("Could not obtain lastvisit data from user table! \n    Line-Nr.: " . __LINE__ . "  IN FILE: " . __FILE__ . "\n");
			}

			$userdata = $db->sql_fetchrow($result);

			if ( $user_id != ANONYMOUS ) {
				$auto_login_key = $userdata['user_password'];
				if ( $auto_create ) {
					if ( isset($sessiondata['autologinid']) && $userdata['user_active'] ) {
						// login automagically
						if( $sessiondata['autologinid'] === $auto_login_key ) {
							// autologin-id matches password
							$login = 1;
							$enable_autologin = 1;
						} else {
							// no match - don't login, set as anonymous user
							$login = 0; 
							$enable_autologin = 0; 
							$user_id = $userdata['user_id'] = ANONYMOUS;
						}
					} else {
						// autologin is not set - do not login, set as anonymous user
						$login = 0;
						$enable_autologin = 0;
						$user_id = $userdata['user_id'] = ANONYMOUS;
					}
				} else {
					$login = 1;
				}
			} else {
				$login = 0;
				$enable_autologin = 0;
			}

			// initializing the ban-checker against user id, ip and email address
			preg_match('/(..)(..)(..)(..)/', $user_ip, $user_ip_parts);
			
			$sql = "SELECT ban_ip, ban_userid, ban_email 
				FROM " . BANLIST_TABLE . " 
				WHERE ban_ip IN ('" . $user_ip_parts[1] . $user_ip_parts[2] . $user_ip_parts[3] . $user_ip_parts[4] . "', '" . $user_ip_parts[1] . $user_ip_parts[2] . $user_ip_parts[3] . "ff', '" . $user_ip_parts[1] . $user_ip_parts[2] . "ffff', '" . $user_ip_parts[1] . "ffffff')
					OR ban_userid = $user_id";
			
			if ( $user_id != ANONYMOUS ) {
				$sql .= " OR ban_email LIKE '" . str_replace("\'", "''", $userdata['user_email']) . "' 
					OR ban_email LIKE '" . substr(str_replace("\'", "''", $userdata['user_email']), strpos(str_replace("\'", "''", $userdata['user_email']), "@")) . "'";
			}
			
			if ( !($result = $db->sql_query($sql)) ) {
				testfile("Could not obtain ban information \n    Line-Nr.: " . __LINE__ . "  IN FILE: " . __FILE__ . "\n");
			}
		
			if ( $ban_info = $db->sql_fetchrow($result) ) {
				if ( $ban_info['ban_ip'] || $ban_info['ban_userid'] || $ban_info['ban_email'] ) {
					testfile("USER IS BANNED \n    Line-Nr.: " . __LINE__ . "  IN FILE: " . __FILE__ . "\n");
				}
			}

			// create or update session
			$sql = "UPDATE " . SESSIONS_TABLE . "
				SET session_user_id = $user_id, session_start = $current_time, session_time = $current_time, session_page = $page_id, session_logged_in = $login
				WHERE session_id = '" . $session_id . "' 
					AND session_ip = '$user_ip'";

			if ( !$db->sql_query($sql) || !$db->sql_affectedrows() ) {

				$session_id = md5(uniqid($user_ip));
				$sql = "INSERT INTO " . SESSIONS_TABLE . "
					(session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in)
					VALUES ('$session_id', $user_id, $current_time, $current_time, '$user_ip', $page_id, $login)";

				if ( !$db->sql_query($sql) ) {
					testfile("Error creating new session \n    Line-Nr.: " . __LINE__ . "  IN FILE: " . __FILE__ . "\n");
				}
			}
		
			if ( $user_id != ANONYMOUS ) {
				// ( $userdata['user_session_time'] > $expiry_time && $auto_create ) ? $userdata['user_lastvisit'] : ( 
				$last_visit = ( $userdata['user_session_time'] > 0 ) ? $userdata['user_session_time'] : $current_time; 
				$sql = "UPDATE " . USERS_TABLE . " 
					SET user_session_time = $current_time, user_session_page = $page_id, user_lastvisit = $last_visit
					WHERE user_id = $user_id";

				if ( !$db->sql_query($sql) ) {
					testfile("Error updating last visit time \n    Line-Nr.: " . __LINE__ . "  IN FILE: " . __FILE__ . "\n");
				}
		
				$userdata['user_lastvisit'] = $last_visit;
				$sessiondata['autologinid'] = ( $enable_autologin && $sessionmethod == SESSION_METHOD_COOKIE ) ? $auto_login_key : '';
				$sessiondata['userid'] = $user_id;
			}
		
			$userdata['session_id'] = $session_id;
			$userdata['session_ip'] = $user_ip;
			$userdata['session_user_id'] = $user_id;
			$userdata['session_logged_in'] = $login;
			$userdata['session_page'] = $page_id;
			$userdata['session_start'] = $current_time;
			$userdata['session_time'] = $current_time;
		
			setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);
			setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);
		
			$SID = 'sid=' . $session_id;
		
			$session_id = $userdata;
	
			if ($session_id) {
				// we do not need a redirection
				//$url = (!empty($HTTP_POST_VARS['redirect'])) ? str_replace('&amp;', '&', htmlspecialchars($HTTP_POST_VARS['redirect'])) : "index.$phpEx";
				//redirect(append_sid($url, true));
			}
			else {
				testfile("Could not start phpbb-session from typo3 on login \n    Line-Nr.: " . __LINE__ . "  IN FILE: " . __FILE__ . "\n");
			}
		}
		else {
			testfile("Wrong password on typo3-Login for phpbb! \n    Line-Nr.: " . __LINE__ . "  IN FILE: " . __FILE__ . "\n");
		}
	}
}

// reset magic_quotes_runtime for stable typo3 runtime environment
if ($tmp_magic_quotes_mwa) {
	if (get_magic_quotes_runtime() == 0) {
		set_magic_quotes_runtime(1);
	}
}

?>

Download des kompletten File:
http://www.mwa-networks.com/typo3_to_phpbb/typo3_to_phpbb_login_mwa.zip

=> die minimalen anpassungen am phpbb folgen...

lg,
roli alias rmj13