Keine Gäste

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
kolo
Mitglied
Beiträge: 13
Registriert: 06.11.2002 09:43
Wohnort: Essen

Beitrag von kolo »

Der Tipp hat leider nicht geholfen, aber ich habe nun eine Lösung. Ich habe den Fehler nicht beseitigt, das Problem aber umgangen. Indem ich einfach die Gäste getrennt auslese. Es ist nämlich so dass die SQL Abfrage nur registrierte User zurück liefert. Demnach kann er auch nur registrerite User auswerten.

Ich habe einfach eine neue SQl Abfrage angehängt, die nur Gäste einliesst und auswertet. Und das machst Du wie folgt (für Korrekturen bin ich dankbar)
(OHNE GEWÄHR! Bei mir geht es)


SUCHE NACH :

Code: Alles auswählen

		// Skip multiple sessions for one user
		if ( $row['session_ip'] != $prev_session_ip )
		{
			$guests_online++;
		}
	}

	$prev_session_ip = $row['session_ip'];
}

Dahinter einbringen :

Code: Alles auswählen

// -------------- wertet die Gaeste einzeln aus. 
if ($guests_online < 1)
{
 $g_sql = "SELECT session_logged_in, session_ip, session_user_id 
		  FROM ".SESSIONS_TABLE."  WHERE session_user_id = '-1'
		AND session_time >= ".( time() - 300 ) . "
	ORDER BY session_ip ASC";
 if( !($g_result = $db->sql_query($g_sql)) )
  {
	message_die(GENERAL_ERROR, 'Could not obtain user/online information', '', __LINE__, __FILE__, $g_sql);
  }
 while( $g_row = $db->sql_fetchrow($g_result) )
  {
   if ( $g_row['session_ip'] != $g_prev_session_ip )
	{
	 $guests_online++;
	}
	$g_prev_session_ip = $g_row['session_ip'];	
  }
}
Sag mal bescheid ob es damit bei Dir auch geht.
klabautermann

Gäste

Beitrag von klabautermann »

Ich habe aber eine andere Version, kann das dann funktionieren ( 2.0.1 und 2.0.3 )?
kolo
Mitglied
Beiträge: 13
Registriert: 06.11.2002 09:43
Wohnort: Essen

Beitrag von kolo »

Bei mir läufts seit gestern ohne Problem und korrekt.
Ob das bei unterschiedlichen Versionen problme bringt, weiss ihc nicht. Probier es vielleicht einfach aus. Diese Routine ließt ja nur die Session ein die von "NichtUsern" sind und zählt sie.
JazzP
Mitglied
Beiträge: 47
Registriert: 30.11.2002 22:07
Wohnort: Steinenbronn

Beitrag von JazzP »

@Kolo,
perfekt gelöst, hätte einen ähnlichen Vorschlag gemacht.
Funktioniert auch Probfrei mit php 2.0.3
MfG Jazz

Noch eine berichtigung:
suchen

Code: Alles auswählen

else
	{
		// Skip multiple sessions for one user
		if ( $row['session_ip'] != $prev_session_ip )
		{
			$guests_online++;
		}
	}

	$prev_session_ip = $row['session_ip'];
Das löschen und dann suchen

Code: Alles auswählen

if ( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN )
			{
				$online_userlist .= ( $online_userlist != '' ) ? ', ' . $user_online_link : $user_online_link;
			}
		}

		$prev_user_id = $row['user_id'];
	}
	
}
danach einfügen:

Code: Alles auswählen

// BEGINN -------------- wertet die Gaeste einzeln aus.
if ($guests_online < 1)
{
$g_sql = "SELECT session_logged_in, session_ip, session_user_id
        FROM ".SESSIONS_TABLE."  WHERE session_user_id = '-1'
      AND session_time >= ".( time() - 300 ) . "
   ORDER BY session_ip ASC";
if( !($g_result = $db->sql_query($g_sql)) )
  {
   message_die(GENERAL_ERROR, 'Could not obtain user/online information', '', __LINE__, __FILE__, $g_sql);
  }
while( $g_row = $db->sql_fetchrow($g_result) )
  {
   if ( $g_row['session_ip'] != $g_prev_session_ip )
   {
    $guests_online++;
   }
   $g_prev_session_ip = $g_row['session_ip'];   
  }
} 
// ENDE -------------- wertet die Gaeste einzeln aus.
Fertig!!! Funzt 100%!
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“