Ungelesene Beiträge erneut kennzeichnen?

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
LordZed
Mitglied
Beiträge: 62
Registriert: 29.11.2004 18:46

Ungelesene Beiträge erneut kennzeichnen?

Beitrag von LordZed »

Hi Leute! Ich wusste nicht wirklich, wie ich diesen Beitrag nennen sollte, aber mein Problem ist folgendes:

Ich habe Teile des Forums auf meiner Website eingebunden, so dass ich $userdata zur verfügung habe. Nun ist es aber so, dass von mir ungelesene Beiträge nicht mehr als solche markiert sind, wenn ich das Forum betrete.
Ich bin mir ziehmlich sicher, dass das was mit der Einbindung auf der Website zu tun hat und denke, dass irgendeiner von euch bestimmt eine Lösungsidee für dieses Problem hat.

Würde mich über eine schnelle Antwort freuen
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

KB:cookie_probleme
KB:knigge
LordZed
Mitglied
Beiträge: 62
Registriert: 29.11.2004 18:46

Beitrag von LordZed »

Ich hab das jetzt eingestellt und ich glaube daran liegt es nicht!
Meine Theorie:
Es gibt, wenn ich mich nicht irre einen Eintrag in der Datenbank, der "Last Login" heißt. Kann es sein, dass der diesen Eintrag updatet, wenn ich von der Website auf das Forum wechsel?
Also irgendwo ist da der Wurm drin! Ich weiß! Das ist keine aussagekräftige Aussage, aber ich weiß einfach nicht, was ich tun soll!
Hier mal der Teil, den ich in die Website includet habe:

Code: Alles auswählen

	//Benötigte Dateien und Variablen von phpBB
	define('IN_PHPBB', true);
	$phpbb_root_path = $_SERVER['DOCUMENT_ROOT'].'/forum/';
	include($phpbb_root_path . 'extension.inc');
	include($phpbb_root_path . 'common.'.$phpEx); 
	
	//Session auslesen und Benutzer-Informationen laden
	$userdata = session_pagestart($user_ip, PAGE_WEBSITE);
	init_userprefs($userdata);
Außerdem nutze ich noch folgendes in einem Funktion, die mir einen Forenticker zurück gibt:

Code: Alles auswählen

                                //Session auslesen und Benutzer-Informationen laden
				$userdata = session_pagestart($user_ip, PAGE_WEBSITE);
				init_userprefs($userdata);	
				// phpbb-Funktion, die uns die Rechte des Nutzers $userdata für alle Foren raussucht
				$u_access = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata);
Könnt ihr damit irgendwas anfangen?
Wie werden denn die Beiträge "errechnet", die ich noch nicht gelesen habe? Bzw. wann kennzeichnet der die als gelesen?

Es ist auch so, dass ich, wenn ich auf "Beiträge seit dem letzten Besuch anzeigen" im Forum klicke ich ein leeres Ergebnis bekomme. D.h. das müsste irgendwas damit zu tun haben... frage ist nur wo der Fehler ist... please! Need your help! ;)
Cojote
Mitglied
Beiträge: 40
Registriert: 14.10.2004 14:44

Beitrag von Cojote »

Hallo,

hatte genau das gleiche Problem, konnte es mittlerweile allerdings lösen.

Meiner Meinung nach (ich habe das auch getestet) haben die seit dem letzten Login neuen Beiträge nichts mit Cookies zu tun. Es ist lediglich die von dir erwähnte Spalte die für das als gelesen markiert sorgt.

Habe das Problem gelöst indem ich mir eine neue funktion statt session_begin geschrieben habe.
Die neue funktion ist eine exakte Kopie der alten bis auf folgendes:

Code: Alles auswählen

$sql = "UPDATE " . USERS_TABLE . " 
			SET user_session_time = $current_time, user_session_page = $page_id WHERE user_id = $user_id";
Diesen Query habe ich aus der neuen Funktion komplett entfernt.
Da das session_begin aus session_pagestart heraus aufgerufen wird musst du auch diese Funktion kopieren und einen neuen Namen dafür vergeben. In der neuen Funktion ersetzt du den aufruf session_begin durch den aufruf deiner neuen Funktion von vorhin

Auf den Forumexternen Seiten benutze ich diese neue Funktion statt dem session_pagestart - seitdem funktioniert es auch mit den ungelesenen Beiträgen.

Es geht mit Sicherheit auch irgendwie klarer indem man das phpbb dahingehend erweitert dass es zwischen sessions im Forum und auf der Seite unterscheiden kann aber meine Lösung schien mir am wenigsten kompliziert.
LordZed
Mitglied
Beiträge: 62
Registriert: 29.11.2004 18:46

Beitrag von LordZed »

Ich finde das echt verdammt komisch, denn die SessionID auf der Page und die im Forum sind ja eigemntlich die selben. Und wenn ich im Forum die Seiten wechsel und anschließend zur Hauptseite zurückkehre sind ja auch nicht alle Einträge als gelesen markiert.

Werde mich mal auf die genaue Fehlersuche begeben! ^^
LordZed
Mitglied
Beiträge: 62
Registriert: 29.11.2004 18:46

Beitrag von LordZed »

*push*
Keiner 'ne Idee, woran das liegt bzw. wie ich mein Problem sonst lösen kann?
Wieso werden alle Topics als gelesen markiert, wenn ich von der Website komme, aber nicht, wenn ich im Forum die Seite wechsel?
Antworten

Zurück zu „Coding & Technik“