Ergebnis 1 bis 5 von 5

Thema: Reloadsperre

  1. #1
    König(in) Avatar von chris90night
    Registriert seit
    09.09.2006
    Ort
    <?php echo $_SERVER['PHP_SELF']; ?>
    Beiträge
    1.096
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Reloadsperre

    Abend!

    Habe einen einfachen Counter programmiert ...
    Code:
    if&#40;file_exists&#40;"counter.txt"&#41;&#41;&#123;
      $fp=fopen&#40;"counter.txt","r+"&#41;;
      $count=fgets&#40;$fp,6&#41;;
      $count++;
      rewind&#40;$fp&#41;;
      fputs&#40;$fp,$count,6&#41;;
      fclose&#40;$fp&#41;;
    &#125;else&#123;
      $fp=fopen&#40;"counter.txt","w"&#41;;
      $count="1";
      fputs&#40;$fp,$count,6&#41;;
      fclose&#40;$fp&#41;;  
    &#125;
    Kann mir jmd helfen eine Reloadsperre einzufügen.
    Ich glaube es gibt verschiedene Arten:
    Einmal eine Zeitsperre und eine Sperre die die Versuche zählt zum Aktualisieren (zb erst beim 20,mal reloaden +1 zählen)
    Könntet ihr mir beide Möglichkeiten zeigen? danke

    Gruß
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!


    Denk immer daran: auch am anderen Ende der Leitung sitzt ein Mensch!

  2. #2
    Großmeister(in)
    Registriert seit
    31.10.2005
    Ort
    Bei Muddi, wo sonst
    Beiträge
    524
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Du möchtest, dass der Zähler nicht hochgezählt wird, wenn jemand auf aktualisieren drückt, oder den Link besucht, der schonmal da war?
    Viele Grüße

    Mir nicht

  3. #3
    König(in)
    Themenstarter
    Avatar von chris90night
    Registriert seit
    09.09.2006
    Ort
    <?php echo $_SERVER['PHP_SELF']; ?>
    Beiträge
    1.096
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    ja genau, wenn ein besucher sich gerade auf meiner seite befindet, dann soll sich zb. für 24h am zähler nichts mehr tun, egal wie oft dieser user aktualisiert oder auf unterseiten geht ...
    also praktisch soll jeder pc nur einmal gezählt werden ... für 24h


    Denk immer daran: auch am anderen Ende der Leitung sitzt ein Mensch!

  4. #4
    Kaiser(in)
    Registriert seit
    09.12.2005
    Alter
    29
    Beiträge
    2.496
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    wie wärs mit dem?

    Code:
    <?php
    ######################config Bereich###############################################
    //Geben sie hier den Zeitraum in Sekunden an die ein Rechner gesperrt ist
    //momentan 1 Stunde
    $sperr_zeit  = 60*60*24;
    
    // Das was vor der Anzahl der Besucher stehen soll&#58;
    $ansage = "Visits &#58; 000";
    // WICHTIG&#58;Für Datei zahl.txt und iplogger.txt müssen auf alle schreibrechte besitzen &#40;also chmod 666&#41;,
    // und Zahl muss vor dem ersten Seiten aufruf mindestens eine 0 enthalten sonst wird nicht mitgezählt
    
    ######################config Bereich ENDE#############################################
    ####################### Programm &#58; ########################
    echo $ansage;
    kick_the_old_IPs&#40;&#41;;            // diese funktion sorgt dafür dass die Datei in der
                                  //die IP gelogged wird die Ips gelöscht werden die dort
                                  //schon länger vorhanden sind als in $sperr_Zeit erlaubt
        if &#40;ip_suche&#40;$REMOTE_ADDR&#41;&#41;&#123;  //ip_suche überprüft ob ein Reload forlieg falls ja gibt
           $zahl = implode&#40;"",file&#40;"zahl.txt"&#41;&#41;;  // sie false zurück und der Seitenaufruf
           echo "[b]".++$zahl."[b]
    ";         //  wird nicht mitgezählt
           $dat = fopen&#40;"zahl.txt","wb"&#41;;
           fwrite&#40;$dat,"$zahl"&#41;;
           fclose&#40;$dat&#41;;
        &#125;
        else &#123;
           $zahl = implode&#40;"",file&#40;"zahl.txt"&#41;&#41;;
           echo "[b]".$zahl."[b]
    ";
        &#125;
    function ip_suche&#40;$vergleicher&#41;&#123;
    global $sperr_zeit;
      $array=file&#40;"iplogger.txt"&#41;;// die Datensätze liegen in der form IP|Zeitpunkt vor und
                                  // Je ein Datensatz pro Zeile
      if &#40;$array&#91;0&#93; != ""&#41;&#123;       // ist kein Datensatz vorhanden erübrigt sich das überprüfen....
        if&#40;is_in&#40;$array,$vergleicher&#41;&#41;&#123;// überprüft ob die IP schon vorhanden ist ist...
            return 0;
        &#125;
         else&#123;                         // ist sie nicht vorhanden wird sie eingetragen
                $handle = fopen&#40;"iplogger.txt","a+b"&#41;;
                $new = $vergleicher."|".time&#40;&#41;;
                fwrite&#40;$handle,"\r\n$new"&#41;;
                fclose&#40;$handle&#41;;
                return 1;
            &#125;
       &#125;
      else &#123;
          $handle = fopen&#40;"iplogger.txt","wb"&#41;;
          $new = $vergleicher."|".time&#40;&#41;;
          fwrite&#40;$handle,"\r\n$new"&#41;;
          fclose&#40;$handle&#41;;
          return 1;
      &#125;
    &#125;
    function is_in&#40;$array,$vergleicher&#41;&#123;  // überprüft ob ein neues zählen erlaubt ist
    foreach &#40;$array as $check&#41;&#123;          //  die einzelnen Datensätze werden duchgegangen
           $check=explode&#40;"|",$check&#41;;   // und aufgetrennt um sie zu prüfen.
           if &#40;$check&#91;0&#93; == $vergleicher&#41;&#123; // ob eine Zeitüberschreitung vorliegt muss nicht
                return 1;                  // muss nicht überprüft werden da dies durch kick_the_old_IPs&#40;&#41; erledigt wurde
                break;
           &#125;
    &#125;
    &#125;
    function kick_the_old_IPs&#40;&#41;&#123;  // überprüft ob die Datensätze noch benötigt werden.
                            // d.h. ob sie schon länger in der Datei stehen als die Sperrzeit besagt.
    global $sperr_zeit;
      $array = file&#40;"iplogger.txt"&#41;;
        foreach&#40;$array as $a&#41;&#123;
           $b = explode&#40;"|",$a&#41;;
           $k = time&#40;&#41;-$b&#91;1&#93;;    // $k besagt wie lange der Datensatz shcon existiert
           if&#40;$k < $sperr_zeit&#41;&#123; // wenn die Sperrzeit noch nicht verstrichen ist
               $new_array&#91;&#93; =$a; // wird Der Datensatz in ein neues Array geschrieben
           &#125;
        &#125;
    if &#40;count&#40;$new_array&#41;>=2&#41;&#123;      //umwandlung des neuen Arrays in einen String um probleme mit fwrite zu verhindern
         $string = implode&#40;"",$new_array&#41;;
    &#125;
    elseif&#40;count&#40;$new_array&#41;==0&#41;&#123;
    
         $string = "";
    &#125;
    else&#123;
         $string = $new_array&#91;0&#93;;
    &#125;
    $handle = fopen&#40;"iplogger.txt","wb"&#41;;
    fwrite&#40;$handle,"$string"&#41;;            //speichern des Aktuellen Datensatzes
    fclose&#40;$handle&#41;;
    &#125;
    
    ?>
    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  5. #5
    König(in)
    Themenstarter
    Avatar von chris90night
    Registriert seit
    09.09.2006
    Ort
    <?php echo $_SERVER['PHP_SELF']; ?>
    Beiträge
    1.096
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    [ok ich probiers mal damit, danke


    Denk immer daran: auch am anderen Ende der Leitung sitzt ein Mensch!

Ähnliche Themen

  1. F5 Aktualisieren abfangen - Reloadsperre
    Von Phunthom im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 22.03.2007, 12:17

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •