Seite 1 von 1

phpBB LogIn auf Typo3-Startseite

Verfasst: 15.03.2005 11:21
von snorri
Hej!

(Ich hoffe, diese Frage ist hier am richtigen Platz, sonst bitte verschieben!)

Ich habe eine Site mit dem CMS Typo3 erstellt und dort ein phpBB installiert. Nun möchte ich auf die Startseite ein LogIn-Feld für das Forum einbauen bzw. den Benutzer mit seinem Namen ansprechen, falls er bereits eingeloggt ist. Das habe ich schonmal woanders gemacht, aber noch nie in Typo3.

Wenn ich diesen Code nun als PHP-Inhaltselement einfüge, bekomme ich jedesmal vom phpBB die Fehlermeldung "Fatal error: Call to a member function on a non-object in /html/phpBB2/includes/sessions.php on line 66". Ich habe in meiner Verzweiflung auch statt meinem eigenen Code den aus der login.php und aus dem MOD phpBBFetchAll versucht, bekomme aber immer den gleichen Fehler. Irgendwie fühlt sich der phpBB-Code in einem PHP-Inhaltselement nicht recht wohl. Der Fehler tritt anscheinend auf, sobald diese Zeile erreicht wird:
$userdata = session_pagestart($user_ip, PAGE_INDEX);

Für die, die Typo3 nicht kennen: Der PHP-Code wird in diesen Inhaltselementen anscheinend mit eval() ausgeführt.

Hat das hier schonmal jemand gemacht und kann mir einen Tipp geben, wie ich das hinbekomme?

-- snorri

[EDIT: Nur sicherheitshalber: Ich verwende das echte phpBB, nicht die gleichnamige Typo3-Extension!]

Verfasst: 15.03.2005 11:22
von Leuchte
KB:phpbb_login

Verfasst: 15.03.2005 11:31
von snorri
Jaja, schon, nur sieht mein Code bereits genauso aus. Selbst wenn ich nur den in Deinem Link empfohlenen nackten Rahmen-Code einbinde, bekomme ich diese Fehlermeldung:

Code: Alles auswählen

<?php
//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);


//Session auslesen und Benutzer-Informationen laden
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);


//Dieser Block kann weggelassen werden, wenn du nur den die Userdaten brauchst und auf den phpBB-Header verzichen möchtest
$page_title = 'Meine Seite';
include($phpbb_root_path . 'includes/page_header.'.$phpEx);



/***** Inhaltsbereich ******/



//Footer - nur dann weglassen, wenn du auch den Header weglässt
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
Dazu muss ich noch nicht einmal etwas Weiteres programmieren. Anscheinend fehlt der Funktion session_pagestart() irgendetwas, um fehlerfrei abzulaufen.

-- snorri

Verfasst: 15.03.2005 11:38
von Leuchte
Welche Fehlermeldung? Wenn du

Code: Alles auswählen

<form action="login.php" method="post"> 
Benutzername: <input type="text" name="username"><br> 
Passwort: <input type="password" name="password"><br> 
Autologin? <input type="checkbox" name="autologin"><br> 
<input type="hidden" name="redirect" value="meine_homepage.php"> 
<input type="submit" name="login" value="Login"> 
</form>
benutzt und das Aktionsziel anpasst, funktioniert es garantiert. Das hat auch nichts mit der Vorlage für in phpBB eingebundene Seiten zu tun

Verfasst: 15.03.2005 11:45
von snorri
Hej Leuchte!

Klar, ein HTML-Formular kann ich immer einbauen. Aber nicht vorher abprüfen, ob der betreffende User bereits eingeloggt ist, denn in diesem Fall will ich ihm natürlich kein LogIn-Feld anbieten, sondern eine Begrüßung und Links auf sein Profil, seine PM usw..

-- snorri

Verfasst: 15.03.2005 22:39
von snorri
Hej,

ich habe noch eine Weile rumprobiert und das Problem vielleicht ein wenig eingegrenzt ... aber nur ein wenig:

Die Codezeilen, die Fehlermeldungen produzieren, wenn ich den oben von Leuchte verlinkten "phpBB-Rahmen-Code" als PHP-Inhaltselement in Typo3 verwende, sehen so aus:

Code: Alles auswählen

$template->set_filenames(... (aus includes/page_header.php oder page_footer.php)

$db->sql_query(... (aus sessions.php)
Und die Fehlermeldung besagt ja, dass ich dabei etwas als Objekt zu behandeln versuche, das gar kein Objekt ist. Das klingt doch stark danach, dass PHP in diesem Umfeld die Objekte $db und $template gar nicht kennt! :o Aber warum nur? Muss ich die noch gesondert als global definieren, obwohl ich in gar keiner Funktion bin, dafür aber in einem von eval() ausgewerteten Code?

-- snorri

typo3 login mit phpbb

Verfasst: 24.03.2006 10:20
von caretaker-gfn
hi @all
ich habe ähnliches vor...
mein phpbb ist nun genug aufgemoddet, dass es in mein neues typo3 projekt reinpassen soll.
allerdings auch über iene typo3 logIn seite direkt in einen geschützten bereich, wo es auch das forum gibt.
also übergabe username&passwort von phpbb an typo3...
habt ihr das problem mittlerweile gelöst?
die neue typo3.org seite ist ja sehr schlecht geworden und man findet wenig input dazu...
hoffe ich höre ovn euch...
caretaker