Problem mit Last Visit Hack

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
easygo
Beiträge: 155
Registriert: Fr 22.Okt, 2004 13:20
Kontaktdaten:

Problem mit Last Visit Hack

Beitrag von easygo »

Schon komisch, kaum hat man endlich keine größeren Board-
Probleme mehr, jagt man sogar den Kleinsten hinterher ^^

^a

Dummerweise bin ich in dem Fall ziemlich ratlos:

Also es geht um den Last Visit Hack von Niels (http://mods.db9.dk)
auf phpBB 2.0.8 + Dimension 0.1.1 + Erweiterungen

Die Parameter "totaltime" (Gesamt-Onlinezeit) und "totalpages" (Page Hits)
werden seit geraumer Zeit nicht mehr abgefragt bzw. aktualisiert,
aber Fehlermeldungen tauchen keine auf.

Kennt jemand das Problem? Hängt das evtl. mit Server Globals
zusammen oder besteht möglicherweise ein Mod-Konflikt?

Bin für jeden Hinweis dankbar ^^

mfg
easygo
Diskutiere nie mit einem Idioten: Erst zieht er dich auf sein
Niveau runter und dort schl?gt er dich mit Erfahrung.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Gute Frage. Das Problem ist im phpBB2 plus 1.5.2 auch vorhanden, daß diese Angaben nicht bei jedem User angezeigt, bzw. gespeichert werden. Ich will dem noch auf den Grund gehen.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
easygo
Beiträge: 155
Registriert: Fr 22.Okt, 2004 13:20
Kontaktdaten:

Beitrag von easygo »

Trotzdem Danke für dein schnelles Feedback ^^

Keiner hat für jeden, kleinen Bug die Lösung gleich im Kopf ;-)

Bin ich also net allein mit meinem "Problemchenchen"

Das beruhigt(!) und erspart mir solche Aktionen
wie: Jeden Hack einzeln ausbauen ^^

mfg
easygo
Diskutiere nie mit einem Idioten: Erst zieht er dich auf sein
Niveau runter und dort schl?gt er dich mit Erfahrung.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Tjoar, so wie es aussieht, kann ich hier keinen Fehler finden, bzw. Bug.
Der Mod sollte bei jeder Session (auch, wenn eine bestehende abläuft) sauber in die User-Tabelle die Sessionlänge eintragen, bzw. zu der bereits gespeicherten addieren.
Warum er daß nicht immer und überall macht entzieht sich dabei dann meiner Kenntnis.
Vielleicht sollte mal Niels, der Autor des Last Visit Mods, auf http://mods.db9.dk gefragt werden. Dieses Problem ist dort jedenfalls nicht angesprochen worden, bzw. hatte ich auch dort bislang keine Lösung dafür gefunden.

Die einzigste Idee, die ich hier habe:

Code: Alles auswählen

#
#-----[ OPEN ]-----
#
includes/sessions.php

#
#-----[ FIND ]-----
#
				if ( $current_time - $userdata['session_time'] > 60 || ((( $userdata['user_id'] == ANONYMOUS )?$userdata['user_session_topic']:$userdata['session_topic']) != $thispage_topic) || (( $userdata['user_id'] == ANONYMOUS )?$userdata['user_session_page']:$userdata['session_page']) != $thispage_id)

#
#-----[ REPLACE WITH ]-----
#
				if ( $current_time - $userdata['session_time'] > 60 )


#
#-----[ SAVE/CLOSE ALL FILES ]-----
#
# EoM
Da ich keinen Sinn sehe, warum die erweiterten Optionen hier enthalten sein sollen, diese eben mal versuchsweise entfernen, um zu prüfen, ob nun bei den betreffenden Usern Zeiten hinterlegt werden.
Mehr Ideen habe ich dann aber wirklich nicht mehr.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
easygo
Beiträge: 155
Registriert: Fr 22.Okt, 2004 13:20
Kontaktdaten:

Beitrag von easygo »

[quote="oxpus - Do 28.Okt, 2004 18:19";p="16100"]Da ich keinen Sinn sehe, warum die erweiterten Optionen hier enthalten sein sollen, diese eben mal versuchsweise entfernen, um zu prüfen, ob nun bei den betreffenden Usern Zeiten hinterlegt werden.
Mehr Ideen habe ich dann aber wirklich nicht mehr.[/quote]

Hätt ich ja gern mal entfernt, aber 'session_topic' ist bei mir gar net vorhanden.

Hat mir aber geholfen, den Übeltäter zu finden ^^

Jedenfalls funktioniert es endlich wieder! :D

Also es hing mit dem Einbau vom Activity Mod zusammen:

Code: Alles auswählen

#
#-----[ OPEN ]------------------------------------------
#
includes/sessions.php

#
#-----[ FIND ]------------------------------------------
# around line 270
					if ( $userdata['user_id'] != ANONYMOUS )
					{
						$sql = "UPDATE " . USERS_TABLE . " 
							SET user_session_time = $current_time, user_session_page = $thispage_id 
							WHERE user_id = " . $userdata['user_id'];
						if ( !$db->sql_query($sql) )
						{
							message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql);
						}
					}

#
#-----[ REPLACE WITH ]------------------------------------------
#
#-----Wenn Prillian NICHT benutzt wird--------------------------
#-----If Prillian is not used----------------------------------- 
#
					if ($thispage_id != PAGE_PLAYING_SCORE) {
						$user_session_update = ", user_session_page = ".$thispage_id;
					} ELSE {
						$user_session_update = "";
					}
					if ( $userdata['user_id'] != ANONYMOUS )
					{
						$sql = "UPDATE " . USERS_TABLE . " 
							SET user_session_time = $current_time".$user_session_update." 
							WHERE user_id = " . $userdata['user_id'];
						if ( !$db->sql_query($sql) )
						{
							message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql);
						}
					}

