Ankündigung

Einklappen
Keine Ankündigung bisher.

Counter - Daten gelöscht - Erklärung??

Einklappen

Neue Werbung 2019

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

  • Counter - Daten gelöscht - Erklärung??

    Guten Morgen zusammen,

    PHP-Code:
    <?php
    <?php


    $count
    =0;
    $time time();
    $ip $_SERVER['REMOTE_ADDR'];
    $text=$time."#".$ip."\n";
    $filename="counter.csv";
    $zeile file($filename);
    $datum=date("d.m.y");
    $setdate=0;
    $uhrzeit=date("H:i:s");
    //Hier kann die Aufenthaltszeit für eine gültige Zählung und die Reloadsperre eingetragen werden (in sec)
    $countgueltig=600;
    $reload=600;

    //Prüfung ob IP vorhanden
    foreach($zeile as $sperre)
    {
    $arraysp explode("#",$sperre);

    if(
    $ip==rtrim($arraysp[1]) & $arraysp[0] > $time -$reload){$vorhanden=1;}
    }
    //Tages- und Gesamtwert ermitteln
    foreach($zeile as $wert)
    {
    $array explode("#",$wert);
    if(
    $array[0]=='datum'rtrim($array[1])!=$datum){$setdate=1;}
    if(
    $vorhanden==1){
    if(
    $array[0]=='heute' $setdate==0){$heute=rtrim($array[1]);}
    if(
    $array[0]=='heute' $setdate==1){$heute=1;$gestern=rtrim($array[1]);}
    if(
    $array[0]=='gesamt'){$gesamt=rtrim($array[1]);}
    if(
    $array[0]=='gestern'$setdate==0){$gestern=rtrim($array[1]);}

    }
    if(
    $vorhanden!=1)
    {

    if(
    $array[0]=='heute'$setdate==0){$heute=rtrim($array[1])+1;}
    if(
    $array[0]=='heute'$setdate==1){$heute=1;$gestern=rtrim($array[1]);}
    if(
    $array[0]=='gestern'$setdate==0){$gestern=rtrim($array[1]);}
    if(
    $array[0]=='gesamt'){$gesamt=rtrim($array[1])+1;}
    }
    }

    //Tages- und Gesamtwert schreiben
    $fpwrite fopen($filename "w");
    fwrite ($fpwrite"datum"."#".$datum."\n"."heute"."#".$heute."\n"."gestern"."#".$gestern."\n"."gesamt"."#".$gesamt."\n".$text750);
    fclose($fpwrite);



    //Useronline schreiben
    $fpanhaengen fopen($filename "a");
    foreach(
    $zeile as $useronline)
    {
    $arrayuseronline explode("#",$useronline);

    if(
    $arrayuseronline[0] > $time -$countgueltig $ip!=rtrim($arrayuseronline[1]))
    {

    fwrite ($fpanhaengen,$useronline750);

    }
    }
    fclose($fpanhaengen);
    //wieviele user online(für Anzeige)?
    $zeile1 file($filename);


    //Ausgabe


    for($x=0;$x<count($zeile1);$x++){$count=$count+1;}
    echo 
    '<p align="left">[b]Datum: [/b]'; echo $datum; echo  '</font>
    '
    ;
    echo 
    '[b]Uhrzeit: [/b]'; echo $uhrzeit; echo  '</font>
    '
    ;
    echo 
    '[b]User online: [/b]'; echo $count=$count-4;echo  '</font>
    '
    ;
    echo 
    '[b]Heute: [/b]'; echo $heute;echo  ' </font>
    '
    ;
    echo 
    '[b]Gestern: [/b]'; echo $gestern;echo  ' </font>
    '
    ;
    echo 
    '[b]Gesamt: [/b]'; echo $gesamt;echo  '</font></p>';

    ?>
    ?>
    Ich benutze obigen Code für einen Counter.
    Nun ist es mir gestern aber passiert, dass der Counter wieder auf 0 resettet wurde, ohne das ich etwas unternommen habe.

    wie kann das sein? kann es Probleme geben wenn 2 user zur exakt gleich Zeit die Seite betreten?

    Also die Daten liegen in counter.csv und die Datei wurde auch nicht manuell resettet. Irgendetwas am Programm muss das also gemacht haben.

    Vielen Dank.

    Gruß HaVoK


  • #2
    Der Code ist im Original auch komplett garnicht eingerückt?

    kann es Probleme geben wenn 2 user zur exakt gleich Zeit die Seite betreten?
    Ja kann es. Sowas nent sich race condition und unter wirklich unglücklichen Umständen kann dadurch Dein Counter auf 0 gesetzt werden.

    http://de3.php.net/manual/en/function.flock.php kann Dir weiterhelfen.

    Kommentar


    • #3
      sorry, bin ein quick-Programmierer, ohne sauberen Stil. EInrücken ist nicht.
      Programmiere mit PHPCoder, und der ist da net so toll. War bisher au zu faul um mir was besseres zu suchen.

      Werde mal versuchen das mit flock zu sperren.

      thx.

      Gruß HaVoK

      Kommentar


      • #4
        sorry, bin ein quick-Programmierer, ohne sauberen Stil.
        Also quick&dirty.
        Macht sich in der Regel früher oder später sehr schlecht.

        Kommentar


        • #5
          naja, bei den eingeschränkten Projekten die ich mache, habe ich im moment noch den Überblick, aber haste schon recht.
          Ich bin mir meines Problems bewusst, aber bisher zu bequem gewesen es zu ändern.

          Gruß

          Kommentar


          • #6
            Zitat von havok
            Ich bin mir meines Problems bewusst, aber bisher zu bequem gewesen es zu ändern.
            Also daher kommen die Vorurteile, Programmierer seien faul und trinken nur Kaffee ... *kaffeeholundpausemach*

            so nebenbei, ich progge nur mit dem Win Editor

            Kommentar


            • #7
              und mit dem rückst du alles ein???
              da wirst ja wahnsinnig.
              was machste wenn du dir irgendwoher paar Codeschnipsel besorgst und die zusammenklatscht?
              Rückst du die dann alle ein? da investier ich meine Zeit lieber sinnvoller.

              Gruß HaVoK

              Kommentar


              • #8
                Was verstehst du unter Codeschnipsel?
                Irgendwelche Beispiele von Webseiten sind doch in der Regel bereits korreckt eingerückt.

                Und wenn nicht, dann halt kurz selber machen. Mit einem gescheiten Editor kann man beliebig viele Zeilen gleichzeitig einrücken, also eine Frage von Sekunden.
                Und für die ganz Faulen gibts noch Tools die das automatisch machen

                Kommentar


                • #9
                  wo gibts so ein Tool?
                  was ist ein guter Editor?

                  Kommentar


                  • #10
                    http://www.beautifier.org/ fällt mir so spontan ein.

                    Kommentar

                    Lädt...
                    X