Ankündigung

Einklappen
Keine Ankündigung bisher.

"Captcha"

Einklappen

Neue Werbung 2019

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

  • lamopius
    hat ein Thema erstellt "Captcha".

    "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^^

  • Arne Drews
    antwortet
    Und selbst die können z.T. schon geparst werden.
    Wozu überhaupt das Captcha? Was willst Du damit schützen?

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    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?

    Einen Kommentar schreiben:


  • Ind3X
    antwortet
    Oder ganz umständlich mit einer IP-Sperre.

    Einen Kommentar schreiben:


  • lstegelitz
    antwortet
    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

    Einen Kommentar schreiben:


  • ChrisB
    antwortet
    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.

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • ChrisB
    antwortet
    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 ...?

    Einen Kommentar schreiben:


  • Lenki
    antwortet
    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

    Einen Kommentar schreiben:


  • lamopius
    antwortet
    also ich versteh nichts

    Einen Kommentar schreiben:


  • Asipak
    antwortet
    Hallo,

    bitte ändere deinen Threadtitel. Warum? Wie?

    Einen Kommentar schreiben:


  • tkausl
    antwortet
    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

    Einen Kommentar schreiben:

Lädt...
X