Problem mit Session Abfrage

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Kato
Mitglied
Beiträge: 27
Registriert: 21.03.2004 18:29

Problem mit Session Abfrage

Beitrag von Kato »

Ich habe ein CMS, das die Benutzerverwaltung und das Sessionmanagement komplett von phpbb übernimmt, d.h. es direkt aus den entsprechenden phpbb-Tabellen ausliest oder in diese hinein schreibt.

Das funktioniert auch. Sobald ich mich im CMS einlogge erscheint eine entsprechende Session in der Sessiontabelle von phpbb. Wenn ich dann das Forum aufrufe bin ich auch eingeloggt und alles funktioniert wunderbar.
Nun wollte ich eine Übersichtsseite zwischen das Einloggen und den Forenaufruf schalten, auf der eine Themen- und Umfragenübersicht ist. Dazu habe ich die Umfragen per phpbb_fetch_all abgerufen und sie auf einer eigenen Seite dargestellt. Damit nur eingeloggte User voten können gibt es eine $userdata['session_logged_in'] -Abfrage. Und genau die macht Probleme, weil sie immer den Wert 0 zurückgibt.
Ich verstehe leider nicht wieso, bzw. wie ich die dazu kriege die vorhandene Session in der Sessiontabelle korrekt zu identifizieren.
Das Problem besteht nur auf dieser Übersichtsseite. Geht der User ins Forum ist er dort angemeldet.
Von meinem Verständnis her schreibt das CMS eine Session in die Tabelle und phpbb_fetch_all müsste irgendwie gesagt bekommen, dass es diese Session nehmen soll. Mit $userdata['session_logged_in'] haut es nicht hin.
Kann mir jemand sagen wieso, bzw. wie ich das lösen kann?
M0rGu3
Mitglied
Beiträge: 8
Registriert: 12.01.2006 20:23

Beitrag von M0rGu3 »

Eventuell kannst du es ja mit

Code: Alles auswählen

<!-- BEGIN switch_user_logged_out -->
und

Code: Alles auswählen

<!-- END switch_user_logged_out -->
machen. Versuch wär es jedenfalls wert, ob man es damit machen kann (obwohl etwas basteln nötig werden könnte).

Hast du die Zwischenseite mit ins phpBB eingebunden?

OFF-TOPIC: Wenn du mal Zeit hast, könntest du mir mal bitte das CMS verraten? Ich versuche gerade selber eins anzupassen, was mir aber zuviel Arbeit macht :D
Kato
Mitglied
Beiträge: 27
Registriert: 21.03.2004 18:29

Beitrag von Kato »

Merci für die Idee.

Code: Alles auswählen

<!-- BEGIN switch_user_logged_out -->
und

Code: Alles auswählen

<!-- END switch_user_logged_out -->


Hatte ich auch schon probiert aber das geht nur in den tpl. files von phpbb.
Die Zwischenseite wird vom CMS generiert. Dort kann ich

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); 
etc. nicht reinknüppeln sonst gibt es eine Fehlermeldung.

Das CMS zieht sich externe Seiten mittels include und kann sie darstellen. Nun war meine Idee, mit phpbb_fetch_all die Seite zu erstellen, die ich im CMS sehen will und diese per include darstellen zu lassen. Das funktioniert auch. Nur die Information, dass der User bereits eingeloggt ist kommt nicht an.

CMS erstellt eine Session und schreibt diese in die phpbb Datenbank. Sowohl CMS als auch phpbb können damit arbeiten. Mir fehlt der zündende Einfall, wie ich diese Info auch an phpbb_fetch_all weitergeben kann.

Das CMS ist Subdreamer: www.subdreamer.com

Hat vielleicht noch jemand eine Idee??

So jetzt ist mir gerade wieder eingefallen, dass es mit dem Auslesen des phpbb cookies funktionieren müsste. Ich hatte das zwar schon mal probiert aber es erscheint mir einen weiteren Versuch wert.


Hast du die Zwischenseite mit ins phpBB eingebunden?

OFF-TOPIC: Wenn du mal Zeit hast, könntest du mir mal bitte das CMS verraten? Ich versuche gerade selber eins anzupassen, was mir aber zuviel Arbeit macht :D[/quote]
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Ich hab mir jetzt das CMS bzw. die phpbb_fetch_all()-Funktion nicht genauer angeschaut, aber vllt. hilft dir ein global $userdata weiter...
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Kato
Mitglied
Beiträge: 27
Registriert: 21.03.2004 18:29

Beitrag von Kato »

:evil: global hat leider nicht weitergeholfen aber danke für die Idee.
Meine Idee das Cookie auszulesesn funzt auch nicht, weil logischerweise in dem Moment von der User auf die Zwischenseite kommt noch kein phpbb Cookie vorhanden ist. :-?
Aber evtl. gibt es ein CMS-Cookie, das ich auslesen kann. Dies muss ja irgendwie mit phpbb korrespondieren.
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Naja, beim Login ist der Cookie mit der Session-ID zwar noch nicht vorhanden, allerdings gibt dir die Funktion session_begin() (die wird beim normalen phpBB in der login.php ausgeführt) die Session-ID zurück. Mithilfe dieser ID kannst du dann die Daten aus der Benutzertabelle auslesen (evtl. sogar in Verbindung mit der Funktion session_pagestart() aus der sessions.php).

Hast du eigentlich schon mal sowas in der zwischengeschalteten Datei versucht:

Code: Alles auswählen

echo '<pre>' . print_r($userdata, true) . '</pre>';
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Antworten

Zurück zu „Coding & Technik“