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

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

Oleson ·

Hi rmj13,
dass sich hier keiner weiter meldet, darfst Du keinesfalls als Desinteresse verstehen.
Im Gegenteil, ich persönlich bezeichne dies als „Quantensprung“, welcher Typo3 nun endlich und vor allen bei Communityorientierten „Freunden des Typo3“ um Längen voran bringen wird.
Ich denke vielmehr, dass hier alle kräftig am werkeln sind - nur bisher leider noch Erfolglos.
Alle waten ab, bis endlich jemand schreibt:

WOW, rmj13 - bei mir läuft es !!! Was für eine Leistung, endlich ist es vollbracht, Typo3 hat ein Forum !!

Ich werkle nun auch schon seit Tagen aber bleibe mit folgender Fehlermeldung hängen:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ' "d41d8cd98f00b204e9800998ecf8427e", "", "", "", "", "", "", ""

was wohl schlussendlich aus folgender Zeile zu rühren scheint:

/* 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)';

Mit ein wenig hin- und her bekomme ich es sogar hin, dass ein neuer php_user angelegt wird.
Alle Felder werden soweit ordnungsgemäß „gefüllt“, nur die die interessanten Felder:
username, user_regdate, user_from, user_email
bleiben leer. 😢

Das kann (bei mir) verschiedene Ursachen haben.
Vielleicht weil ich die „sr_feuser_register“ bereits in der Version 2.3.3 verwende, welche die md5-Verschlüsselung ja mittlerweile „integriert“ hat.
Vielleicht aber auch, weil das phpBB und Typo3 bei mir in ein und derselben Datenbank liegen.
Keine Ahnung - ich bin zunächst mit meinem Latein am Ende und warte nun ebenfalls darauf, dass es hier heißt:

WOW, rmj13 - bei mir läuft es !!! Was für eine Leistung, endlich ist es vollbracht, Typo3 hat ein Forum !!!!. …

Vielleicht hast Du ja auch einen Tip oder machst Dir sogar die Mühe, Deinen Code mal in die momentan aktuelle Versionen von „sr_feuser_register“ zu integrieren - ich kann es nur hoffen.

Auf jeden Fall aber möchte ich Dir ganz herzlich danken, dass Du uns überhaupt diesen Code zur Verfügung gestellt hast.

Das Thema "phpBB in Typo3" beschäftigt uns nun schon seit Jahren ... es ist nun sicher nur noch eine Frage von wenigen Tagen bis sich der Erfolg einstellt.

rmj13 ·

hallo oleson,

ok, um schnell zu einer finalen lösung zu kommen schlage ich vor, dass du oder ein an der lösung interessierter forum-user mir folgendes zur verfügung stellt:

1.) typo3 testsystem - am besten die aktuelle version 4

2.) installierte, aktuelle versionen der extensions "sr_feuser_register", "newloginbox" und optional "dkd_redirect_at_login" für die redirection nach dem login vom phpbb

3.) simple typo3-site mit den 3 extensions für registrierung und login

grund: da ich hauptberuflich medizintechniker bin und das ganze nur in meiner freizeit gemacht habe, welche seit geraumer zeit meiner kleinen tochter gehört, habe ich die bisherige arbeit an der site http://www.readyfornature.com seit letzter woche eingestellt und somit keinen zugriff mehr auf ein testsystem...

4.) hernach benötige ich lediglich die ftp-zugangsdaten (per pm oder email an rmj13@gmx.at), damit ich die aktuellste phpbb version installieren und meinen code anpassen kann

5.) ich veröffentliche dann den code mit den anpassungen an t3 und phpbb inkl. einer kurzen beschreibung...

that's it - lg,
rmj13

Oleson ·

Hi rmj13,
dass finde ich ja mal wieder einen superguten Zug von Dir. 🙂
Alles was ich zu bieten habe, ist ein Shared-Server, welchen ich schon seit Monaten gekündigt habe.
Bisher allerdings läuft er munter weiter. Ich hoffe, er bricht jetzt nicht mit dieser Tradition. 🙂

Das Memory-Limit beträgt leider nur 32 MB, sodass sich z.B. "phpMyAdmin" nicht per Extensionmanager installieren lässt.
Hoffentlich scheitert unser Unterfangen nicht schon daran.
Auch ist er überhaupt ziemlich lahm, aber was soll ich machen ?? ...

Typo3 4.0 und das phpBB habe ich per Knopfdruck aus dem dortigen Control-Panel installiert.
Typo3 in der Version 3.X.X zu installieren ist so gut wie nicht möglich.
Das Forum ist im Verzeichnis ./phpBB/ installiert.

Alle LogIn- , Datenbank- und FTP Zugangsdaten lasse ich Dir gleich per PN zukommen.
Bitte schlag mich nicht - für mich ist die Typo3 4.0 noch absolutes Neuland.
Eine "sr_feuser_regiser" oder "dkd_redirect_at_login" konnte ich im Extension-Manager nicht finden. :-/
Auch hat die "newloginbox" beim Installationsversuch rumgezuckt.
Bitte schau Du doch mal oder hilf mir mal irgendwer auf die Sprünge.

Bis dann.
Tschüß und Gruß
Oleson

P.S.
Das mit Deiner Tochter find ich Super, dass war/ist auf jeden Fall die 100%-ig richtige Entscheidung.
Wenn es denn irgendwann eine Forenintegration in Typo3 gibt, sieht mich meine Family vielleicht auch mal ein paar Minuten länger.
Schlußendlich möchte ich zwar ein WBB (Woltlab Burning Board) integrieren, aber das ist dann schon wieder eine gaaanz, gaaaanz andere Geschichte ...

ulzf ·

Hallo Forum,

Ich wollte mal fragen wie aufwändig ist das Einbinden von phpBB an Typo3 3.8.1, und wie ist es zu bewerkstelligen!

PS: Ich habe bis jetzt noch kein Forum auf der Seite... Also es wird keine Annpassung geben...

Gruß
ulzf

Flink ·
Oleson schrieb

Eine "sr_feuser_regiser" oder "dkd_redirect_at_login" konnte ich im Extension-Manager nicht finden. :-/

Notfalls läßt sich das auch unter typo3.org finden und als T3X-Datei herunterladen und installieren.

philipps ·

hi rmj13 und Oleson!

Seit ihr inzwischen schon weitergekommen oder benötigt ihr immer noch einen temporären T3 fähigen Account um das ganze mal live zusammen zu basteln?

Solltet ihr hier immernoch auf der Suche sein, dann meldet euch bitte mal, werde gerne einen meiner mittwald-Packete zur Verfügung stellen.

Grüße
philipp

Oleson ·

Nein, leider nicht.
Ich weiß nicht, ob rjm meine PN mit den Zugangsdaten überhaupt jemals gelesen hat ...
Jedenfalls ist der Kontakt zu ihm abgebrochen bzw. eigentlich ja nie zustande gekommen ...
und ich selbst habs irgendwan ergebnislos aufgegeben ... #angry#

SirVivor ·

Servus liebe Typo3ler,

ich weiss zwar nicht ob das so daher passt aber ich erzähl euch halt mal wie ich es gemacht hab.

Ich habe ein ganz normales phpbb2 Forum in der aktuellsten version erstellt, kategorien, unterforen etc erstellt....usw
als das fertig war hab ich eine typo3 4.0 standardmäßig hochgezogen und die Iframe2 extension installiert. die hat den vorteil das man die größe des iframes, scrollbalken ränder etc direkt auf der seite im BE anpassen kann.
Ich habe also im prinzip nur ein css menü (danke georg! :o ) welches direkt so auf die foren verlinkt die dann im iframe aufgehen. die eigentlichen seiten, menüs usw dienen nur als "links, allgemein zugänglicher content und werbefläche 8-) " das heisst es ist in meinem fall nicht nötig eine T3 Loginbox zu verwenden bzw user anzulegen, das macht alles das forum welches mehr oder minder geschickt in die seite integriert und verlinkt ist.
Ich hoffe zur abwechslung mal jemandem geholfen zu haben anstatt immer nur "nach hilfe zu betteln". gerne kann ich zu DEM thema noch weiterhelfen wenn wer was braucht PM 8-) (wers sehn mag auch gerne PM an mich, site ist noch nicht ganz marktreif, werds dann aber hier posten =))

Liebe grüße Sascha

Unbekannter Benutzer ·

Hallo Leute,

mal eine ganz einfache Frage: Was wird hier bei typo3.net eigentlich für ein Forum verwendet? Sieht doch eigentlich auch recht schick aus und ist darüber hinaus sehr funktional. :-)

Viele Grüße
THETREE

steffenk ·

Dieses Forum ist eine Eigenentwicklung von mittwald. Nach Fertigstellung soll es auch öffentlich verfügbar sein, aber bitte nicht drängeln - rechnet mal mit Ende diesen Jahres.