Eigener Counter: Eigener Counter

Hi Leute, kann man mit html einen eigenen Counter erstellen? Ich schätze mal nicht, weil html ja nur anzeigen kann, und bestimmt nicht abspeichern kann, wieviele Leute auf der Seite waren. Würde das denn irgendwie mit5 Javascript oder sonstiges gehen?

Ich möchte nur stumpf die anzahl der Leute auf der Seite anzeigen. brauch nix graphisches zu sehen sein. Wenn ich mir einen fertigen Counter aus dem netz hole, dann habe cih da immer so blöde werbung mit drin.

Danke schonmal

  1. Hellihello Counter,

    Hi Leute, kann man mit html einen eigenen Counter erstellen? Ich schätze mal nicht, weil html ja nur anzeigen kann, und bestimmt nicht abspeichern kann, wieviele Leute auf der Seite waren. Würde das denn irgendwie mit5 Javascript oder sonstiges gehen?

    Du brauchst PHP.

    »

    Ich möchte nur stumpf die anzahl der Leute auf der Seite anzeigen. brauch nix graphisches zu sehen sein. Wenn ich mir einen fertigen Counter aus dem netz hole, dann habe cih da immer so blöde werbung mit drin.

      
    $counter=file_get_contents("counter.txt");  
    $counter++;  
    file_put_contents("counter.txt",$counter);  
    
    

    (ungeprüft)

    dazu muss eine datei "counter.txt" mit den richtigen Rechen vorhanden sein. Darin steht genau eine Zahl, nämlich der aktuelle count.

    Dank und Gruß,

    frankx

    1. Ich möchte nur stumpf die anzahl der Leute auf der Seite anzeigen.

      $counter=file_get_contents("counter.txt");
      $counter++;
      file_put_contents("counter.txt",$counter);

        
      Damit zählt er Seitenabrufe, aber nicht Besucher- oder Besuchszahlen, mal ganz zu schweigen davon, dass solche öffentlich einsehbaren Zähler zur Manipulation einladen und man von daher genauso gut irgendeine Phantasiezahl ausgeben könnte.  
        
      Das Mindeste für einen Besuchszähler ist eine IP-Sperre, für Besucherzahlen muss er jedem Besucher eine eindeutige Häftlingsnummer auf die Stirn stempeln (lies: langlebiges Cookie mit Seriennummer setzen).  
      
      
      1. Hallo,

        ...(lies: langlebiges Cookie mit Seriennummer setzen).

        ach und Cookies kann man nicht manipulieren?
        Wie wär es denn statt einer Datei mit einer Datenbank?
        Die Verfahrensweise unterscheidet sich nur unwesentlich.
        Man müsste halt nur ein paar Zeilen MySQL können.

        Das Counter unnütz sind, da stimme ich zu.

        Grüße, Matze

        1. ...(lies: langlebiges Cookie mit Seriennummer setzen).

          ach und Cookies kann man nicht manipulieren?

          Leitete ich den Satz, den Du so herzlos zerpflücktest, nicht mit "Das Mindeste" ein? Ja, ich schrieb "Das Mindeste", nicht, dass das nun absolut manipulationssicher sei.

          Wie wär es denn statt einer Datei mit einer Datenbank?
          Die Verfahrensweise unterscheidet sich nur unwesentlich.

          Das Ergebnis auch, zumindest bei einer mäßig besuchten Seite, bei der die Gefahr, dass sich mehrere PHP-Instanzen beim Beschreiben der einzigen Zählerdatei in die Quere kommen, noch gering ist.

          Das Problem des Ausgangsvorschlages ist IMHO weniger die Speicherung des Zählerstandes denn die Frage, was da gezählt wird (Seiten statt Besuche) und unter welcher Voraussetzung (nicht nur keinerlei Manipulationssicherung, sondern auch noch eine Manipulationseinladung).

      2. Hellihello frankx,

        Ich möchte nur stumpf die anzahl der Leute auf der Seite anzeigen.

        $counter=file_get_contents("counter.txt");
        $counter++;
        file_put_contents("counter.txt",$counter);

        
        >   
        > Damit zählt er Seitenabrufe, aber nicht Besucher- oder Besuchszahlen, mal ganz zu schweigen davon, dass solche öffentlich einsehbaren Zähler zur Manipulation einladen und man von daher genauso gut irgendeine Phantasiezahl ausgeben könnte.  
        >   
        > Das Mindeste für einen Besuchszähler ist eine IP-Sperre, für Besucherzahlen muss er jedem Besucher eine eindeutige Häftlingsnummer auf die Stirn stempeln (lies: langlebiges Cookie mit Seriennummer setzen).  
          
        Naja, er sprach von "stumpf". Das Ding ist ja auch erweiterbar.  
        Irgendwas in der Art:  
        ~~~php
          
        <?php  
        class My_Counter {  
         private $Sperrzeit = "30";  
          
         // mit Ordnerangabe "php/... - wird ja im übergeordneten Ordner includiert  
         private $CounterstandDatei = "php_counter/Counterstand.txt";  
         private $IpSperrDatei = "php_counter/IpSperrDatei.ser.txt";  
          
         //Variablendeklaration  
         private $IpListe=array();  
         private $Counterstand="";  
         private $DeletedList=array();  
          
         //Konstruktor, wird beim Aufruf "new My_Counter" ausgeführt  
         function __construct() {  
          //liest den Inhalt aus der Counterstanddatei  
          $this->Counterstand=file_get_contents($this->CounterstandDatei);  
          
          // wenn die Funktion CheckIpListe "true" zurückgibt, wird der Counter geupdated  
          if ($this->CheckIpListe()) {  
           $this->updateCounter();  
          }  
         }  
          
         // Checked die Ip-Zeit-Liste  
         private function CheckIpListe() {  
          
          //liest das serialisierte Datenarray mittels unserialize  
          $this->IpListe=unserialize(file_get_contents($this->IpSperrDatei));  
          
          // steht da nix drin, wird ein Array erstellt (vermeidung von Fehlermeldung)  
          if ($this->IpListe === false) {  
           $this->IpListe=array();  
          }  
          
          //aktuelleZeit holen,  
          $aktuelleZeit=time();  
          
          //default für Rückgabewert  
          $counter_erhoehen=true;  
          
          // geht die Liste der Ip-Zeit-Angaben durch  
          foreach ($this->IpListe as $Position => $EintragsInhalt) {  
          
           // gibt true, wenn die aktuelle Zeit größer als die gespeicherte plus Sperrzeit ist  
           $Sperrzeit_abgelaufen = ($EintragsInhalt["Zeit"]  + $this->Sperrzeit < $aktuelleZeit);  
          
           //gibt true, wenn die gespeichert Ip-Adresse gleich der aktuellen ist  
           $gleicheIpAdresse= ($EintragsInhalt["IpAdresse"] == $_SERVER ["REMOTE_ADDR"]);  
          
           // wenn Sperrzeit abgelaufn  
           if ($Sperrzeit_abgelaufen) {  
            //Eintrag aus Liste löschen  
            $this->DeletedList[]=$this->IpListe[$Position];  
            unset($this->IpListe[$Position]);  
           }  
          
           //ansonsten wenn Ip-Adressen gleich  
           elseif ($gleicheIpAdresse) {  
            //Rückgabe auf falsch setzen  
            $counter_erhoehen=false;  
           }  
          } // end foreach  
          
          //neuen Eintrag (als Hash) in die Liste machen nach dem Muster IpListe[Nr]["Zeit"] und IpListe[Nr]["IpAdresse"];  
          $this->IpListe[] = array ("Zeit"=>time(), "IpAdresse"=>$_SERVER ["REMOTE_ADDR"]);  
          // Liste serialisiert abspeichern  
          file_put_contents($this->IpSperrDatei,serialize($this->IpListe));  
          
          //zurückgeben, ob counter erhöht werden soll (true/false)  
          return $counter_erhoehen;  
         }  
          
         // counter erhöhen und abspeichern (unserialisiert, schlicht als text zahl)  
         private function updateCounter() {  
          $this->Counterstand++;  
          file_put_contents($this->CounterstandDatei,$this->Counterstand);  
         }  
          
         //Rückgabe des aktuellen Stands  
         public function counterStand() {  
          return $this->Counterstand;  
         }  
          
         public function showStatus() {  
          echo "Sperrzeit ist ".$this->Sperrzeit."<br>";  
          echo "Deine_IP ist ". $_SERVER["REMOTE_ADDR"]."<br>";  
          echo "gelöscht wurden : <pre>";  
          var_dump($this->DeletedList);  
          echo "</pre><br>in der Liste stehen noch : <pre>";  
          var_dump($this->IpListe);  
          echo "</pre>";  
         }  
        }  
        $My_Counter=new My_Counter();  
        echo $My_Counter->Counterstand();  
        ?>  
        
        

        Exitenz mit korrekten Rechten und Inhalt von IpSperrDatei.ser.txt und counter_neu.txt vorausgesetzt, im Ordner php_counter/.

        Dank und Gruß,

        frankx

        1. Ich möchte nur stumpf die anzahl der Leute auf der Seite anzeigen.

          Naja, er sprach von "stumpf".

          Nee, er sprach von "stumpf die Anzahl der Leute anzeigen". Der Vorschlag zeigt stumpf die Anzahl der Seitenabrufe an, das ist was anderes.

          Das Ding ist ja auch erweiterbar.

          <?php
          class My_Counter {
          private $Sperrzeit = "30";

          [Hundertzweiundzehn Zeilen…]

          ?>

          Nach dem Motto wäre ein modernes Automobil auch nur eine Erweiterung eines Eselkarrens … :>

          Dank und Gruß,

          Ich liebe vorgefertigte Grußschablonen, die sind immer so passend und persönlich. (Und ich bin heute bärbeißig.)

          1. Hallo,

            Nee, er sprach von "stumpf die Anzahl der Leute anzeigen". Der Vorschlag zeigt stumpf die Anzahl der Seitenabrufe an, das ist was anderes.

            ich bin mir fast sicher, dass der OP die Seitenaufrufe zählen will.
            Würde er wissen, wer so alles auf seine Seiten zugreift, also dass es nicht nur "Leute" sind, würde er sich vermutlich keinen Counter mehr zulegen wollen.

            Grüße, Matze

  2. Hallo

    ein bisschen mehr "Self" und (in diesem Fall) weniger "HTML" würde dir helfen.

    1. HTML, wie du richtig erkannt hast: NEIN
    2. Javascript scheidet auch aus, da es clientseitig ist

    3. Nimm am besten PHP

    Einen einfachen Counter bauen kannst du dir sehr leicht hier aneignen.
    Suche nach Datei bearbeiten, ...

    mfg
    Alex