Ankündigung

Einklappen
Keine Ankündigung bisher.

"Captcha"

Einklappen

Neue Werbung 2019

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

  • "Captcha"

    moin moin lieber PHPler, ich hab eine Frage.

    Ich möchte eine Art Captcha machen, das ganze sollte so aussehen:

    Man kommt auf meine Seite und es wird eine random Zahl ausgegeben. Diese Zahl gibt man nun in ein Feld ein, und wenn es dich richtige ist, wird man weitergeleitet.

    Doch das ganze will nicht so wie ich will^^:

    PHP-Code:
    <?php
        session_start
    ();

        
    $a rand(1000,9999);

    $_SESSION['zahl']=$a;





         
    $id $_POST['name'];
         
    $submit $_POST['submit'];


         if (
    $submit)
         {
         if (
    $id == $_SESSION['zahl'])
             {
                echo 
    '
    <iframe src="http://*****.com/nea/" name="Fensterlein" width="1300px" frameborder="0"
    height="800px">
      <p>Ihr Browser kann leider keine eingebetteten Frames anzeigen</p>
    </iframe>
    '
    ;

            }
             else
              die(
    'Sorry, aber das geht so nicht!');}
              else
              {echo 
    "Schreibe die Zahlen:<br />";
              echo 
    $_SESSION['zahl'];
                  echo 
    '


                  <form name="" action="index.php" method="post" enctype="text/html">


              <input type="text" name="name" value="" size="20" maxlength="50" /><br />
              <input type="Submit" name="submit" value="Save" />
    </form>'
    ;
              }


    ?>
    Währe schön wenn mir mal einer nen Tipp geben könnten^^


  • #2
    Zitat von lamopius Beitrag anzeigen
    Doch das ganze will nicht so wie ich will^^:
    Ich will nen Login programmieren, hab den gleichen Code wie du: Das will aber nicht so wie ich will, warum blos?
    [/ironie]

    Gehts nicht n bisschen Genauer?

    Edit:
    Hab ma kurz drübergeguckt:
    PHP-Code:
    $a rand(1000,9999);

    $_SESSION['zahl']=$a;
         
    $id $_POST['name'];
         
    $submit $_POST['submit'];


         if (
    $submit) {
      if (
    $id == $_SESSION['zahl']) 
    Die chance dass das zutrifft ligt bei 1:8999, egal ob man die zahl eingibt die da steht oder nicht.

    Edit2:

    PHP-Code:
    echo "Schreibe die Zahlen:<br />";
              echo 
    $_SESSION['zahl']; 
    sicherheit = 0
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      Hallo,

      bitte ändere deinen Threadtitel. Warum? Wie?
      http://hallophp.de

      Kommentar


      • #4
        also ich versteh nichts

        Kommentar


        • #5
          Pack mal
          PHP-Code:
          $a rand(1000,9999); 

          $_SESSION['zahl']=$a
          genau vor das
          PHP-Code:
          echo $_SESSION['zahl']; 
          Dann sollte es vom Prinzip her funktionieren.

          Allerdings muss ich tklausl Recht geben:
          - Sicherheit = 0, vielleicht noch 2 *G*
          - Außerdem würde übersichtlicher Code es einfacher machen, dir zu helfen => sinnvoll einrücken, keine Klammern weglassen

          Kommentar


          • #6
            Zitat von lamopius Beitrag anzeigen
            also ich versteh nichts
            Das ist aber dumm, wenn du deinen eigenen Code nicht verstehst ...


            Du vergleichst also den in die Session geschriebenen Wert ($_SESSION['zahl']) mit dem per POST übergebenen Wert.
            So, und jetzt erkläre uns mal, wann - damit mein ich hier vor allem, wie oft - du einen zufälligen Wert in $_SESSION['zahl'] schreibst ...?

            Kommentar


            • #7
              ja bei jedem Scriptaufruf. Wie mach ich es denn, dass es nur einmal passiert?

              Kommentar


              • #8
                Zitat von lamopius Beitrag anzeigen
                ja bei jedem Scriptaufruf. Wie mach ich es denn, dass es nur einmal passiert?
                In dem du bspw. mittels isset abfragst, ob schon ein Wert unter dem Bezeichner in die Session gespeichert wurde.

                Kommentar


                • #9
                  Zitat von lamopius Beitrag anzeigen
                  ja bei jedem Scriptaufruf. Wie mach ich es denn, dass es nur einmal passiert?
                  Das Script nur einmal aufrufen

                  Nein, ernsthaft:
                  Prüfe VOR dem Schreiben, ob bereits etwas vorhanden ist (isset / empty) und schreibe NUR, wenn nichts vorhanden war
                  Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                  Kommentar


                  • #10
                    Oder ganz umständlich mit einer IP-Sperre.

                    Kommentar


                    • #11
                      Eine Zufallszahl als Plaintext ist automatisiert verarbeitbar und damit das Gegenteil eines [WIKI]Captcha[/WIKI]. Was glaubst Du, warum alle die lustigen, kryptischen Bilder verwenden?
                      --

                      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                      --

                      Kommentar


                      • #12
                        Und selbst die können z.T. schon geparst werden.
                        Wozu überhaupt das Captcha? Was willst Du damit schützen?
                        Competence-Center -> Enjoy the Informatrix
                        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                        Kommentar

                        Lädt...
                        X