online counter macht Probleme

Dieses Thema online counter macht Probleme im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von cultsibi, 5. Mai 2005.

Thema: online counter macht Probleme Das hier ist mein onlinecounter, der die Besucher der letzen 5min anzeigen soll Doch irgendwo muss ich einen...

  1. Das hier ist mein onlinecounter, der die Besucher der letzen 5min anzeigen soll
    Doch irgendwo muss ich einen Denkfehler gemacht haben, da er nicht ganz richtig funktioniert.
    Immer, wenn sich eine IP länger als 5min auf der Seite aufhält wird nach den 5min eine 0 in der ausgabe angezeigt...

    Wo ist der denkfehler?
    Oder gibt es bessere Lösungen um einen onlinecounter zu erstellen?

    Code:
    <?php
    	$cur_IP = $_SERVER['REMOTE_ADDR'];
     	$cur_time = time();
    	$IP_found2 = 0;
    
    
    
      $abfrage = SELECT time, IP FROM counter_index2 ORDER BY time ASC;;
      $ergebnis = mysql_query($abfrage);
    	while($row = mysql_fetch_assoc($ergebnis))
    	{
    		if($cur_IP == $row['IP'] and ($cur_time - 300) <= $row['time']) 
    		{ $IP_found2 = 1; }
    	}
    	
    	if(!$IP_found2)
    	{
    		$abfrage = INSERT INTO counter_index2
               (time, IP)
              VALUES
               (.$cur_time.,'.$cur_IP.');
    					mysql_query($abfrage);
    	}
    
    
    
      $abfrage = SELECT time, IP FROM counter_index ORDER BY time ASC;;
      $ergebnis = mysql_query($abfrage);
    	while($row = mysql_fetch_assoc($ergebnis))
    	{
    		if ($cur_time - 500 <= $row['time'])
    		{ $i_online++; }
    	}
    
    
    echo $i_online
    ?>
     
  2. Code:
    <?php
     $cur_IP = $_SERVER['REMOTE_ADDR'];
     $cur_time = time();
     $IP_found2 = 0;
    
     $abfrage = SELECT time, IP FROM counter_index2 ORDER BY time ASC;
     $ergebnis = mysql_query($abfrage);
     while($row = mysql_fetch_assoc($ergebnis)) {
      if($cur_IP == $row['IP'] and ($cur_time - 300) <= $row['time']) { $IP_found2 = 1; }
     }
    
     if(!$IP_found2) {
      $abfrage = INSERT INTO counter_index2 (time, IP) VALUES (->$cur_time',->$cur_IP' );
      mysql_query($abfrage);
     }
    
     $abfrage = SELECT time, IP FROM counter_index ORDER BY time ASC;
     $ergebnis = mysql_query($abfrage);
     while($row = mysql_fetch_assoc($ergebnis)) {
      if (($cur_time - 500) <= $row['time']) { $i_online++; }
     }
    
    echo $i_online;
    ?>
    
    geht es so?
     
  3. oder so ???

    Code:
    <?php
    $db_host = localhost;
    $db_user = xxx;
    $db_pass = xxx;
    $db_database = countertest;
    $db_table = counter;
    
    $cur_ip 		= $_SERVER['REMOTE_ADDR'];
    $expire_time 	= 300; // 5 min. Gültigkeit
    
    $expire_in		= time() + $expire;
    $expired 		= time() - $expire_time;
    
    if($res_id = mysql_connect($db_host, $db_user, $db_pass)) {
    	if(!mysql_select_db($db_database, $res_id)) {
    		die(<p style='color:red; font-weight:bold'>Konnte Datenbank \$db_database\ nicht öffnen!</p>);
    	}
    }
    else {
    	die(<p style='color:red; font-weight:bold'>Keine Verbindung zur Datenbank!</p>);	
    }
    
    /**
    * Tabelle aufräumen
    */
    $sql = DELETE FROM . $db_table . WHERE expire < .$expired. AND ip !='.$cur_ip.';
    mysql_query($sql);
    // evtl. Ausgabe der gelöschten Einträge
    echo <p>Gelöschte Einträge: <b>. mysql_affected_rows() .</b></p>;
    
    /**
    * Tabelle Update oder Neu-Eintrag ???
    */
    $sql = UPDATE . $db_table . SET expire=.$expire_in. WHERE ip='.$cur_ip.';
    mysql_query($sql);
    if(mysql_affected_rows() > 0) {
    	// Ausgabe der erneuerten IP's (kann normal nur 1 sein)
    	echo <p>Update: <b>. mysql_affected_rows() . IP</b></p>;
    }
    else {
    	$sql = INSERT INTO . $db_table . SET ip='.$cur_ip.', expire=.$expire_in.;
    	mysql_query($sql);
    	echo <p>Neueintrag: <b>. $cur_ip .</b></p>;
    }
    /**
    * Wieviel User sind Online
    */
    $sql = SELECT count(ip) as c FROM . $db_table .;
    $res = mysql_query($sql);
    $row = mysql_fetch_row($res);
    $txt = ($row[0] == 1) ? ist : sind;
    echo Es . $txt . <b>. $row[0] .</b> User Online!</p>;
    ?>
    
    ;) ;D

    gruss conny
     
  4. xxl format oder wie?
     
  5. nu fragt man sich allerdings, was uns dieser Text mitteilen will/soll ???
     
  6. ob du deinen counter darauf aufgelegt hast XXL mässig aussehen zu lassen

    ganz nach pimp my counter bzw. Supersize the Counter
     
  7. - Der Counter funktioniert bestens.
    - Kommentare zur Funktion sind immer hilfreich
    - Abgelaufene Einträge werden gelöscht
    - Bestehende Einträge werden erneuert und NICHT neu geschrieben
    - warum soll ich die ganze Tabelle einlesen und in einer WHILE Schleife (2x) durchlaufen lassen
    usw.

    aber mir solls ja egal sein ;) ;D


    gruss conny
     
  8. lol

    so en kombiangebot ::)
     
  9. Nur mal so am Rande, deine Version wird in 100 Jahren nicht funktionieren ;) ;D ;D ;D ;D

    Aber da du ja so schlau bist
    werde ich dir den Fehler natürlich nicht zeigen ;) ;D ;D

    Mehr gibts hierzu nicht zum sagen.

    gruss conny
     
  10. hmm

    du verfolgst jeden Post vor mir? *bibber*

    ganz nach LOTW(Lord of the Weed) wo Gandalf sagt Ich werde folgt. aah die Wände kommen immer näher...

    löl

    --> öff topic ^^
     
Die Seite wird geladen...

online counter macht Probleme - Ähnliche Themen

Forum Datum
online counter Webentwicklung, Hosting & Programmierung 14. Okt. 2002
Online schoppen ? Sonstiges rund ums Internet 27. Nov. 2016
Lotto Chancen online ? Sonstiges rund ums Internet 2. Nov. 2016
Windows 10 und Onlineverbindung Windows 10 Forum 31. Juli 2015
Laptop Online - Internetexplorer Offline ? Windows 7 Forum 21. Juni 2015