Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme mit Counter

Einklappen

Neue Werbung 2019

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

  • Probleme mit Counter

    Moin Leute

    habe bei mir auf der seite nen counter eingebaut.

    Mich stört aber, dass er jedes mal einen Zahl dazu addiert wenn man refresht. Besteht da ne Möglichkeit ein Zeitlimit einzubauen, dass er z.B. von der gleichen Person nur etwas dazuzählt wenn der innerhalb 1 Stunde refresht?

    Hier mal der Quellcode den ich nehme:



    Code:
    <?php
      $file = "counter.txt"; // Dateizuweisung
    
      $ftp = @fopen($file,"r+"); // Öffnet die Datei
      $count = (int)fgets($ftp,10); // Holt die ersten 10 Zeichen
    
      $count++; // Addiert eine 1
    
      rewind($ftp); // Setzt Zeige auf 0. Position
    
      fwrite($ftp,$count); // Schreibt
    
      fclose($ftp); // Schließt die Datei
    
      include($file); // Zeigt sich selbst an
    
    ?>
    Mfg

    Manuel

  • #2
    Re: Probleme mit Counter

    Zitat von Spreech
    Mich stört aber, dass er jedes mal einen Zahl dazu addiert wenn man refresht. Besteht da ne Möglichkeit ein Zeitlimit einzubauen, dass er z.B. von der gleichen Person nur etwas dazuzählt wenn der innerhalb 1 Stunde refresht?
    Woran sollte Dein Script denn erkennen, daß derjenige Client die Seite "schon mal angefaßt" hat?

    IP des Client? IPs sind fast ausschließlich temporär und werden bei jeder Einwahl neu vergeben.

    Cookies? Könnte man nehmen, wenn es nicht diverse Zeitschriften und TV Sendungen gäbe, in denen DAUs und andere Deppen vor den "bösartigen" Keksen gewarnt werden.

    Das war's dann auch schon...

    Kommentar


    • #3
      also es ist auf gut deutsch nicht möglich?

      Kommentar


      • #4
        Zitat von Spreech
        also es ist auf gut deutsch nicht möglich?
        Wie ich schrieb, hast Du 2 Möglichkeiten:

        IP des Clients zu speichern
        Da die IP des Clients vom Zufall abhängig ist ("Ach der schon wieder. Welche IP ist gerade frei?"), ist das Ergebnis nur ein "Schätzwert".

        Cookie ("Du warst schon hier")
        Viele DAUs schalten im Browser die Annahme von Keksen ab. Also ebenfalls nicht zuverlässig.

        Ansonsten bleibt Dir nur noch übrig, Dich mit Sessions zu beschäftigen:
        29. Sessions
        http://www.dclp-faq.de/ch/ch-version4_session.html

        Das verhindert allerdings auch nicht, daß der Client noch mal gezählt wird, wenn er das Browserfenster geschlossen und Deine Website später noch mal aufgerufen hat, weil er dann eine neue session_id bekäme. Damit wäre dann der Wiedererkennungswert gleich Null.

        Andere Möglichkeiten, nicht authentifizierte Zugriffe sinnvoll und genau zu zählen, gibt es nicht. Und wenn das Ergebnis nur "ungefähr" stimmt, kannst Du auch einen Zufallszahlengenerator benutzen.

        ## EDIT
        An og. Gründen scheitern alle PHP "Counter-Scripte", wenn man sich davon genaue Ergebnisse erhofft.

        Kommentar


        • #5
          ok soweit.

          noch ne weitere frage.

          gibt es irgendwie ne script vorlage oder so um auszulesen, welche ips gerade auf der site connected sind??

          mfg

          Kommentar


          • #6
            Zitat von Spreech
            gibt es irgendwie ne script vorlage oder so um auszulesen, welche ips gerade auf der site connected sind?
            Du hast falsche Vorstellungen vom HTTP Protokoll. Den Statuscode "connected" gibt es dort nicht.

            HTTP ist (simpel ausgedrückt) wie ein FAX Abrufdienst:
            Das eigene FAX Gerät will von einem fremden FAX Gerät eine Seite Text empfangen. Das Modem legt los, ruft die Nummer an, das fremde Modem nimmt den Anruf entgegen, schickt das FAX und dann legen beide wieder auf.

            Ich weiß ja, daß Dich die komplett sinnfreien Angaben auf diversen Webseiten "47 Besucher Online" neugierig machen, obwohl es lediglich 47 Clients waren, die innerhalb einer vorgegebenen Zeit mal eine "Seite HTML" haben wollten: die IP des Clients, der gerade "aktuell ist", steht in $_SERVER['REMOTE_ADDR'].

            Kommentar

            Lädt...
            X