Matix mit PHP?

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

  • #16
    @Peacie
    Hi, dein script hat mir einen tipp gegeben wie ich meines etwas verkleinern kann, funktioniert jetzt soweit wunderhübsch



    Habe aber eine andere frage, das problem hatte ich schon öfters - aber jetzt ist es fällig:

    Soooo, also ich habe eine index.php mit diesem Inhalt:

    PHP-Code:
    <?php
    if(session_id()==""){session_start();}
    $nr=range(1,6); shuffle($nr); # 6 Zufallszahlen erzeugen (es werden davon nur die ersten 3 benutzt: $nr[0]-$nr[2])
    $_SESSION['n0']=$nr[0];
    $_SESSION['n1']=$nr[1];
    $_SESSION['n2']=$nr[2];
    $n=$nr[0]+$nr[1]+$nr[2];

    if(isset(
    $_POST['check_pw']))
     {if(
    trim($_POST['pw'])==trim($_POST['n'])) {echo "Richtige Antwort";}
      else {echo 
    "Falsche Antwort";}
     }
    ?>
    <br />
    <img src="makeWuerfel1.php">
    <br />

    <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
     <fieldset>
      <input type="hidden" name="n" value="<?php echo $n?>" />
      <input type="text" name="pw" />
      <input type="submit" name="check_pw" />
     </fieldset>
    </form>
    <IMG ruft makeWuerfel1.php auf und dort wird anhand der 3 sessions die nummer gebildet.

    Was ich jetzt an der sache nicht mag....für das ganze benötige ich 2 php-scripte...in Zeiten der Weltwirtschaftskrise, geht das ja mal garnischt!

    Ich möchte das 2te script, das daß PNG erzeugt in dieser index.php unterbringen, als funktion oder auch nicht, ist eigentlich egal, hauptsache index.php und makeWuerfel.php sind in einem php-script drin.

    Nun hab ich das probiert, aber ich erhalte ein headerfehler, weil im
    2ten script am ende das hier drin steht:

    PHP-Code:
    header("Content-type: image/png"); imagePNG($im); imageDestroy($im); 
    Wie kann ich das PNG erzeugen und ausgeben und beides im gleichen script?
    ACHTUNG: RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit

    Kommentar


    • #17
      Original geschrieben von RamonaS
      Wie kann ich das PNG erzeugen und ausgeben und beides im gleichen script?
      Geht nicht (vernünftig). Wenn du alles in einem Script willst, dann verwende fertige Bilder, wie hier schon mindestens 3mal empfohlen wurde.

      Kommentar


      • #18
        Original geschrieben von RamonaS
        Wie kann ich das PNG erzeugen und ausgeben und beides im gleichen script?
        indem du das script 2x aufrufst (mit unterschiedlichen parametern) und 1x html ausgibst, ein anderes mal das png.

        beides in einem rutsch geht nicht.

        btw: was soll das werden? 'nen würfel-captcha? wenn ja, ist dein code käse.
        Kissolino.com

        Kommentar


        • #19
          Original geschrieben von RamonaS
          (...)
          Wie kann ich das PNG erzeugen und ausgeben und beides im gleichen script?
          Das klappt im gleichen Script, aber nicht im gleichen Aufruf[1].

          Das Problem ist, die Daten vom ersten Aufruf des Scriptes (Formular) zum zweiten Aufruf des Scriptes (Bildanzeige) weiterzureichen. Dafür gibts diverse Hilfsmittel: GET-, POST-Parameter und Sessions.

          --
          [1] Wenn dein Browser das Webformular anzeigt, ist das PHP-Script schon längst beendet. Es kann also die per Formular zusammengestellten Daten nicht mehr verarbeiten und auch kein daraus generiertes Bild mehr anzeigen.

          Man kann zwar etwas herumzaubern und so tun, als ob -- das nennt sich dann AJAX und erfordert JavaScript-Einsatz beim Client. Nix mit "light weight".
          Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

          Kommentar


          • #20
            um DRINGEND nochmal auf die Übersicht zu kommen:

            Alles was irgendwie geht in ein Script zu stopfen macht wenig bis garkeinen Sinn.

            Du müsstest für jedes Formular, bei dem Du das in der Form brauchst, alles wieder neu anpassen. Das ist recht weit weg vom OOP.

            Eine Ausgabesteuerung für Formulare und ein Captcha Script, welches du immer von überall aufrufen kannst (Session Sachen zu dem Code gehören dann aber auch in das Captcha Script).

            Du brauchst EIN Script für alle Deine Formulare die Captcha benutzen. Und nicht in jedem Formular das Du brauchst immer wieder eine angepasste Methode die Bildchen darzustellen

            Kommentar


            • #21
              Original geschrieben von Wurzel
              indem du das script 2x aufrufst (mit unterschiedlichen parametern) und 1x html ausgibst, ein anderes mal das png.

              beides in einem rutsch geht nicht.

              btw: was soll das werden? 'nen würfel-captcha? wenn ja, ist dein code käse.
              Käse? Huch wiso das?
              Funzt doch einwandfifi, die 3 zahlenwerte werden unsichtbar per session übergeben!

              Oder meinst du die idee an sich? Ich hab ma ne webseite gesehen, dort wurde ein programm vorgestellt das die standard captchas zw 80-100% auslesen kann, wobei der user da bei 50% lag....und wie ich - mache captchas garnicht lesen kann, weill ich nicht erkennen kann was das für zeichen sein soll
              ACHTUNG: RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit

              Kommentar


              • #22
                Original geschrieben von fireweasel
                Das klappt im gleichen Script, aber nicht im gleichen Aufruf.
                Naja, mit Inline-Images geht es schon, wenn auch nicht in jedem Browser.

                Original geschrieben von Peacie
                wo ist jetzt bitte der unterschied zu den eigenen bildern auf dem server, die der te ja nicht will?
                Sollte er aber wollen. Das dynamische Erzeugen von Bildern ist in diesem Fall eine blöde Idee. Das hat man dem TE schon mehrmals gesagt, aber leider ist er auf diesem Ohr taub. Ein Gegenargument hat er jedenfalls nicht genannt - "ich will weniger Bilder auf der Platte haben" ist ja wohl ein Witz!

                Kommentar


                • #23
                  Original geschrieben von onemorenerd
                  Naja, mit Inline-Images geht es schon, wenn auch nicht in jedem Browser.

                  Sollte er aber wollen. Das dynamische Erzeugen von Bildern ist in diesem Fall eine blöde Idee. Das hat man dem TE schon mehrmals gesagt, aber leider ist er auf diesem Ohr taub. Ein Gegenargument hat er jedenfalls nicht genannt - "ich will weniger Bilder auf der Platte haben" ist ja wohl ein Witz!
                  Jetzt kom ich nicht ganz mit...das mußt du mir nochmals verdeutlichen.

                  Meinst du weil dir oder dem einen oder anderen erzeugte bilder nicht gefallen, deshalb darf ich das auch nicht tun?

                  Mir stellt sich wieder die frage, wozu haben die php-entwicker überhaubt die image-funktion entwickelt? - bestimmt damit wir uns jetzt in die haare bekommen.

                  Also again: Warum ich das mit den images machen will ist doch meine sache, ok einige von euch haben was dagegen aber das kann ich nicht berücksichtigen in meinem anfängerwahn1

                  Mich auch keiner gefragt ob ich mit dem aktuellen bundeskanzler einverstanden bin
                  ACHTUNG: RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit

                  Kommentar


                  • #24
                    Original geschrieben von RamonaS
                    Jetzt kom ich nicht ganz mit...das mußt du mir nochmals verdeutlichen.

                    Meinst du weil dir oder dem einen oder anderen erzeugte bilder nicht gefallen, deshalb darf ich das auch nicht tun?

                    Mir stellt sich wieder die frage, wozu haben die php-entwicker überhaubt die image-funktion entwickelt? - bestimmt damit wir uns jetzt in die haare bekommen.
                    Bei einem einfachen Würfel lässt sich gut streiten. Ich glaub kaum, dass das Zeichnen von 5 Punkten einen Server in die Knie zwingt. Es ist halt trotzdem unnötig verbratene Rechenleistung. Das muss meiner Meinung nach nicht sein, wenn es auch ohne viel Aufwand sparsamer geht. Es ist nicht tragisch, aber rein vom Prinzip her unschön.

                    Warum es die image-Funktionen gibt? Man kann mit den image-Funktionen Bilder auch _einmalig_ bearbeiten oder erstellen. Ein gutes Beispiel ist ein Bilderhochlade-Script, das die Bilder anschließend auf eine bestimmte Größe resizen muss. Das wird einmal beim Upload gemacht und anschließend wird einfach immer wieder die selbe Bilddatei ausgeliefert. Ist auch wesentlich sinnvoller, als bei jedem Aufruf alle Bilder quasi in Echtzeit zu resizen, obwohl es jedesmal das selbe Ergebnis liefert.

                    Anders sieht es aus, wenn die gelieferten Bilder jedesmal wirklich neu generiert werden müssen und niemals das selbe Bild benötigt wird. In dem Fall gehts leider nicht anders. Aber hier sollte man ein Auge auf die benötigte Rechenleistung werfen und abschätzen ob der Server damit auf Dauer klar kommt.

                    Kommentar


                    • #25
                      Original geschrieben von RamonaS
                      Jetzt kom ich nicht ganz mit...das mußt du mir nochmals verdeutlichen.
                      Mach ich gern.

                      Meinst du weil dir oder dem einen oder anderen erzeugte bilder nicht gefallen, deshalb darf ich das auch nicht tun?
                      ...
                      Also again: Warum ich das mit den images machen will ist doch meine sache, ok einige von euch haben was dagegen aber das kann ich nicht berücksichtigen in meinem anfängerwahn1
                      Du kannst machen was du willst. Aber du willst doch was lernen oder? In diesem Sinne wurde dir geraten, einen anderen Weg zum Ziel einzuschlagen. Einen, der nach erfahrener Meinung besser ist.

                      Vorschlag: Erzeuge die Bilder dynamisch, dabei lernst du die Image-Funktionen kennen. Aber speichere das Resultat ab und erzeuge es erst wieder neu, wenn es gelöscht wurde. Dadurch vereinst du beide Ansätze sehr elegant. So könnte das aussehen:
                      PHP-Code:
                      header('Content-Type: image/png');

                      $n rand(16);
                      $file 'images/dice' $n '.png';

                      if (!
                      file_exists($file)) {
                          
                      $image imagecreate(...);
                          
                      // hier den Bildinhalt erstellen ...
                          
                      imagepng($image$file);
                      }

                      readfile($file); 

                      Kommentar


                      • #26
                        also eins kann ich nunmal garnicht verstehen..

                        fast alle captcha scripte die ich kenne verwenden KEINE lokalen bilder, weil es auch blödsinn wäre

                        wenn ein robot im quelltext eins.png drei.png vier.png erkennt, wie lange wird er brauchen um das zu verstehen ?

                        unabhängig davon wie lange ein OCR brauchen würde 3 würfel zu erkennen.

                        Das dynamische Erzeugen von Bildern ist in diesem Fall eine blöde Idee. Das hat man dem TE schon mehrmals gesagt, aber leider ist er auf diesem Ohr taub. Ein Gegenargument hat er jedenfalls nicht genannt - "ich will weniger Bilder auf der Platte haben" ist ja wohl ein Witz!
                        und genau HIER bei einem CAPTCHA ist es das wohl genau nicht.
                        Ich fände (wohl meine meinung) statische bilder bei diesem problem eher ein witz

                        Kommentar


                        • #27
                          kinners entspannt euch mal. was wollt ihr mit ocr & co, wenn die werte im form mit übergeben werden

                          Original geschrieben von RamonaS


                          Soooo, also ich habe eine index.php mit diesem Inhalt:

                          PHP-Code:
                          <?php
                          if(session_id()==""){session_start();}
                          $nr=range(1,6); shuffle($nr); # 6 Zufallszahlen erzeugen (es werden davon nur die ersten 3 benutzt: $nr[0]-$nr[2])
                          $_SESSION['n0']=$nr[0];
                          $_SESSION['n1']=$nr[1];
                          $_SESSION['n2']=$nr[2];
                          $n=$nr[0]+$nr[1]+$nr[2];

                          if(isset(
                          $_POST['check_pw']))
                           {if(
                          trim($_POST['pw'])==trim($_POST['n'])) {echo "Richtige Antwort";}
                            else {echo 
                          "Falsche Antwort";}
                           }
                          ?>
                          <br />
                          <img src="makeWuerfel1.php">
                          <br />

                          <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
                           <fieldset>
                            <input type="hidden" name="n" value="<?php echo $n?>" />
                            <input type="text" name="pw" />
                            <input type="submit" name="check_pw" />
                           </fieldset>
                          </form>
                          ... abgesehen davon, kann ich 3 statische bilder auch in eines packen ... ist aber wahrscheinlich zu einfach
                          Kissolino.com

                          Kommentar


                          • #28
                            hehe, ja natürlich. da könnte man auch einfach ne zahl in ein textfeld schreiben.

                            grundsätzlich ein bild ist ja auch richtig.
                            aber ich verstehe halt nicht, warum so viele drauf bestehen das in diesem fall ein lokales bild sinn macht

                            Kommentar


                            • #29
                              Original geschrieben von Peacie
                              aber ich verstehe halt nicht, warum so viele drauf bestehen das in diesem fall ein lokales bild sinn macht
                              man muss ja erstmal dahinterkommen, dass es ein captcha werden soll
                              Kissolino.com

                              Kommentar


                              • #30
                                Original geschrieben von Peacie
                                wenn ein robot im quelltext eins.png drei.png vier.png erkennt, wie lange wird er brauchen um das zu verstehen ?
                                Im HTML der Seite steht aber nicht eins.png, zwei.png und so weiter sondern dice.php. Und zwar immer. Mind the gap!

                                Kommentar

                                Lädt...
                                X