Bei Aktualisierung IE werden Formulardaten geschrieben obwohl Felder leer sind

fantalight

Grünschnabel
Hallo Leute,

eventuell kann mir jemand helfen. Ich habe da ein Formular, womit Daten in eine Textdatei geschrieben werden. Klappt wunderbar nur beim Aktualisieren des entsprechenden IE-Fensters wird der letzte Datensatz erneut in die Textdatei geschrieben, obwohl die Formularfelder leer sind. Warum denn das
Hängt das mit dem Caching zusammen? In den Metadaten habe ich allerdings angeführt:
HTML:
 <meta http-equiv="pragma" content="no-cache">

Irgend jemand ne Idee?
Gruß
Thom
 
@snuu:

Danke für den Tip! Leider ist kein Beispiel dabei. Im von Dir genannten Link steht:
Man kann dies sehr schön mit einem generischen Formularvalidator automatisieren, dann hat man gar keine Arbeit mehr damit.
Keine Arbeit hört sich gut an! Was ist mit dem generischem Formularvalidator denn gemeint?

Wenn zu kompliziert, dann nützt mir auch schon ein kleines Beispiel für die Vorgehensweise, welche in dem Beitrag vorgeschrieben wird.

Danke!
Thom
 
Hi,

ich hatte das selbe Problem, wenn nach einer Aktualisierung er Seite ne Mail generiert und weggeschickt wurde. Abhilfe schaffte die Sessionvariable. Anbei ein Beispiel von mir.
Zu beachten ist allerdings, dass ich eine HTML Seite habe und eine PHP Seite. So ist der HMTL-Code vom PHP-Code getrennt. Ich rufe also immer die php Seite auf, lese die HTML Seite ein und gebe sie aus. Du musst dir das so vorstellen, dass die PHP Seite alle Seiten verwaltet und immer auf einen REaktion der HTML Seite wartet und diese dann auswertet - hört sich etwas kompliziert an, isses aber nicht.

PHP:
<?php
 session_start();
 session_register('refresh');

 //print_r($_POST); // Testausgabe der Forumlareingabe (Array wird ausgegeben)
 $done=false;

 //könnte auch im Formular mit reset behandelt werden
 if (isset($_POST["delete"])) { / wertet Button zureucksetzen aus
  displayStart();
  $done=true;
 }
 
 if (!$done) {
  if (isset($_POST["bestellen"])) {  wertet Bestellbutton aus
   if (!checkFields()) { // sind nicht alle Pflichtfelder korrekt ausgefuellt
    displayStartAgain();
   }
   else {
    // wurde diese Session schon mal abgearbeitet 
   //HIER verhindere ich ein erneutes Senden der Mail
    if ($_SESSION['refresh']==implode(";",$_POST)) { 
     displayEnd(true);
     $done=true;
    }
    else {
     $ok=sendMail(); // Session wurde noch nicht abgearbeitet - Mail senden
     displayEnd($ok);
    }
   }
   $done=true;
  }
 }

 $_SESSION['refresh']=implode(";",$_POST); // Session aktivieren
 if (!$done) {
  displayStart(); // Start HTML Seite einlesen und ausgeben
  $done=true;
 }
...

Wenn du dazu Fragen hast, lass sie mich wissen.
 
Zurück