Seite 1 von 1

Session Management

Verfasst: 27.03.2006 12:47
von MadMarian
Hallo,

ich habe ein selbst programmiertes Portal mit phpBB 2.0.19 und einer Coppermine Fotogalerie.
Hier die Pfade:

Portal: www.screamsilence.net
Forum: www.screamsilence.net/forum/
Galerie: www.screamsilence.net/gallery/index.php

Nun habe ich im Portal eine Loginbox gebaut, damit man sich auch dort einloggen kann, da demnächst einige Bereiche nur für Mitglieder eingebaut werden sollen.
Diese Loginbox ist in einer extra php Datei namens navigation.php, die jeweils per include geladen wird (so muss ich die Termine z.B. immer nur in einer Datei ändern).
Loggt man sich nun über die Loginbox ein, wird dort dann ein Begrüßungstext angezeigt und wenn man das Forum (unter Community) aufruft, ist man auch dort gleich eingeloggt. Soweit so gut.
Nun soll dies allerdings auch bei der Galerie funktionieren. Doch das tut es leider nicht und ich weiß nicht warum...

Im Portal sieht die navigation.php so aus:

Code: Alles auswählen

session_start();
define('IN_PHPBB', true);

$phpbb_root_path = 'forum/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);

if($userdata['session_logged_in'])
	$loginbox_header = "Hallo ".$userdata['username'];
else
	$loginbox_header = "Login";
Für die Galerie habe ich eine zweite navigation.php gebaut, die im Galerie Stammverzeichnis liegt und dort die Links etc. angepasst. Außerdem habe ich das Session Management so wie in der anderen navigation.php übernommen und lediglich den $phpbb_root_path geändert auf '../forum/'.

Doch leider funktioniert es nicht. Ich bekomme wenn ich die Galerie aufrufe folgenden Fehler:

Fatal error: Call to a member function on a non-object in /mnt/kw2/04/863/00000003/htdocs/net/forum/includes/sessions.php on line 134

In Zeile 134 steht:

Code: Alles auswählen

if (!($result = $db->sql_query($sql)))

Jemand ne Idee??????

Verfasst: 27.03.2006 14:16
von cYbercOsmOnauT
Das bedeutet soviel wie das Du eine Funktion einer (PHP in dem Moment) nicht bekannten Klasse (Non-Object) aufrufen willst.

Ergo: Die DBAL ist nicht included. Hast Du bei der Gallery auch am Anfang das include($phpbb_root_path . 'common.'.$phpEx); drin?

Gruß,
Tekin

Verfasst: 27.03.2006 15:41
von MadMarian
Hab ich. Habs jetzt so verändert, dass der Teil hier in der Gallery Software steht und auch als allererstes auf jeder Seite der Gallery ausgeführt wird.

Code: Alles auswählen

session_start();
define('IN_PHPBB', true);

$phpbb_root_path = '../forum/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata); 
und der Teil hier in der navigation.php

Code: Alles auswählen

if($userdata['session_logged_in'])
   $loginbox_header = "Hallo ".$userdata['username'];
else
   $loginbox_header = "Login"; 
Jetzt bekomme ich zwar keine Fehlermeldung mehr, aber die Loginbox "weiß nicht" dass ich schon eingeloggt bin. Sie zeigt nicht an, wenn jemand eingeloggt ist. Dass dies der Fall ist sieht man, wenn man auf eine Seite im Portal geht. Dort steht dann korrekterweise Hallo <username>. In der Gallery nicht.
Gibts denn noch ne andere Möglichkeit das Cookie auszulesen? Denn wenn ich eigentlich eingeloggt bin, sollten alle Infos doch da drin stehen oder?

Verfasst: 27.03.2006 15:47
von cYbercOsmOnauT
Dazu müsste man nun Dein Galleryscript sehen, aber das ist auch eigentlich keine phpBB-Frage mehr, denn um die "Userdatenbank" von phpBB zu nutzen reichen die Zeilen, die Du oben eingebaut hast. Alles was danach kommt, ist Dein Ding.

Gruß,
Tekin

Verfasst: 27.03.2006 17:28
von MadMarian
Bei der Gallery kann man ne sog. Bridge zu phpBB einschalten. Das funktioniert auch. Heißt ich bin auch in der Gallery eingeloggt und die Userverwaltung von phpBB wird verwendet. Nur eben diese *#&% Loginbox funzt da nicht. :evil: :grin:

Aber dann weiß ich, dass ich phpBB-seitig schon mal alles richtig gemacht hab. Vielen Dank für die schnelle Hilfe!!! Ich versuch dann mal im Gallery Support Board Hilfe zu bekommen. :D

Ciao,
Mad