kostenloser Webspace werbefrei: lima-city


Seite Lädt 3mal

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    eap

    eap hat kostenlosen Webspace.

    Ich hab ein großes Problem: Meine Seite Lädt nicht einmal, sondern dreimal. Ich hab es bemerkt, als die Besucherzählung und der jede Seite immer 3 Mal gezählt hat, und auch die Fehlerzählung mehr pro Fehlermeldung auch mehrere Einträge machte: genau gesagt 3-5.

    Ich hab den Quelltext, der Schuld sein könnte schon geprüft, hab aber keinen Fehler gefunden. Ich hab von der Seite eine genaue HTML-Seite, also das was der Browser ausführt hier gespeichert.: http://www.eap.lima-city.de/forum/Startseite.htm.

    Den genauen URL kann ich aus Sicherheitsgründen nicht bekanntgeben, da der Loginbereich noch entwickelt wird, und während der Entwicklungsphase ein hohes Sicherheitsrisiko besteht. Zurzeit kann man darum, wenn man den URL kennt auch alle IPs + Seitenaufrufe sehen. Das wird noch alles bis zur Veröffentlichung behoben werden.

    Könnt ihr Schauen, ob der Quelltext villeicht doch einen Fehler hat?

    mfg. eap

    Nachtrag: Hab mir die Seite noch mal angeschaut. Ist wohl eine Sicherheitslücke vorhanden, oder hab was übersehen, hab jetzt halt 15 Besucher, und es ist was interresanntes herrausgekommen: Hier der Inhalt der Datenbank (IP wurde aus Sicherheitsgründen gelöscht):

    ID	; First Timestamp ; Last Timestamp ; View Sites ; Browser und Betriebsystem
    
    1  ; 1274612610 ; 1274613909 ; 14 ; Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
    2  ; 1274965990 ; 1274978999 ; 151 ; Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
    3  ; 1274970271 ; 1274970272 ; 3 ; HTTP Compression Test ( www.whatsmyip.org/http_compression )
    4  ; 1274972299 ; 1274972302 ; 3 ; Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3
    5  ; 1274972350 ; 1274972353 ; 2 ; Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
    6  ; 1274973109 ; 1274973112 ; 3 ; Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
    7  ; 1274973159 ; 1274973162 ; 2 ; Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)
    8  ; 1274974342 ; 1274974342 ; 1 ; Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.55 Safari/533.4
    9  ; 1274974591 ; 1274974591 ; 1 ; Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.7 (KHTML, like Gecko) Chrome/5.0.391.0 Safari/533.7	
    10 ; 1274974980 ; 1274974980 ; 2 ; Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)	
    11 ; 1274975284 ; 1274975284 ; 1 ; Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.8 (KHTML, like Gecko) Iron/4.0.275.2 Chrome/4.0.275.2 Safari/532.8	
    12 ; 1274976985 ; 1274976988 ; 3 ; Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729; .NET4.0E)	
    13 ; 1274977542 ; 1274977545 ; 3 ; Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)
    14 ; 1274978458 ; 1274978462 ; 2 ; Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.1.4) Gecko/20091016 SUSE/3.5.4-1.1.2 Firefox/3.5.4	
    15 ; 1274978771 ; 1274978830 ; 10 ; Opera/9.80 (Windows NT 6.0; U; de) Presto/2.5.24 Version/10.53


    Das komische: Manche Seiten wurden einmal, andere 2 oder 3 mal geladen. Ich habe den Timestamp anzeigen lassen, da man sekundenenau die Serverabfragen sehen kann. Wenn Sie näher als ca. 5 sekunden beieinanderliegen, wird die Seite warscheinlich automatisch neugeladen. Das komische ist auch, dass der Besuchszähler über eine Blockade verfügt, der jede Seite nur einmal in der Zählung berücksichtigt. Dies wird über Sessions gemacht. irgendwie hat das aber keinen einfluss auf die Zählung.
    Wenn nötig, kann ich das Zählscript zeigen, da die sicherheitsrelevanten sachchen wo anders geamcht werden.

    Beitrag zuletzt geändert: 27.5.2010 19:10:34 von eap
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo eap,

    also an dem HTML, den der Browser kriegt, liegts nicht. Überprüfe lieber das Serverprogramm, das Du verwendest oder den Besucherzähler. Ich vermute das Problem dort. Leider hast Du das hier nicht gepostet, so dass keine weiteren Aussagen hierüber getroffen werden können.

    LG

    BigBaer
  4. Autor dieses Themas

    eap

    eap hat kostenlosen Webspace.

    Hier der Besucherzähler: Die Kommentare habe ich am 22.05 hinzugefügt. Sollten eine gute Hilfe, zum überschauen des Codes sein.

    <?php
    //#########################  Beschreibung der Datei #####################################
    /*
    
    	********* Allg. Informationen *********
    
    	Autor:		eap
    	E-Mail:		elektronik69@gmx.net
    
    	********** Dateinformationen **********
    
    	Datei erstellt am:				06.05.2010
    	Datei zuletzt bearbeitet am:	22.05.2010
    
    	Funktion der Datei:
    
    	1. Zählen der Aufrufe einer bestimmten Seite, mit Blocker				-- Fertig
    	2. Zählt die Benutzer und die Aufrufe einer Seite die dieser macht.		-- Fertig
    
    */
    
    //######################  Zähler für die Seitenaufrufe ##################################
    
    $new_site = 0;
    
    $url = $_SERVER["QUERY_STRING"];								// Aktueller URL hinter dem ?
    
    $abfrage = "SELECT ID, VIEWS FROM db_articel WHERE URL='$url'";	// Ruft die Zeile auf, in der URL = $url ist
    $ergebnis = mysql_query($abfrage);
    $row = mysql_fetch_object($ergebnis);							// Führt den Befehl aus und beschreibt die Array $row damit
    
    if (strpos("$view_sites_session","$row->ID;")==null)			// Fragt die Variable $row->ID und eine Semmikoke, ob dies schon in $view_sites_session ist.
    	{
    	if($view_sites_session == null)								// Wenn es der 1. Eintrag ist, wird eine Semikoke gesetzt
    		$view_sites_session = ";";
    	$view_sites_session = "$view_sites_session$row->ID;";		// Fügt zur aktuellen Seitenliste die Aktuelle hinzu
    	
    	$views = $row->VIEWS + 1;									// Inkrementiert die Variable mit der Anzahl der Ansichten
    
    	$new_site = 1;												// Setzt die Variable $new_site auf 1, damit der Besucherzähler inkrementiert wird
    	
    	$aendern = "UPDATE db_articel Set VIEWS='$views' WHERE URL='$url'";		// Ändert die Anzahl der Ansichten
    	$update = mysql_query($aendern);
    	}
    	
    //###################  MySQL-Besucherzähler mit IP-Sperre ###############################
    
    $timestamp = date(U);											// Aktuelle Zeit als Timestamp
    $ip = $_SERVER["REMOTE_ADDR"];									// Die aktuelle IP des Clients wird in $ip geschrieben
    $browser = $_SERVER["HTTP_USER_AGENT"];							// Die Teschnischen Daten "Browser, Betriebssystem" werden in $browser geschrieben
    $date = date("Y-m-d", $timestamp);								// Aktuelles Datum mit der Formatierung Y-m-d
    
    $test = mysql_query("SELECT * FROM db_counter WHERE IP='$ip'"); // Testen, ob es bereits eine Eintrag über eine identische IP gibt
    
    if(mysql_num_rows($test) != 1)
    	{
    	mysql_query("INSERT INTO db_counter SET IP='$ip', FIRST_TIMESTAMP='$timestamp', LAST_TIMESTAMP='$timestamp', SITES='1', BROWSER='$browser'"); //Sonst einen neuen Eintrag vornehmen
    	
    	$testdate = mysql_query("SELECT USER FROM db_counter_day WHERE DAY='$date'"); 	// Testen, ob es bereits eine Eintrag über eine identische Datum gibt
    	if(mysql_num_rows($testdate) != 1)
    		{
    		mysql_query("INSERT INTO db_counter_day SET DAY='$date', USER='1'"); 	// Sonst einen neuen Eintrag vornehmen
    		}
    	else
    		{
    		$abfrage = "SELECT USER FROM db_counter_day WHERE DAY='$date'";			// Abrufen der Spalte USER wo DAY gleich $date ist
    		$ergebnis = mysql_query($abfrage);
    		$row = mysql_fetch_object($ergebnis);									// Führt den Befehl aus und beschreibt die Array $row damit
    
    		$user = $row->USER + 1;													// Inkrementieren der Variable $user
    
    		$aendern = "UPDATE db_counter_day Set USER='$user' WHERE DAY='$date'";	// Den neuen Wert von $user in USER schreiben
    		$update = mysql_query($aendern);
    		}
    	}
    else
    	{
    	$abfrage = "SELECT LAST_TIMESTAMP, SITES FROM db_counter WHERE IP='$ip'";	// Abrufen der Spalten SITES und LAST_TIMESTAMP von db_counter
    	$ergebnis = mysql_query($abfrage);
    	$row = mysql_fetch_object($ergebnis);										// Führt den Befehl aus und beschreibt die Array $row damit
    
    	$sites = $row->SITES;
    
    	if($new_site == 1)
    		{
    		$sites = $row->SITES + 1;												// inkrementiert $sites wenn $new_site 1 ist.
    		}
    	
    	$last_timestamp = date("Y-m-d", $row->LAST_TIMESTAMP);						// $row->LAST_TIMESTAMP wir Y-m-d Formatiert und in $last_timestamp geschrieben
    	
    	$aendern = "UPDATE db_counter Set SITES='$sites', LAST_TIMESTAMP='$timestamp', BROWSER='$browser' WHERE IP='$ip'";
    	mysql_query($aendern);														// Aktuallisieren der Werte in db_couter
    	
    	if($date != $last_timestamp)
    		{
    		$testdate = mysql_query("SELECT USER FROM db_counter_day WHERE DAY='$date'");	// Testen, ob es bereits eine Eintrag über eine identische Datum gibt
    		if(mysql_num_rows($testdate) != 1)
    			{
    			mysql_query("INSERT INTO db_counter_day SET DAY='$date', USER='1'");	// Sonst einen neuen Eintrag vornehmen
    			}
    		else
    			{
    			$abfrage = "SELECT USER FROM db_counter_day WHERE DAY='$date'";			// Abrufen der Spalte USER wo DAY gleich $date ist
    			$ergebnis = mysql_query($abfrage);
    			$row = mysql_fetch_object($ergebnis);									// Führt den Befehl aus und beschreibt die Array $row damit
    
    			$user = $row->USER + 1;													// Inkrementieren der Variable $user
    
    			$aendern = "UPDATE db_counter_day Set USER='$user' WHERE DAY='$date'";	// Den neuen Wert von $user in USER schreiben
    			$update = mysql_query($aendern);
    			}
    		}
    	}
    	
    //##################################  Ende ##############################################	
    	
    ?>


    Wenn jemand den Besucherzähler benutzen möchte, muss er den Autor und die E-Mail des Autors unverändert lassen.
    Es darf kein eigenes Copyrigt hinzugefügt werden!!


    Nachtrag:

    mit einer Erweiterung des Codes, habe ich eine mehrfachzählung vermieden:

    if($new_site == 1 && strpos($url,"ast=")==null && strpos($url,"itglied=")==null && strpos($url,"dmin=")==null && strpos($url,"rror=")==null)
    		{
    		$sites ++;																// inkrementiert $sites wenn $new_site 1 ist.
    		}


    Dabei wird die Variable $site nur inkrementiert, wenn keine spezielle Seite aufgerufen wird, die Spezielle Funktionen für den gast, dem Mitglied oder den Administrator, sowie keine Fehlerseite ist.
    Ich frag mich nur, warum ich so einen CODE noch einfügen musste, damit die Seite nicht 3mal gezählt wird

    mfg. eap

    Beitrag zuletzt geändert: 30.5.2010 13:13:10 von eap
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!