Ein Login für beides: phpBB3 und phpBB2

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt, um einen neuen Mod zu entwickeln, geht's in [3.0.x] Mods in Entwicklung weiter.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
Saint
Mitglied
Beiträge: 1166
Registriert: 09.04.2004 14:06
Wohnort: Hamburg
Kontaktdaten:

Ein Login für beides: phpBB3 und phpBB2

Beitrag von Saint »

Mahlzeit geschätzte Gemeinde,

zuerst die Voraussetzungen:
  • zwei Foren, phpBB2 und phpBB3
  • die 2er läuft in einem Unterverzeichnis der 3er Version
  • die 2er läuft in der selben DB, hat aber einen anderen Prefix
  • Usernamen und Passwörter sind in beiden Foren identisch
Nun möchte ich einen User, der sich an der 3er Version anmeldet, automatisch auch am 2er System anmelden (inkl. Cookie). Also ein Login --> angemeldet an beiden Systemen.

Bei der 3er Version wäre es wohl am sinnvollsten in der includes/auth.php anzusetzen. Und zwar nach der Zeile:

Code: Alles auswählen

// If login succeeded, we will log the user in... else we pass the login array through...
			if ($login['status'] == LOGIN_SUCCESS)
Ab dort müsste stumpf ein Login / Cookie setzen für die 2er Version statt finden. Der User ist ja bereits validiert worden.

Mit der PHP class PHPBB_Login komme ich leider nicht wirklich weiter.
Hat jemand von Euch eine Idee, wie man das realisieren könnte?

Besten Dank schon mal :grin:

Saint
Zuletzt geändert von Saint am 13.11.2007 11:16, insgesamt 1-mal geändert.
Benutzeravatar
darkon
Mitglied
Beiträge: 1133
Registriert: 08.08.2003 15:07
Wohnort: Wölfersheim

Beitrag von darkon »

Was soll das bringen?
Der User kann doch eh immer nur eines der beiden Foren nutzen.
Benutzeravatar
Saint
Mitglied
Beiträge: 1166
Registriert: 09.04.2004 14:06
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Saint »

Keine Sorge - ich habe da schon eine Verwendung für. :wink:
Aber okay: ich fahre, bis einige Mods die ich für Olympus brauche zur Verfügung stehen, quasi einen "Hybrid".
Z.b das Smartor Album und der Download Mod laufen noch im phpBB2, alle weiteren Funktionen laufen auf Olympus. In der 2er Versionen sind alle Foren gesperrt und auch die overallheader ist Linktechnisch angepasst.
Vorschaubilder (mit Berechtigungsabfrage) aus dem Smartoralbum werden auch auf der Index von Olympus angezeigt, das habe ich für die Übergangszeit schon gebastelt.

Dadurch ist aber ein doppelter Login nötig - im neuen wie im alten System. Das will ich für die User vereinfachen.

Und um weiteren Fragen nach Sinn oder Unsinn vorzugreifen:
Das ist ein geschlossenes Forum für meinen Freundeskreis. Also keine regelmäßigen Neuregistrierungen.
Das alte Board hatte viele "Spezialfunktionen", die meine User nach wie vor brauchen.
Ist ein User erst einmal an beiden Systemen angemeldet, kann er alles nutzen.
Im alten System sollten sich die User auch nicht verirren, bzw in deaktivierte Bereiche stolpern, da eigentlich alle wichtigen Links entsprechend angepasst sind.
Benutzeravatar
Saint
Mitglied
Beiträge: 1166
Registriert: 09.04.2004 14:06
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Saint »

Eine Ecke weiter bin ich gekommen.
Diese zusammengebastelte Datei lasse ich an oben genannter Stelle in der auth.php includen:

Code: Alles auswählen

<?
//			Login phpBB2 -  START

function encode_ip($dotquad_ip)
{
	$ip_sep = explode('.', $dotquad_ip);
	return sprintf('%02x%02x%02x%02x', $ip_sep[0], $ip_sep[1], $ip_sep[2], $ip_sep[3]);
}

    //generate session id

    $query = "SELECT config_value FROM phpbb_config WHERE config_name='rand_seed'";
    $return_seed = mysql_query($query) or die(mysql_error());
    $seed = mysql_result($return_seed,0);

    $val = $seed. microtime();
    $val = md5($val);
    $seed = md5($seed . $val . 'a');

    // put it back in the table..werid
    $sql = "UPDATE phpbb_config SET config_value='$seed' WHERE config_name='rand_seed'";
    $return = mysql_query($sql) or die(mysql_error());

    $session_id = md5(substr($val, 4, 16));

    //get IP
    $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);

    //current time
    $current_time = time();

    //create entry in sessions table
    $sql = "INSERT INTO phpbb_sessions
             (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in, session_admin, SearchBot)
             VALUES ('$session_id', '$user_id', $current_time, $current_time, '$user_ip', '0', '1', '0', '0')";
    $return = mysql_query($sql) or die(mysql_error());
    // create sessiondata
    $sessiondata['userid'] = $user_id;
    $sessiondata['autologinid'] = false;

    setcookie('phpbb2mysql_data', serialize($sessiondata), $current_time + 31536000, "/", "www.xyz.de");
    setcookie('phpbb2mysql_sid', $session_id, 0, "/", "www.xyz.de");
//			Login phpBB2 -  ENDE

?>
(www.xyz.de ist natürlich durch die Cookie Domain ersetzt)

Es wird jetzt auch erfolgreich ein Cookie gesetzt und eine Session erzeugt.
Man ist aber trotzdem nicht eingeloggt. Offensichtlich wird nicht die richtige session_user_id in der Tabelle phpbb_sessions eingetragen, sondern immer der Wert -1, also als Gast.
Eigentlich müsste doch die richtige user_id aus Olympus übernommen werden, oder? Die Variable $user_id müsste ja schon von Olympus richtig erzeugt worden sein.
Hat jemand eine Idee was krumm läuft?

Gruß

Saint
Benutzeravatar
leopittoni
Mitglied
Beiträge: 1162
Registriert: 26.04.2004 20:17

Beitrag von leopittoni »

Suche genau das gleiche!!

Bist Du schon weitergekommen?

Danke! Léo
Antworten

Zurück zu „[3.0.x] Mod Suche/Anfragen“