Ankündigung

Einklappen
Keine Ankündigung bisher.

[Skript | PHP + MySQL] Einfacher Counter mit Reloadsperre

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Skript | PHP + MySQL] Einfacher Counter mit Reloadsperre

    Hab einen kleiner Counter gebastelt, der folgende Features hat:
    • 24h IP Sperre
    • eine einzige MySQL-Tabelle
    • leicht einzubinden und anzupassen
    • zeigt heutige Besucher und die in den letzten 15 Min. an


    ersteinmal das ganze Script. Erklärung folgt unten:
    PHP-Code:
    <?php
      mysql_connect
    ('localhost','user','passwort') or die("Verbindung fehlgeschlagen.");
      
    mysql_select_db('datenbank') or die("Datenbank nicht vorhanden.");
      
    $table "counter";

      
    $tag date("j");
      
    $monat date("m");
      
    $jahr date("Y");
      
    $timenow mktime(0,0,0,$monat,$tag,$jahr);
      
      
    $sql_check "SELECT * FROM `".$table."` WHERE `timed` < '".$timenow."'";
      
    $erg_check mysql_query($sql_check);
      while(
    $row mysql_fetch_array($erg_check)){
        
    mysql_query("DELETE FROM `".$table."` WHERE `id`='".$row['id']."'");
      }
      
      
    $sql_check2 "SELECT * FROM `".$table."` WHERE `ip` = '".$_SERVER['REMOTE_ADDR']."'";
      
    $erg_check2 mysql_query($sql_check2);
      
    $row mysql_num_rows($erg_check2);
      if(
    $row == "0"){
        
    mysql_query("INSERT INTO `".$table."` ( `id` , `ip` , `timed` ) VALUES ('', '".$_SERVER['REMOTE_ADDR']."', '".time()."')");
      }else{
        
    mysql_query("UPDATE `".$table."` SET `timed`='".time()."' WHERE `ip` = '".$_SERVER['REMOTE_ADDR']."'");
      }
      
      
    $sql_heute "SELECT * FROM `".$table."`";
      
    $erg_heute mysql_query($sql_heute);
      
    $heute mysql_num_rows($erg_heute);
      echo 
    "<b>heute:</b> ".$heute."<br />";
      
      
    $sql_gesamt "SELECT * FROM `".$table."` ORDER BY `id` DESC";
      
    $erg_gesamt mysql_query($sql_gesamt);
      
    $row mysql_fetch_array($erg_gesamt);
      
    $gesamt $row['id'];
      echo 
    "<b>gesamt:</b> ".$gesamt."<br />";
      
      
    $zeit "900";
      
    $time time();
      
    $zeit $time-$zeit;
      
    $sql_online "SELECT * FROM `".$table."` WHERE `timed` > '".$zeit."'";
      
    $erg_online mysql_query($sql_online);
      
    $online mysql_num_rows($erg_online);
      echo 
    "<b>online:</b> ".$online."";
    ?>
    Schema der MySQL-Tabelle:
    Code:
    CREATE TABLE `counter` (
      `id` bigint(20) NOT NULL auto_increment,
      `ip` varchar(15) NOT NULL default '',
      `timed` varchar(11) NOT NULL default '',
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    Erklärung
    PHP-Code:
    <?php
      mysql_connect
    ('localhost','user','passwort') or die("Verbindung fehlgeschlagen.");
      
    mysql_select_db('datenbank') or die("Datenbank nicht vorhanden.");
      
      
    $table "counter";
    ?>
    Hier wird die Verbindung zur Datenbank hergestellt und die Tabelle
    angegeben, in der alle Daten gespeichert und ausgelesen werden.

    PHP-Code:
    <?php
      $tag 
    date("j");
      
    $monat date("m");
      
    $jahr date("Y");
      
    $timenow mktime(0,0,0,$monat,$tag,$jahr);
    ?>
    Hier wird der Timestamp des heutigen Tages Punkt Mitternacht errechnet,
    benötigt wird dieser gleich für die IP-Sperre.

    PHP-Code:
    <?php
      $sql_check 
    "SELECT * FROM `".$table."` WHERE `timed` < '".$timenow."'";
      
    $erg_check mysql_query($sql_check);
      while(
    $row mysql_fetch_array($erg_check)){
        
    mysql_query("DELETE FROM `".$table."` WHERE `id`='".$row['id']."'");
      }
    ?>
    Jetzt werden ersteinmal alle Datenbankeinträge, die vor heute gespeichert
    wurden, glöscht, um die DB nicht zu überfüllen.

    PHP-Code:
    <?php
      $sql_check2 
    "SELECT * FROM `".$table."` WHERE `ip` = '".$_SERVER['REMOTE_ADDR']."'";
      
    $erg_check2 mysql_query($sql_check2);
      
    $row mysql_num_rows($erg_check2);
      if(
    $row == "0"){
        
    mysql_query("INSERT INTO `".$table."` ( `id` , `ip` , `timed` ) VALUES ('', '".$_SERVER['REMOTE_ADDR']."', '".time()."')");
      }else{
        
    mysql_query("UPDATE `".$table."` SET `timed`='".time()."' WHERE `ip` = '".$_SERVER['REMOTE_ADDR']."'");
      }
    ?>
    Dieser Scriptteil überprüft, ob die IP des User schon in der Datenbank
    vorhanden ist. Ist dies der Fall, so wird der Timestamp dieses Besuchers erneuert.
    Andernfalls wird ein neuer Eintrag hinzugefügt, der neben dem Timestamp und
    der IP eine ID enthält, die automatisch nach oben gezählt wird. (dank MySQLs auto_increment)

    PHP-Code:
    <?php
      $sql_heute 
    "SELECT * FROM `".$table."`";
      
    $erg_heute mysql_query($sql_heute);
      
    $heute mysql_num_rows($erg_heute);
      echo 
    "<b>heute:</b> ".$heute."<br />";
    ?>
    Auslesen Teil I: die Anzahl der heutigen wird über die Anzahl der Einträge ermittelt.
    PHP-Code:
    <?php
      $sql_gesamt 
    "SELECT * FROM `".$table."` ORDER BY `id` DESC";
      
    $erg_gesamt mysql_query($sql_gesamt);
      
    $row mysql_fetch_array($erg_gesamt);
      
    $gesamt $row['id'];
      echo 
    "<b>gesamt:</b> ".$gesamt."<br />";
    ?>
    Aulesen Teil II: die Anzahl aller Besucher wird über die id des letzten
    Besuchers ermittelt. Dies ist möglich, da der auto_increment-Wert der DB immer
    gesteigert wird, auch wenn die letzten EInträge gelöscht werden.
    PHP-Code:
    <?php
      $zeit 
    "900";
      
    $time time();
      
    $zeit $time-$zeit;
      
    $sql_online "SELECT * FROM `".$table."` WHERE `timed` > '".$zeit."'";
      
    $erg_online mysql_query($sql_online);
      
    $online2 mysql_num_rows($erg_online);
      echo 
    "<b>online:</b> ".$online2."";
    ?>
    Auslesen Teil III: die Anzahl der User, die in den letzten 15 Minuten online
    waren, wird ermittelt indem die Einträge zusammengezählt werden, deren Timestamp
    innerhalb der letzten 15 Min (900sec) liegt.


    bei Problemen oder Anregungen - einfach hier fragen.

    fg Max
    Mein Blog: Just Curious

  • #2
    AW: [Skript | PHP + MySQL] Einfacher Counter mit Reloadsperre

    Hallo

    Vielen Dank für Dein Script. Was ich noch cool fände, ist, wenn man noch die Besucherzahl von Gestern sehen könnte. Hast du eine Idee?

    Gruss Luckic

    Kommentar


    • #3
      AW: [Skript | PHP + MySQL] Einfacher Counter mit Reloadsperre

      Hallo

      hab gerade deinen Counter eingebaut hab allerdings noch ein Frage dazu.

      Wie kann ich den Startwert hochsetzen, dass z.B. nicht bei 1 angefangen wird zu zählen sondern bei 100 etc.

      Ich danke im voraus.

      Mfg Leibnitz

      Kommentar

      homepage-forum.de - Hilfe für Webmaster! Statistiken

      Einklappen

      Themen: 57.205   Beiträge: 432.059   Mitglieder: 29.641   Aktive Mitglieder: 31
      Willkommen an unser neuestes Mitglied, Davidbeq.

      Online-Benutzer

      Einklappen

      756 Benutzer sind jetzt online. Registrierte Benutzer: 3, Gäste: 753.

      Mit 9.939 Benutzern waren am 17.05.2023 um 21:38 die meisten Benutzer gleichzeitig online.

      Die neuesten Themen

      Einklappen

      Die neuesten Beiträge

      Einklappen

      • Shalin
        Antwort auf Webseite neu bauen, was muss beachtet werden?
        Danke für eure Antworten.

        Ich bin derzeitig dabei, die Webseite auf HTML5 umstellen zu lassen. Kostet zwar Geld, aber dann ist alles sauber und ohne Fehler. :-)
        Heute, 18:02
      • Shalin
        Webseite neu bauen, was muss beachtet werden?
        Hallo zusammen,

        ich habe eine Homepage zum Thema der Borderline Störung. (https://leben-mit-borderline.org)

        Verwendet wird die aktuelle Wordpress Version mit dem SEO Tool Rank Math in der kostenlosen Variante.
        Nun ist es so, dass die Homepage einige Fehler aufweist und...
        03.06.2023, 19:46
      • arnego2
        Antwort auf Uk
        Na dann erzähle Mal wie die Ukraine es schaffen könnte.
        Gebiete abtretten ist dabei allerdings nicht dabei. Nun erzähle Mal....
        Heute, 16:27
      • ST747
        Uk
        Bei dem Thema Krieg in der Ukraine habe ich mich bisher zurückgehalten, aber wir kommen jetzt in eine entscheidente Phase.

        Natürlich ist Putins Krieg zu verurteilen, aber die Ukraine hätte längst einen Waffenstillstand oder Zugeständnisse an Putin verhandeln können, damit dieser Krieg...
        Gestern, 20:38
      • daniel5959
        Antwort auf Uk
        Hallo,

        erst die Krim, dann die östliche Gebiete der Ukraine - glaubt jemand ernsthaft, dass sich Russland mit den östlichen Teilen der Ukraine zufrieden geben würde?

        Wir in Deutschland sollten eigentlich wissen, dass Diktatoren nie zufrieden sind, auch Hitler hat man Gebiete...
        Heute, 00:04
      • bodan
        Antwort auf Webseiten gestalten in Teams: welches Tool setzt ihr ein: Sketch, Figma oder Penpot?
        hi LocalFu, hi Arnego

        vielen Dank für Eure Rückmeldungen, Eure Beiträge.


        Vorweg: Ich freu mich von Euch zu hoeren. Vorweg: ich kannte bis vor kurzem die Tools auch noch nicht. Bin an denen v.a. deshalb interessiert, weil man hier halt wohl


        LocalFu:...
        08.06.2023, 07:24
      • bodan
        Webseiten gestalten in Teams: welches Tool setzt ihr ein: Sketch, Figma oder Penpot?
        Seit einiger Zeit sind die Tools in der Diskussion - für Aufgabenbereiche, wie jene, Webseiten gestalten in Teams:

        welches Tool setzt ihr ein: Sketch, Figma oder Penpot?

        Ist Figma oder Penpot passender, geeigneter? Welches Tool nutzt Ihr für kollaboratives Webdesign und für...
        06.06.2023, 20:25
      • arnego2
        Antwort auf Vietcong Informationsseite
        Nun ja eine weitere Amazon Verkaufplattform mit Spele Teil.
        08.06.2023, 01:00
      • s.blue
        Vietcong Informationsseite
        Hallo zusammen,

        ich habe eine Website zu Vietcong 1 erstellt, obwohl das Spiel schon etwas älter ist. Dort sind alle Informationen enthalten, die mir zur Verfügung stehen bzw. standen.

        Ihr könnt gerne Feedback geben und mir mitteilen, falls ich etwas vergessen habe!
        ...
        Vietcong 1 ist ein First-Person-Shooter-Videospiel Vietcong wurde von Pterodon und Illusion Softworks entwickelt und im Jahr 2003 von Gathering of Developers veröffentlicht. Vietcong 1 ist ein First-Person-Shooter-Videospiel Vietcong wurde von Pterodon und Illusion Softworks entwickelt und im Jahr 2003 von Gathering of Developers veröffentlicht. Singleplayer und
        03.06.2023, 09:16
      • arnego2
        Antwort auf KI - eine große Bedrohung für die Menschheit
        Nun ja die Erde ist recht Groß wer also in der Nähe der Orte lebt wo diese Robots entwickelt werden sollte an zumziehen denken....
        07.06.2023, 17:27
      Lädt...
      X