Danke
Währe klasse
Typo3 und ein *echtes* phpBB
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
jo, bin auch interessiert ;-)
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.
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.
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.
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 ...
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
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
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
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.
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
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
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('&', '&', 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
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.
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
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 ...
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
Oleson schriebEine "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.
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