Seite 1 von 1

2 Foren, 1 Userverwaltung = Problem Gelesen / Ungelesen

Verfasst: 13.08.2007 06:28
von bilbo_b
Hallo an alle...

Ich habe bei uns 2 Foren eingerichtet unter 2 unterschiedlichen Domains. Dabei teilen sich beide Foren die Benutzer (verwenden die gleiche Usertabelle). Soweit funktioniert das alles ganz gut. Auch die Cookies sind korrekt für jedes Forum eingestellt. Der Login ist kein Problem. Aber: Wenn User XY zuerst in Forum A war und danach in Forum B geht, sind auch dort alle Beiträge als gelesen markiert.

Frage: Woran kann das liegen ? WO speichert phpBB2, ob ein Beitrag gelesen ist und ob nicht ? Oder vielmehr, woran merkt es das ?

Verfasst: 13.08.2007 14:33
von gn#36
Das ist bei so einer Kombination ein problematisches Thema. Der Status gelesen/ungelesen wird anhand des letzten Logins festgehalten und in der zwischenzeit über die Session bzw. über Cookies gespeichert. Loggt man sich aus, schließt den Browser oder verwendet auf sonstige Weise eine neue Session (wie z.b. durch verwenden des anderen Pfads zum Forum), dann gehen diese Daten verloren und alles seit dem letzten Login wird als neu, alles vorher als gelesen markiert. Es gibt allerdings Mods, die diese Daten stattdessen in die Datenbank übertragen so dass die Themen tatsächlich gelesen sein müssen (oder explizit per Link als gelesen markiert) so dass diese bei einem erneuten Login nicht verloren gehen.
Schau z.b. mal hier: http://www.phpbb.de/viewtopic.php?p=862677#862677

Verfasst: 14.08.2007 06:20
von bilbo_b
Hab mir das mal alles grob durchgelesen. Ich befürchte der Mod ist nichts für mich, der frisst ganz schön an der Serverperformance. Ich bin der Meinung, das meine Cookieeinstellung eigentlich nicht das Problem sein dürften. Vielleicht mal kurz zu den Foren. Das eine ist ein Technikforum unter http://www.pfohlnet.de/phpBB2/ das andere ein Familienforum unter http://www.rabaukenland-online.de/phpBB2/.

Beide haben zwar die gleiche Usertabelle (und andere gemeinsame Tabellen) aber die Cookies heißen unterschiedlich. die Cookies sind wie folgt eingestellt:

pfohlnet:
Cookie-Domain:
Cookie-Name: phpbb2pfnet
Cookie-Pfad: /
Sicheres Cookie: deaktiviert
Sessionlänge: 3600
rabaukenland:
Cookie-Domain:
Cookie-Name: phpbb2rbkl
Cookie-Pfad: /
Sicheres Cookie: deaktiviert
Sessionlänge: 3600
Nach meinem Verständnis, hat ja nun das eine Cookie mit dem anderen nichts zu tun, da der Name ein anderer ist. Vermutlich ist aber die SessionID die gleiche. Ich vermute auch, das hier das Problem liegt. Kann man diese nicht ändern ?

Logge ich mich in Forum A ein, bin ich das auch in Forum B, wenn ich diesen Effekt unterdrücken könnte, wäre das die perfekte Lösung.

Verfasst: 14.08.2007 13:32
von gn#36
Nein, denn genau das würde die Foren als gelesen markieren. Im Prinzip müsstest du es stattdessen bewerkstelligen, dass du eben nicht neu angemeldet wirst sondern deine Session behältst, denn in dieser Session ist - weil die Userdaten nur ein einziges mal existieren - für beide Foren der gelesen - ungelesen Status gespeichert. Eine Alternative, die allerdings vermutlich nicht weniger Aufwändig wäre wäre die Speicherung des last-Login Zeitpunktes für beide Foren separat. Da auf dieser Zeitangabe wie gesagt im Prinzip der gesamte Gelesen / Ungelesen Status beruht könnte man durch Trennung der beiden Foren in diesem Punkt das Problem vermutlich lösen. Ich habe allerdings keinen Überblick wie viele Änderungen das im Code erfordern würde. Da das üblicherweise ja aus der Usertabelle in das Array $userdata geschrieben wird könnte man Glück haben und das sind nur ein paar Stellen in der sessions.php oder functions.php

Verfasst: 15.08.2007 06:24
von bilbo_b
Danke. Ich schau mir das am WE mal an. Vielleicht finde ich ja einen Weg, ohne den Code des Forums übermässig zu verändern. Da uns ja hoffentlich bald phpBB3 als Final zur Verfügung steht, möchte ich möglichst wenig ändern um schnell und vor allem problemlos upgraden zu können.