Seite 1 von 1

Besucherzähler (Last Visit) nach Update fehlerhaft

Verfasst: 21.07.2006 18:18
von olko
Habe Update durchgeführt von 2.0.17 auf aktuelle Version. Das hat alles recht gut geklappt, auch wenn ich beim update über ssh einiges an manuellen Nacharbeiten machen musste.

Es handelt sich um das Forum unter http://www.mexico-mexiko.com/index2.htm

Ich habe dort unter anderem (im Fuß der Seite) den erweiterten Besucherzähler eingebaut. Mir ist es erst nicht aufgefallen, aber einigen Moderatoren. Die Besucher werden nun falsch gezählt.

Anstelle von 1200 - 1400 Besuchern am Tag bleiben wir nach dem Update unter 800. Obwohl sich laut Statistik die Besucherzahlen erhöht haben. Nach Beobachtung musste ich feststellen, dass wirklich ein Fehler in der Programmierung ist. Bloß, wo kann ich suchen, um den fehlerhaften Code hier zu posten????

Hier mal ein Auszug der fehlerhaften Zählungen. Habe die Zahlen als Code gepostet, weil 8 und ) immer einen Smilie ergeben.

Zusammenfassung (Zwischenstand, es werden noch Daten benötigt)
Datum Zeit Besucher

Code: Alles auswählen

Datum Zeit Besucher (online x registrierte, x versteckte und x Gäste)

21.07. 10:02  475
21.07. 10:22  479
21.07. 10:32  480
21.07. 13:27  520
21.07. 15:17  596
21.07. 17:35  649
21.07. 17:36  648 ! Besucherabzug
21.07. 17:36  646 ! Besucherabzug
21.07. 17:36  647 
21.07. 17:37  644 ! Besucherabzug
21.07. 17:38  645 (online 1 - 0 - 12)
21.07. 17:39  645 (online 1 - 0 - 10)
21.07. 17:40  645 (online 1 - 1 - 10)
21.07. 17:40  644 (online 1 - 0 - 11) ! Besucherabzug
21.07. 17:40  644 (online 1 - 2 - 11)
21.07. 17:41  644 (online 1 - 2 - 12)
21.07. 17:41  640 (online 1 - 2 - 9) ! Besucherabzug
21.07. 17:42  641 (online 1 - 2 - 9)
21.07. 17:42  641 (online 1 - 2 - 9)
21.07. 17:43  641 (online 1 - 2 - 7)
21.07. 17:44  640 (online 1 - 1 - 7) ! Besucherabzug
21.07. 17:45  640 (online 1 - 1 - 6) 
21.07. 17:45  642 (online 1 - 1 - 8)
21.07. 17:45  642 (online 1 - 0 - 7)
21.07. 17:47  641 (online 1 - 0 - 5) ! Besucherabzug
21.07. 17:47  642 (online 1 - 0 - 5)
21.07. 17:48  640 (online 1 - 0 - 5) ! Besucherabzug
21.07. 17:48  640 (online 1 - 0 - 6)
21.07. 17:49  641 (online 1 - 0 - 7)
21.07. 17:49  641 (online 1 - 0 - 9)
21.07. 17:50  642 (online 1 - 0 - 8)
21.07. 17:51  644 (online 1 - 0 - 9)
21.07. 17:51  645 (online 1 - 0 - 10)
21.07. 17:52  645 (online 1 - 0 - 8)
21.07. 17:52  647 (online 1 - 0 - 10)
21.07. 17:53  646 (online 1 - 0 - 10) ! Besucherabzug
21.07. 17:54  646 (online 1 - 0 - 8)
21.07. 17:54  649 (online 1 - 0 - 13)
21.07. 17:55  649 (online 0 - 0 - 13)
21.07. 17:57  650 (online 1 - 0 - 12)
21.07. 17:58  651 (online 1 - 0 - 15)
21.07. 17:58  650 (online 1 - 0 - 14) ! Besucherabzug
21.07. 17:59  651 (online 1 - 0 - 14)
21.07. 17:59  652 (online 1 - 0 - 14)
21.07. 18:00  652 (online 1 - 0 - 11)
21.07. 18:00  653 (online 1 - 0 - 12)
21.07. 18:01  653 (online 1 - 0 - 11)
21.07. 18:01  653 (online 1 - 0 - 10)
21.07. 18:02  654 (online 1 - 0 - 10)
21.07. 18:02  654 (online 1 - 1 - 10)
21.07. 18:03  654 (online 1 - 1 - 8)
21.07. 18:03  654 (online 1 - 1 - 8)
21.07. 18:04  654 (online 1 - 0 - 8)
21.07. 18:05  653 (online 1 - 0 - 6) ! Besucherabzug
21.07. 18:05  654 (online 0 - 0 - 7)
Wer kann mir bitte einen Tipp geben, damit wir dem Fehler auf die Spur kommen?

Gruß

Oliver

Verfasst: 21.07.2006 21:50
von Simpson
Wenn du Last Visit meinst, da wurden Codeänderungen auf 2.0.21 vorgenommen. Clear im Zweifelsfall auch die Tables.

*ttp://phpbbhacks.com/download/237