Dadurch wurden gleich ein Paar Änderungen vom Last Visit Mod überschrieben ^^

Hab ich erstmal wieder rückgängig gemacht und hoffe,
dass der Activity Mod damit klar kommt.

Code: Alles auswählen

					//if ( $userdata['user_id'] != ANONYMOUS )
					//{
						$sql = "UPDATE " . USERS_TABLE . " 
							SET user_session_time = $current_time, user_session_page = $thispage_id, user_totalpages = user_totalpages+1, user_totaltime = user_totaltime+($current_time-".$userdata['session_time'].") 
							WHERE user_id = " . $userdata['user_id'];
						if ( !$db->sql_query($sql) )
						{
							message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql);
						}
					//}
mfg
easygo
Diskutiere nie mit einem Idioten: Erst zieht er dich auf sein
Niveau runter und dort schl?gt er dich mit Erfahrung.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ah ja. Muss man schliesslich wissen.

Dazu auch gleich ein Tipp von mir:
Wenn Ihr irgendwas ersetzen sollt, immer darauf achten, daß die zu ersetzenden Code-Zeile(n) auch genau so in den Dateien vorhanden sind, wie im betreffenden Mod angegeben. Ansonsten schauen, was wie ersetzt werden muss, um nicht bereits installierte Mods zu deaktivieren.
Das musste ich bereits auch viele Male so durchführen, da leider nicht jeder die Anweisung [ IN-LINE...] verwendet.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Ich habe mir mittlerweile angewöhnt den alten Codeteil nicht zu löschen, sondern nur auszukommentieren. Zum einem kann man dann die veränderung gut vergleichen und zum anderem sind evtl. enstehende Bugs leichter zu finden. :)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
easygo
Beiträge: 155
Registriert: Fr 22.Okt, 2004 13:20
Kontaktdaten:

Beitrag von easygo »

Hmja, hin wie her. Der Last Visit war bei uns schon vorinstalliert ^^

Ich hätte aber schon gern mal gewusst, ob man den Hack mit dem
Activity Hack in der sessions.php unter einen Hut bringen kann.

Wie Klein easy das herausliest, soll kein sessions_update erfolgen,
solange sich der User auf PAGE_PLAYING_SCORE befindet.

Ist das jetzt gut, Latte oder eher schlecht?

mfg
easygo
Diskutiere nie mit einem Idioten: Erst zieht er dich auf sein
Niveau runter und dort schl?gt er dich mit Erfahrung.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Was soll denn an der sessions.php durch den Activity Hack geändert werden?
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
easygo
Beiträge: 155
Registriert: Fr 22.Okt, 2004 13:20
Kontaktdaten:

Beitrag von easygo »

[quote="oxpus - So 31.Okt, 2004 17:14";p="16237"]Was soll denn an der sessions.php durch den Activity Hack geändert werden?[/quote]

Aehm, das hatte ich weiter oben schon mal mit angefügt:

Code: Alles auswählen

#
#-----[ OPEN ]------------------------------------------
#
includes/sessions.php

#
#-----[ FIND ]------------------------------------------
# around line 270
					if ( $userdata['user_id'] != ANONYMOUS )
					{
						$sql = "UPDATE " . USERS_TABLE . " 
							SET user_session_time = $current_time, user_session_page = $thispage_id 
							WHERE user_id = " . $userdata['user_id'];
						if ( !$db->sql_query($sql) )
						{
							message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql);
						}
					}

#
#-----[ REPLACE WITH ]------------------------------------------
#
#-----Wenn Prillian NICHT benutzt wird--------------------------
#-----If Prillian is not used----------------------------------- 
#
					if ($thispage_id != PAGE_PLAYING_SCORE) {
						$user_session_update = ", user_session_page = ".$thispage_id;
					} ELSE {
						$user_session_update = "";
					}
					if ( $userdata['user_id'] != ANONYMOUS )
					{
						$sql = "UPDATE " . USERS_TABLE . " 
							SET user_session_time = $current_time".$user_session_update." 
							WHERE user_id = " . $userdata['user_id'];
						if ( !$db->sql_query($sql) )
						{
							message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql);
						}
					}
mfg :D
easygo
Diskutiere nie mit einem Idioten: Erst zieht er dich auf sein
Niveau runter und dort schl?gt er dich mit Erfahrung.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

:eek: Ja sorry, vergessen.
Nun, wenn der Last Visit Mod genau an dieser Stelle die sessions.php auch verändert, dann baue das kombiniert so ein. Es sollte nichts dagegen sprechen, daß dann einer der beiden Mods nicht mehr korrekt läuft.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
easygo
Beiträge: 155
Registriert: Fr 22.Okt, 2004 13:20
Kontaktdaten:

Beitrag von easygo »

[quote="oxpus - So 31.Okt, 2004 23:41";p="16258"]Es sollte nichts dagegen sprechen, daß dann einer der beiden Mods nicht mehr korrekt läuft.[/quote]

Genau das ist ja das Maleur ^^

mfg :confused:
easygo
Diskutiere nie mit einem Idioten: Erst zieht er dich auf sein
Niveau runter und dort schl?gt er dich mit Erfahrung.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Wie jetzt? Das klappt nicht?
Was genau geht denn dann nicht mehr? (oder hab ich das schon wieder überlesen???)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Antworten