Counter zählt um 2 hoch!!

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

  • Counter zählt um 2 hoch!!

    Hallo.

    ich bin gerade dabei einen kleinen grafische Counter zu programmieren:

    User ruft Seite auf:
    - Textdatei wird ausgelesen
    - Wert ausgeben
    - Wert + 1 in Datei schreiben

    Soweit ja nix neues und auch kein Problem.

    Den Wert schreibe ich dann in ein Bild (per PHP).

    Das Problem ist:
    Der Counter wird immer um 2 hochgezählt, nicht um 1.
    Ich habe das ganze Script durchforstet, aber nichts gefunden.

    Komisch ist auch: Wenn das Bild z.B. 41 ausgibt, steht in der Textdatei 43...

    Code:
    PHP-Code:
    <?php
    $datei 
    txturl($i).'.txt';
    $pfad "";

    $fp fopen($pfad.''.$datei"r+");
    $counter fgets($fp,100);
    #echo $value; hier klappt es  noch
    rewind($fp);
    fputs($fp,$counter 1);
    fclose($fp);

    $image "style1.jpg";
    $im imagecreatefromjpeg($image);
    $tc imagecolorallocate ($im000);
    $font $_SERVER['DOCUMENT_ROOT'].'/arial.ttf';
    ImageTTFText ($im140520$tc$font$counter);
    # ($im, fontsize, winkel, int x, int y, farbe, font, text);
    header("Content-Type: image/jpeg");
    imagejpeg($im,'',100);
    imagedestroy ($im);
    ?>
    PS. Im IE funzt es, im FF nicht. Wie kann ich das Problem lösen?
    Zuletzt geändert von nicobats; 19.08.2006, 12:52.

  • #2
    Mal im ernst, was soll an dem Code funktionieren?

    txturl() gibts nicht.
    $i gibts nicht.

    dein komentiertes echo $value; kann auch nicht funktionieren, auch wenns daneben steht.

    So wtf?

    Kannst du uns mal den richtigen Code zeigen und auch bitte die laufende onlineversion?

    Aso und wenn du $counter nicht um 1 erhöhst, wird natürlich die zahl angezeigt, die beim auslesen in der Textdatei drin steht.

    Kommentar


    • #3
      Also so ganz so stimmts dann ja doch nicht:

      Die Funktion txturl hab ich selbst geschrieben und die wird norm. includet, hat aber mit dem counter nix zu tun.

      $i ist ne request-variable (z.b. counter.php?i=http://google.de)

      $i wird mit der funktion umgewandelt in google-de.txt

      nun wird also google-de.txt geöffnet und der wert ausgelesen.

      Das echo hatte ich mal zum testen drin, dort wurde wudnerbar um 1 hochgezählt, sobald ich aber keine textausgabe, sondern eine grafische ausgabe aktiviere, wird im FF nur um 2 hochgezählt.

      echo ist extra auskommentiert.

      Und Der Counterstand wird auch erhöht:
      PHP-Code:
      rewind($fp);
      fputs($fp,$counter 1);
      fclose($fp); 
      Ps. Ne Laufversion gibt's hier: http://nicobats.de/2/bild.php?i=http://www.blah.de

      Kommentar


      • #4
        An deiner Stelle würde ich dieses Script sofort in die Tonne hauen. Mit einem "Aktualisieren" kann man den Counter in die Höhe treiben, sowas ist Käse. Warum siehst du dir nicht einfach mal ein fertiges Counter-Script an oder liest ein entsprechendes Tutorial dazu?

        Gruß
        Uwe

        Kommentar


        • #5
          Also so ganz so stimmts dann ja doch nicht:

          Die Funktion txturl hab ich selbst geschrieben und die wird norm. includet, hat aber mit dem counter nix zu tun.

          $i ist ne request-variable (z.b. counter.php?i=http://google.de)

          $i wird mit der funktion umgewandelt in google-de.txt
          Woher hätte man das erraten sollen? Glaskugel?
          Das echo hatte ich mal zum testen drin, dort wurde wudnerbar um 1 hochgezählt,
          das mag ja schön und gut sein, nur hat das gar nichts mehr mit dem aktuellen code zu tun, ist also irreführend und "bläht" den code auf.

          sobald ich aber keine textausgabe, sondern eine grafische ausgabe aktiviere, wird im FF nur um 2 hochgezählt.
          schwer vorzustellen. Was passiert wenn du beides machst?

          echo ist extra auskommentiert.
          klar, würde dir sonst ne error notice auswerfen.

          Und Der Counterstand wird auch erhöht:
          ja, aber eben nur in der Textdatei. dein Script (bzw. deine countervariable) bekommt davon absolut 0 mit. also brauchst du dich auch nicht wundern, dass in der Textdatei nen höherer wert drin steht.

          Bei mir erhöht sich der counter um 3.

          Kommentar


          • #6
            Original geschrieben von TobiaZ
            Bei mir erhöht sich der counter um 3.
            Vermutlich deshalb, weil ich das gerade mit Aktualisieren hochgetrieben habe.

            Gruß
            Uwe

            Kommentar


            • #7
              Re: Counter zählt um 2 hoch!!

              Original geschrieben von nicobats
              Im IE funzt es, im FF nicht. Wie kann ich das Problem lösen?
              Das habe ich mir auch gedacht. Der FF ruft das Bild zweimal auf, das zweitemal um eine Ikone zu machen. Man kann das auch unterscheiden. Da "ich" aber dafür schon gebannt wurde und nie entbannt, schreibe ich den Unterschied nicht hin. Der Rest der zutreffenden Beobachtungen, dh bei echo erhöht es einmal, bei bild erhöht es zweimal, stimmt auch und passt auch.
              Zuletzt geändert von jhaase; 19.08.2006, 14:16.

              Kommentar


              • #8
                Original geschrieben von TobiaZ, moderator, Beiträge: 24856
                Woher hätte man das erraten sollen? Glaskugel?
                das mag ja schön und gut sein, nur hat das gar nichts mehr mit dem aktuellen code zu tun, ist also irreführend und "bläht" den code auf.

                schwer vorzustellen. Was passiert wenn du beides machst?

                klar, würde dir sonst ne error notice auswerfen.

                ja, aber eben nur in der Textdatei. dein Script (bzw. deine countervariable) bekommt davon absolut 0 mit. also brauchst du dich auch nicht wundern, dass in der Textdatei nen höherer wert drin steht.

                Bei mir erhöht sich der counter um 3.
                So so

                Kommentar


                • #9
                  Original geschrieben von uwe59
                  Vermutlich deshalb, weil ich das gerade mit Aktualisieren hochgetrieben habe.

                  Gruß
                  Uwe
                  jo, bin auch von nem zweiten user ausgegangen.

                  Kommentar


                  • #10
                    Original geschrieben von nicobats
                    quote:
                    --------------------------------------------------------------------------------
                    sobald ich aber keine textausgabe, sondern eine grafische ausgabe aktiviere, wird im FF nur um 2 hochgezählt.
                    --------------------------------------------------------------------------------

                    schwer vorzustellen. Was passiert wenn du beides machst?


                    quote:
                    --------------------------------------------------------------------------------
                    echo ist extra auskommentiert.
                    --------------------------------------------------------------------------------

                    klar, würde dir sonst ne error notice auswerfen.
                    So habe ich es in Erinnerung:

                    Wenn Du echo drin hast und danach das Bild, wissen IE und FF nicht, ob es Bild oder Text ist, da sie grundsätzlich vom Inhalt ausgehen (Verhalten kann eingestellt werden). Ich glaube, dann gibt es Textmit einem Wirrwarr von Bildcode danach. Wenn es umgekehrt ist, geben FF und IE das Bild aus und ignoriert was dahinter kommt, dh dein echo.

                    Kommentar


                    • #11
                      das wäre mir für ne reine testausgabe doch egal. außer wenn jetzt hier jemand auf die idee kommt, die binär-daten im forum zu posten.

                      es ging mir in erster linie darum, die aussage, dass es am bild (statt text) liegt, zu belegen/widerlegen.

                      Kommentar


                      • #12
                        Original geschrieben von TobiaZ
                        das wäre mir für ne reine testausgabe doch egal. außer wenn jetzt hier jemand auf die idee kommt, die binär-daten im forum zu posten.

                        es ging mir in erster linie darum, die aussage, dass es am bild (statt text) liegt, zu belegen/widerlegen.
                        A ist es unklar, aber B kann man sagen, dass es nciht egal ist, weil FF und IE daraus einen unterschiedlichen Ausgabetyp machen. Anschliessend verhält sich FF, wenn es Bild denkt, anders als wenn es Text denkt, und der Frager eröffnet seinen thread mit seinem 1. Beitrag. Das hier wäre also sozusagen der 0. Beitrag im thread.

                        Kommentar


                        • #13
                          Also erstmal zu den ganzen Post da oben ;-):
                          Das eine Reloadsperre noch reinkommt, ist wohl klar.
                          Dieser Code war ja die erste beta-Version, um zu testen, ob das Counting + die Ausgabe überhaupt funzen.

                          ja, aber eben nur in der Textdatei. dein Script (bzw. deine countervariable) bekommt davon absolut 0 mit. also brauchst du dich auch nicht wundern, dass in der Textdatei nen höherer wert drin steht.
                          Ich bin mir nicht sicher, was besser ist:
                          - alten Stand ausgeben (Textdatei + 1)
                          - neuen Stand ausgeben (Textdatei + 0)

                          Ich finde es besser, dem User den alten Stand auszugeben.
                          Ansonsten müsste man halt einfach nur anstatt $counter, $counter + 1 ausgeben.

                          Das erklärt aber trotzdem noch nicht den 2er Sprung.
                          Man kann ihn halt unterbinden, indem man eine Reloadsperre einbaut, sodass auch der FF die Datei nur einmal aufrufen kann.
                          Das ist aber nicht wirklich sauber ;-(

                          Kommentar


                          • #14
                            Ich bin mir nicht sicher, was besser ist:
                            - alten Stand ausgeben (Textdatei + 1)
                            - neuen Stand ausgeben (Textdatei + 0)
                            ganz klar ersteres: 1. du brauchst nur einmal zu lesen und 2. interessiert es nicht, wenn andere user, die nach dir die seite aufgerufen haben, den counter erhöhen.

                            Kommentar


                            • #15
                              So, ich habe mal die unsaubere Variante gewählt und eine Reload-Sperre eingebaut.

                              Der Counter geht pro User nur einmal hoch, bis 3 andere User die seite auch aufgerufen haben.

                              Ist mal was neues :P

                              Kommentar

                              Lädt...
                              X