Verfasst: 22.07.2006 09:02
von olko
Vielen Dank für den Hinweis. Dachte eher, dass ich beim Update einen manuellen Fehler gemacht hätte :roll:

Habe das Update durchgeführt. Ein Problem habe ich bei der Datei includes/sessions.php

Falls jemand dies spontan beantworten kann oder selbst mal bei sich in der Datei nachschaut, wäre dies gut. Ich kann aber auch warten, ob es jetzt fehlerfrei läuft.

Also, die Anleitung gab folgendes vor:

Code: Alles auswählen

# 
# 
#-----[ FIND ]------------------------------------------------ 
# 
if (
{
$last_visit = (

# 
#-----[ IN-LINE FIND ]---------------------------------------- 
# 
if 

# 
#-----[ IN-LINE BEFORE, ADD ]--------------------------------- 
# 
// 

# 
#-----[ IN-LINE FIND ]---------------------------------------- 
# 
{ 

# 
#-----[ IN-LINE BEFORE, ADD ]--------------------------------- 
# 
// 

# 
#-----[ FIND ]------------------------------------------------ 
# 
if (!$admin)
{
$sql = "UPDATE " . USERS_TABLE . "
SET

# 
#-----[ IN-LINE FIND ]---------------------------------------- 
# 
user_lastvisit = $last_visit 

# 
#-----[ IN-LINE AFTER, ADD ]---------------------------------- 
# 
, user_lastlogon = " . time() .  ", user_totallogon=user_totallogon+1 
Problem habe ich beim Part:

Code: Alles auswählen

#-----[ FIND ]------------------------------------------------ 
# 
if (!$admin)
{
$sql = "UPDATE " . USERS_TABLE . "
SET
Denn da habe ich zusätzlich noch was im Code. Davon habe ich aber nichts in der Anleitung gesehen, welche den Bereich entweder ausgelassen hat oder ich habe etwas zuviel "eingebaut"

Code: Alles auswählen

		$last_visit = ( $userdata['user_session_time'] > 0 ) ? $userdata['user_session_time'] : $current_time; 
		$last_visit = ( $userdata['user_session_time'] > 0 ) ? $userdata['user_session_time'] : $current_time; 
Und so sieht es bei mir jetzt aus:

Code: Alles auswählen

	//if ( $user_id != ANONYMOUS )
	//{ 
		$last_visit = ( $userdata['user_session_time'] > 0 ) ? $userdata['user_session_time'] : $current_time; 
		$last_visit = ( $userdata['user_session_time'] > 0 ) ? $userdata['user_session_time'] : $current_time; 
		$sql = "UPDATE " . USERS_TABLE . " 
			SET user_session_time = $current_time, user_session_page = $page_id, user_lastvisit = $last_visit, user_lastlogon = " . time() .  ", user_totallogon=user_totallogon+1
			WHERE user_id = $user_id";
		if ( !$db->sql_query($sql) )
Danke nochmals
Oliver

Verfasst: 22.07.2006 12:36
von Simpson
So sollte der Bereich aussehen:

Code: Alles auswählen

		if (!$admin)
		{
			$sql = "UPDATE " . USERS_TABLE . " 
				SET user_session_time = $current_time, user_session_page = $page_id, user_lastvisit = $last_visit, user_lastlogon = " . time() .  ", user_totallogon=user_totallogon+1
				WHERE user_id = $user_id";
			if ( !$db->sql_query($sql) )
			{
				message_die(CRITICAL_ERROR, 'Error updating last visit time', '', __LINE__, __FILE__, $sql);
			}
		}
Ist ebenfalls aus 2.0.21 mit verbautem Last visit Mod.

Verfasst: 22.07.2006 16:42
von olko
Laut Anleitung müsste // noch integriert werden.

Code: Alles auswählen

		//if (!$admin)
		//{
			$sql = "UPDATE " . USERS_TABLE . " 
				SET user_session_time.....
Habe eine erweitere Profilanzeige installiert welche mir als Admin die gesamte Online-Dauer, letze Online-Dauer, Anzahl der Besuche und Anzahl der besuchten Seiten anzeigt.

Von daher bestimmt folgender Programmcode. Doch warum (muss?) der doppelt dort steht?

Code: Alles auswählen

      $last_visit = ( $userdata['user_session_time'] > 0 ) ? $userdata['user_session_time'] : $current_time;
      $last_visit = ( $userdata['user_session_time'] > 0 ) ? $userdata['user_session_time'] : $current_time;
Ich check jetzt mal weiter ab, ob die Korrekturen den gewünschten Effekt hatten. Gehe ja mal davon aus.

Merci
Oliver

Woher bekomme ich die ausführliche Statistik?

Verfasst: 22.07.2006 20:02
von ottix
Hallo,

die Statistik damit ich sehe wieviele Besucher heute auf dem Forum waren usw. Woher bekommt man diese updates?

Gibt es noch mehr Module für das phpbb ?

Gruss Micha

Verfasst: 23.07.2006 08:01
von olko
QMicha

Simpson hat oben schon einen Link gepostet:

http://phpbbhacks.com/

Vielleicht für dich noch besser:

http://www.phpbb.de/moddb/

Gruß
Oliver