Ankündigung

Einklappen
Keine Ankündigung bisher.

Zufallscode vergleichen - Variable überschreibt sich (GET)

Einklappen

Neue Werbung 2019

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

  • Zufallscode vergleichen - Variable überschreibt sich (GET)

    Hallo,

    ich will einen Kommentar durch Vergleichen von durch Zufall generierten Codes auf seine Gültigkeit hin prüfen. Ich möchte es hier kurz schildern:

    Script 1 generiert Code und schickt ihn bei Klick auf "Absenden" im Kommentarbereich samt dem eigentlichen Kommentar an Script 2.
    Script 2 überprüft den Kommentar und wenn er gültig ist, schickt es eben den zuvor generierten Code wieder zurück.
    Script 1 empfängt ihn nun und soll ihn mit dem vorher generierten vergleichen.
    Wenn sie gleich sind, heißt das, grünes Licht für den Kommentar.

    Allerdings wird dann ja das Script 1 erneut aufgerufen und generiert einen neuen Code und überschreibt somit den alten.

    Wie könnte ich das lösen? Probier schon mehrere Tage.
    Mit einer zweiten (temporären) Variable?
    Mit einer ganz anderen Methode?

    Ich verzweifel hier noch.

    Hier die Codes:

    Script 1:
    PHP-Code:
    <?php
    //Erstellt Zufallscode 
    $laenge 8;
    $zeichen "abcdefghijklmnopqrstuvxwyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    $text="";
    mt_srand ((double) microtime()*1000000);
    for (
    $i=0$i<$laenge$i++)
    {
    $text .= $zeichen{mt_rand(0,strlen($zeichen))};
    }

    // (Würde) Prüft die URL und vergleicht die Codes
    if($_GET["k"] == $text)
    {
    ?>

    <p>Test</p>
    <?php
    }
    ?>
    Code:
    //Schickt Code in einem "Input - Hidden" HTML Element weiter.
    
    <form action="kommentare_funktion.php" method="post" />
    <textarea name="kommentar_textbox" cols="50" rows="10" ></textarea> <br />
    <input type="Submit" value="Absenden" />
    <input type="hidden" name="zufallscode" value="<?=$text;?>" /> 
    </form>
    Script 2:
    PHP-Code:
    //Üperprüft Kommentar und gibt bei Gültigkeit den Code zurück
    $kommentar $_POST['kommentar_textbox'];
    $kommentar_laenge strlen($kommentar);
    $zufallscode $_POST['zufallscode'];

    if(!empty(
    $kommentar) and ($kommentar_laenge 10))
    {

      
    header("Location: $aktuelle_url"?k=" "$zufallscode");

    Ich hoffe ich habe es verständlich geschildert. Wenn nicht, sorry und bitte fragen.

    Grüße

  • #2
    Hallo,

    ich würde den Zufallscode zusätzlich in der Session speichern und in Script2 dann den übergeben Code gegen den in der Session prüfen.

    Dein Weg kann so nicht funktionieren, weil Script 1 nach der Weiterleitung von Script 2 gar nicht mehr weiss, welchen Code es berechnet hat. Nach dem Laden der Seite ist die Information ja verloren.

    Grüße,
    André

    Kommentar


    • #3
      Hi,


      du hast Denkfehler drin! Beim erneuten Aufruf wird natürlich die Variable $text neu befüllt, deswegen stimmt das natürlich nicht!
      Wenn Du Werte behalten willst, pack Sie in eine Datenbank, Textdatei oder in eine Session. Warum willst Du das so machen???

      mfg Wolf29

      Kommentar


      • #4
        Nutz entweder fertige Captchas oder schau dir eins der über Google grind-baren Security-Question-Guides an. Dort steht auch selbsterklärend das du niemals eine Antwort auf Korrektheit prüfen kannst wenn du nicht weißt wie die Frage war.

        Kommentar


        • #5
          Wie man vielleicht erahnen kann bin ich noch ein PHP-Neuling, somit können meine Scripte manchmal komisch aussehen. Ich will ja lernen und nichts Fertiges kopieren...

          Ich schau mir eure Vorschläge mit Captchas, Sessions etc. an, DANKE!

          Kommentar

          Lädt...
          X