Malcolm Beck´s: Gestäbuch absicher UND Affenformular

Beitrag lesen

hi,

ich steh seit 2 Tagen vor dem selben Problem.

"Der" Schloss ist das, was im name-Attribut steht. Beispiel:
<input name="Zufallswert1" value="Zufallswert2">

In der Session steht dann, dass $_POST['Zufallswert1'] nach dem Absenden existieren muss und dass es unbedingt 'Zufallswert2' enthalten muss - sonst wird der Eintrag nicht angenommen (sondern z.B. eine erneute(?) Vorschau angezeigt).

Wie muss diese Prüfung aussehen?
Ich hab folgenden Ansatz verfolgt aber ich weiss einfach nicht, wie ich die Prüfung mache, ob schon was gesendet wurde.

/** User Initialisieren und in input hidden[form] speichern  
 *  
 * Wenn es einen $_POST-Request gibt, den zu beginn  
 * initialisierten Wert als einmalige ID speichern  
*/  
   mt_srand ( (double)microtime () * 1000000 );  
      $user_id = md5( mt_rand () );  
  
   if(isset($_POST["form"]) AND (preg_match('/^[a-f0-9]{32}$/',$_POST["form"])))  
   {  
      $user_id = $_POST["form"];  
   }  
  
      $my_user_id = htmlspecialchars($user_id);  
  
/** HTML Ausgabe <<<EOT  
 * <input type="hidden" name="form" value="$my_user_id" />  
 * EOT;  
*/  
  
/**  
 * Prüfen, ob während der Eingabe ein Fehler auftrat  
 * $error_flag wird während der Validation der Usereingaben entsprechend gesetzt  
*/  
  if($_POST)  
  {  
    foreach($mein_formbuild_array as $mailRoutine_key)  
    {  
        $MyErrorFlag .= (!empty($error_flag[$mailRoutine_key['Feldname']]))  
           ? $error_flag[$mailRoutine_key['Feldname']]  
           : '' ;  
    }  
  }  
/**  
 * Wenn alles Ok ist, Submit-Button einblenden um das absenden zu ermöglichen  
*/  
  if(($_POST) AND (empty($MyErrorFlag)))  
  {  
     $SendeButton = '<input type="submit" class="SendButton" name="submit" value="Abschicken" />';  
  
        if((isset($_POST['submit'])) AND ($_POST["form"] == $my_user_id))  
        {  
           unset($_POST);       // $_POST leeren  
           $SendeButton = '';   // Submit-button wieder ausblenden  
        }  
}

Wie muss ich hier vorgehen?

Script im Einsatz, es wird keine Mail verschickt, die Seite dient nur testzwecken.

mfg