Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Captcha funktioniert nicht

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Captcha funktioniert nicht

    Hallo
    Ich habe wieder ma' ein kleines Problemchen
    Code:
    <?php
    Header("Content-Type: image/png");
    $width = 100;
    $height = 100;
    $img = ImageCreate($width, $height);
    ImageFill($img, 0, 0, ImageColorAllocate($img, 0, 0, 0));
    $widthcount = 0;
    for(;;)
    {
        $heightcount = 0;
        for(;;)
        {
                ImageFilledRectangle($img, $widthcount, $heightcount, $widthcount+1, $heightcount+1, ImageColorAllocate($img, rand(0, 255), rand(0, 255), rand(0, 255)));
            $heightcount = $heightcount+1;
            if($heightcount >= $height) { break; }
        }
        $widthcount = $widthcount+1;
        if($widthcount >= $width) { break; }
    }
    ImagePNG($img);
    ?>
    Irgendwie bricht die for Schleife aber immer ab, warum ???
    Liebe Grüße,
    PCFreund
    webmasterlounge
    Die deutsche Webmaster-Community


  • #2
    Guck dir bitte nochmal an, wie eine for-Schleife aufgebaut wird, für mich sieht das da nicht so richtig aus...
    ACHTUNG!!! SIGNATUR!!!
    PHP-Code:
    var_dump($gehirn); exit; 
    0 ??? WTF ? nervtag.de | freutag.net | friendmetr.com

    Kommentar


    • #3
      Ich weiß, ich schreibe aber for-Schleifen aber immer so, weil ich es persönlich übersichtlicher finde
      /Edit:
      Code:
      <?php
      Header("Content-Type: image/png");
      $width = 100;
      $height = 100;
      $img = ImageCreate($width, $height);
      ImageFill($img, 0, 0, ImageColorAllocate($img, 0, 0, 0));
      $widthcount = 0;
      for($widthcount = 0; $widthcount <= $width; $widthcount++)
      {
          for($heightcount = 0; $heightcount <= $height; $heightcount++)
          {
              ImageFilledRectangle($img, $widthcount, $heightcount, $widthcount+1, $heightcount+1, ImageColorAllocate($img, rand(0, 255), rand(0, 255), rand(0, 255)));
          }
      }
      ImagePNG($img);
      ?>
      besser ???
      ändert trotzdem nichts daran dass es nicht ganz durchläuft =(

      /edit:
      Zitat von de.php.net
      Sicher ist das erste das hübscheste (vielleicht auch das vierte), aber in manchen Fällen sind leere Anweisungen in for-Schleifen durchaus praktisch.
      webmasterlounge
      Die deutsche Webmaster-Community

      Kommentar


      • #4
        Das ist miserabler Code-Stil.
        Du nutzt das for ja gar nicht wirklich. Du nutzt da nur eine x-beliebige Schleife. Benutz die Schleife so, wie das auch vorgegeben ist. Es gibt hier keinen Grund, die Schleife anders zu nutzen.

        Kommentar


        • #5
          Habs ja eh editiert
          webmasterlounge
          Die deutsche Webmaster-Community

          Kommentar


          • #6
            Dann musste jetzt mal anfangen zu debuggen. Lass die bei jedem Schleifendurchlauf mal die Werte ausgeben, dann siehst du ja ob es wirklich irgendwann stoppt und wenn ja kannst du exakt nachvollziehen warum bei diesen Werten.

            Kommentar


            • #7
              Hast du denn mal geguckt, wo sie genau abbricht?

              Edit: zu spät :/
              ACHTUNG!!! SIGNATUR!!!
              PHP-Code:
              var_dump($gehirn); exit; 
              0 ??? WTF ? nervtag.de | freutag.net | friendmetr.com

              Kommentar


              • #8
                Hmmm ... Komisch:
                echo $heightcount.'-'.$widthcount.';';
                ergibt:
                0-0;1-0;2-0;3-0;4-0; ..... 99-100;100-100;
                webmasterlounge
                Die deutsche Webmaster-Community

                Kommentar


                • #9
                  Zitat von DJ_RhoxxZ Beitrag anzeigen
                  ändert trotzdem nichts daran dass es nicht ganz durchläuft =(

                  /edit:
                  Du kannst ja mal die Variablen per var_dump(); und mal gucken welche Werte nicht stimmen um dann nachvollziehen zu können warum das so ist.

                  Hmmm ... Komisch:
                  echo $heightcount.'-'.$widthcount.';';
                  ergibt:
                  0-0;1-0;2-0;3-0;4-0; ..... 99-100;100-100;
                  Ist ja auch logisch. Für jeden Durchlauf der äußeren Schleife wird die innere Schleife ausgeführt.

                  Da du uns aber immer noch nicht gesagt hast "was" dnen nicht passiert.... naja... wir wissne nur das die Schleifen das tun was sie sollen.
                  "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

                  Kommentar


                  • #10
                    Wieso komisch? So hast du es doch programmiert!

                    Wenn es dir darum geht, dass du irgendwann keine Farben mehr siehst, dann liegt das an imagecreate(), damit kannst du nicht so viele Farben verwalten wie mit PHP: imagecreatetruecolor - Manual .

                    Gruß
                    http://hallophp.de

                    Kommentar


                    • #11
                      Danke Asipak, nun funktioniert es !
                      Dass ich da nicht drauf gekommen bin =/
                      webmasterlounge
                      Die deutsche Webmaster-Community

                      Kommentar


                      • #12
                        Du solltest in Zukunft mal an deiner Problembeschreibung arbeiten!
                        komisch
                        und
                        läuft nicht durch
                        ist nicht ausreichend! Was ist komisch und warum? Das die Schleife deiner Meinung nach nicht durchläuft merkst du woran?

                        Btw. Wenn du lediglich einen Pixel pro Schleifendurchlauf setzen möchtest, kannst du besser auf PHP: imagesetpixel - Manual setzen.

                        Gruß
                        http://hallophp.de

                        Kommentar


                        • #13
                          Ja ich weiß, aber ich habe eigentlich gemeint "Komisch dass da alle angezeigt werden" ...
                          Und achja: Danke für den Tipp mit imagesetpixel, der is echt cool
                          webmasterlounge
                          Die deutsche Webmaster-Community

                          Kommentar

                          Lädt...
                          X