3x bewertet

Besucher-Counter (für Seiten ohne Login System)

von llarca  |  22.01.2010 um 17:47 h
Skripte
Typ: Skripte
Stufe:Einfach Mittelmäßig
Hallo!

Ich dachte mir, ich schreibe dieses Tut hier und teile meinen Besucher-Counter mit euch. Oftmals ist es doof, einfach einen Counter von irgendeiner gratis Seite zu nehmen. Denn der Counter ist zwar gratis, er ist jedoch danach zur Anbieter Seite verlinkt und bezüglich Aussehen schwach bis gar nicht veränderbar.
Mich hat das immer gestört und so habe ich mir meinen eigenen Counter gebastelt.
Der Counter den es auf Giatu schon gibt ist meines Wissens nach nur für "Momentan Online" Anzeige von Mitgliedern. Meiner ist für solche Seiten ohne Login-System. So einen gäbe es auch schon (ich glaube jedenfalls, dass es so einer ist), aber der Download ist... tot! Smilie Der Nachteil an meinem Counter ist natürlich, dass man dafür MySQL benötigt.

So funktionierts:


  • Auf eurem Webspace eine MySQL Tabelle mit folgendem Code erstellen:

    My-SQL Code:
    CREATE TABLE counter (
    id INT( 150 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    ip VARCHAR( 250 ) NOT NULL ,
    time INT( 150 ) NOT NULL
    ) ENGINE = MYISAM ;


  • Dieses Skript als counter.php abspeichern: (Die ZIP-Datei wollte irgendwie nicht auf den Server :/)



    <?php

    include('db.php'); // Verbindung zur Datenbank

    $timestamp time();
    $datumheute date("d.m.Y",$timestamp);

    $ip getenv("REMOTE_ADDR");

    $abfrage "SELECT * FROM counter WHERE ip = '".$ip."'";
    $ergebnis mysql_query($abfrage);
    $eintragen 1;
    while (
    $row=mysql_fetch_array($ergebnis))
       {
        
    $datumtabelle date("d.m.Y",$row["time"]);
        if (
    $datumtabelle == $datumheute)
           {
            
    $eintragen 0;
            
    $id $row["id"];
           }
        else
           {
            
    $eintragen 1;
           }
       }
    if (
    $eintragen == 1)
       {
        
    $eintrag mysql_query("INSERT INTO counter (ip, time) VALUES
    ('"
    .$ip."', '".$timestamp."')");
       }
    elseif (
    $eintragen == 0)
       {
        
    $eintrag mysql_query("UPDATE counter SET time = '".$timestamp."'
    WHERE id = '"
    .$id."'");
       }

    $minuten 5/* Für wieviele Minuten bleibt man als Online angezeigt,
    auch wenn man die Seite nicht neu lädt? [Standart: 5 Minuten] */

    $time time()-60*$minuten;
    $abfrage "SELECT * FROM counter WHERE time >= '".$time."'";
    $ergebnis mysql_query($abfrage);
    $online mysql_num_rows($ergebnis);

    $abfrage "SELECT * FROM counter";
    $ergebnis mysql_query($abfrage);
    $heute 0;
    while (
    $row=mysql_fetch_array($ergebnis))
       {
        
    $datumtabelle date("d.m.Y",$row["time"]);
        if (
    $datumtabelle == $datumheute)
           {
            
    $heute++;
           }
       }
    $alltime mysql_num_rows($ergebnis);

    /*
    Wie füge ich den Counter ein?
    Momentan Online auf dieser Website: $online
    Heute Online: $heute
    Insgesamt Online: $alltime

    Bsp.:
    Momentan sind auf dieser Seite gerade <?php echo $online; ?> Leute
    Online!
    */

    ?>





    counter.php mit eurem Programm öffnen und anpassen. Einzige nötige Anpassungen:
    - eventuell Anpassung der Datenbankverbindungen (Standart: include(′db.php′);)
    - Anpassung der Minuten, wie lange jemand als Online gilt (Standart: 5 Minuten)

  • "counter.php" an die Stelle includen, an der ihr den Counter haben wollt. Danach könnt ihr die Counter-Anzeigen mit $online (Anzahl Leute die momentan Online sind), $heute (Anzahl Leute die Heute Online waren) und $alltime (Anzahl Leute die insgesasmt Online waren) einfügen.

    Beispiel:
    Momentan sind auf dieser Seite gerade <?php echo $online?> Leute
    Online!




Ich hoffe mal, das so alles klar ist und bei euch alles so gut klappt wie bei mir. Smilie
Falls irgendetwas unklar ist oder ihr irgendwelche Probleme kriegt, einfach melden (per PN oder Kommentar oder MSN oder ... oder ... oder ... Smilie )

Eure Llarca



4 Kommentare




CrazyMoFu

Ja endlich ich dachte schon das kommt nie, aber warum freu ich mich so?!
Eig. kann ich das auch selber xD
Aber du hast es gut gemacht!
am 26.01.2010 um 17:25 Uhr


llarca

Uhm.. weil php-Skripte manchmal Zeit und Nerven kosten? Smilie Und weil man sich erst ma dazu aufraffen muss xD
& Danke vielmals Smilie
am 27.01.2010 um 16:36 Uhr


Coconutshake

Ich würde mir nurnoch wünschen, die Besucherzahlen von gestern und einen Tagesrekord noch anzeigen zu können. Aber sonst ein super Tut, schön dass es hier endlich ein Counter Tut gibt bin sicher viele können was damit anfangen
am 27.01.2010 um 20:34 Uhr


llarca

sobald ich mal n bisschen zeit übrig hab, werd ich das noch einfügen / anfügen, was auch immer =)
am 09.02.2010 um 03:43 Uhr