Doppelte IPs filtern bei who-is-online

Thema wurde von HolgerNils (xycons.de), 19. Dezember 2012 erstellt.

  1. HolgerNils (xycons.de)

    HolgerNils (xycons.de) G-WARD 2013/2014

    Registriert seit:
    29. Oktober 2011
    Beiträge:
    1.984
    Danke erhalten:
    468
    Danke vergeben:
    369
    Anbei ein ganz kleines Weihnachtspräsent für all die, die es zwar eindrucksvoll finden, wenn sie gerade mit 74 Sessions im 2-Sekunden-Takt von Google gecrawled werden und die Anzeige "Wer is online" 75 "Kunden" ausweist...und dennoch lieber wissen möchten wieviele einzelne Kunden das in Wirklichkeit sind.

    Datei /admin/whos_online.php
    Code:
    <?php
      $whos_online_query = xtc_db_query("select customer_id, full_name, ip_address, time_entry, [COLOR=red]MIN([/COLOR]time_last_click[COLOR=red])[/COLOR], last_page_url, session_id from " . TABLE_WHOS_ONLINE ." [COLOR=red]group by ip_address[/COLOR] order by time_last_click desc");
      while ($whos_online = xtc_db_fetch_array($whos_online_query)) {
        $time_online = (time() - $whos_online['time_entry']);
    
    Die kleine Modifikation in dem Basis-SQL der Anzeige gruppiert und kumuliert erstmal nach IP-Adresse und nimmt dann davon den jüngsten Eintrag ausgehend vom Wann-war-der-letzte-Click. So wird Gevatter Google wenigstens nur noch als "ein Kunde" angezeigt :cool:
     
  2. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    31.112
    Danke erhalten:
    6.153
    Danke vergeben:
    1.090
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Vielleicht solltest mal ein Piwik Plugin Entwickeln, das änlich wie das Wlordpress Plugin arbeitet und die wichtigsten Werte zusammengefast anzeigt.
    Würde sich besser machen als die Whoisonline Anzeige.

    Also nur falls dir mal die Ideen Ausgehen sollten ;)
     
  3. Manni_HB

    Manni_HB G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Hallo Holger,

    nettes Teil ... kleiner MiniBug noch: "Letzter Klick" ist bei allen gleich.
     
  4. HolgerNils (xycons.de)

    HolgerNils (xycons.de) G-WARD 2013/2014

    Registriert seit:
    29. Oktober 2011
    Beiträge:
    1.984
    Danke erhalten:
    468
    Danke vergeben:
    369
    Verdammt! Manni findet aber auch alles ;-)
    Ja, hast Recht.

    Mit dem MIN verändert man bei MySQL ja den Spaltennamen in der Ergebnismenge sozusagen...
    Also den originären Namen explizit angeben, sonst heisst das Ding "MIN(time_last_click)" und damit kann die PHP nicht umgehen.

    Code:
      $whos_online_query = xtc_db_query("select customer_id, full_name, ip_address, time_entry, MIN(time_last_click) [COLOR=red]AS time_last_click[/COLOR], last_page_url, session_id from " . TABLE_WHOS_ONLINE ." group by ip_address order by time_last_click desc");
      while ($whos_online = xtc_db_fetch_array($whos_online_query)) {
        $time_online = (time() - $whos_online['time_entry']);
    
     
  5. Manni_HB

    Manni_HB G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Ach - Du wolltest doch bloß sehen wer dein Gerät einbaut!
    Nu isses schön!

    Ähm ... außer man wurde noch in Klammern sehen können, wie viele gleiche IP´s in Gruppne zusammen gefasst sind.
     
  6. HolgerNils (xycons.de)

    HolgerNils (xycons.de) G-WARD 2013/2014

    Registriert seit:
    29. Oktober 2011
    Beiträge:
    1.984
    Danke erhalten:
    468
    Danke vergeben:
    369
    hehe, das gibt's dann zu Ostern ;-)
     
  7. Manni_HB

    Manni_HB G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    :(:(:(:(:(:(:(:(

    Na gut ... :rolleyes:
     
  8. HolgerNils (xycons.de)

    HolgerNils (xycons.de) G-WARD 2013/2014

    Registriert seit:
    29. Oktober 2011
    Beiträge:
    1.984
    Danke erhalten:
    468
    Danke vergeben:
    369
    Was hab' ich mir jetzt wieder eingebrockt. Wie ich Manfred kenne kommt pünktlich am Karfreitag 2013 'ne Erinnerungsmail ;-) hehe
     
  9. toulouse

    toulouse Mitglied

    Registriert seit:
    13. Dezember 2012
    Beiträge:
    23
    Danke erhalten:
    0
    Guten Morgen,
    wie genau kann ich diesen Code einfügen? Bin was Programmiersprachen angeht nicht so erfahren. Hab meinen Shop zwar problemlos einrichten können aber an sowas trau ich micht ohne Hilfe dann doch nicht ran. Mir ging das auch schon auf den Keks das zig IP´s gleich sind, im ersten Moment denkt man WOOOOW aber im wenn man dann sieht das es alles die selben IP´s sind.
    Vielen Dank im voraus.
    LG
    Patrick
     
  10. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    31.112
    Danke erhalten:
    6.153
    Danke vergeben:
    1.090
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    verlass dich nicht auf die Besucherzahlen dieses shops bzw. whos online. Da sind auch alle Bots und co mit drinnen.
    Wenn wirklich statistiken haben willst nutz piwik oder google analytics.

    Wo du was einfügen musst steht eigentlich oben im 1. Post.
     
  11. Bueroland

    Bueroland Aktives Mitglied

    Registriert seit:
    25. Juni 2012
    Beiträge:
    38
    Danke erhalten:
    17
    Danke vergeben:
    29
    Damit die Eintrittszeit nicht größer ist als der letzter Klick sollte man auch time_entry sortieren

    PHP:
      $whos_online_query xtc_db_query("select customer_id, full_name, ip_address, MIN(time_entry) as time_entry, MAX(time_last_click) AS time_last_click, last_page_url, session_id from " TABLE_WHOS_ONLINE ." group by ip_address order by time_last_click desc, time_entry desc");
     
  12. toulouse

    toulouse Mitglied

    Registriert seit:
    13. Dezember 2012
    Beiträge:
    23
    Danke erhalten:
    0
    Hat geklappt..... Vielen Dank