Formlar erzeugt zwei Einträge

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

  • Formlar erzeugt zwei Einträge

    Hallo zusammen,

    Ihr könnt mich hier ziemlich ratlos sehen - und das sieht nicht so schön aus ;-) - , denn ich habe folgendes Problem:

    Über einen normalen Link wird die Datei eintrag_neu.php aufgerufen. Die stellt dann ein Formular zur Dateneingabe zur Verfügung. Nach dem Abschicken über den Button wird die gleiche Datei wieder aufgerufen. Ich lasse überprüfen, ob der Formularbutton gedrückt worden ist und anschließend die Daten in ein Textfile schreiben. Soweit so gut, macht er alles prima.

    Aber nun: Ab und an produziert er einen zweiten komplett leeren Eintrag hinterher. Das Problem ist, dass ich diesen Fehler nicht reproduzieren kann, um ihn - hoffentlich - auszumerzen.

    Hat jemand eine Idee?

    Viele Grüße, remy-otoshi

  • #2
    ein klein wenig code würde weiterhelfen, wir sind leider keine hellseher.

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Ich weiss janicht wie es den anderen geht, aber ohne den Code kann ich dazu nicht viel sagen.
      Ausser ein paar unlogischen Vermutungen.
      mfg - sagg

      Kommentar


      • #4
        Aber gerne doch:

        ...

        if (isset($_REQUEST['action']))
        {
        $_SESSION['kurs'] = $_REQUEST['kurs'];
        // Vorbelegung für das Formular
        $titel = "Titel";
        $artikel ="Hier Ihren Text bitte";
        $bild ="kein";
        $tag = "1";
        $monat = "1";
        $jahr = "2005";
        $veranstaltungsbeginn = "";
        echo "Bitte geben Sie die Veranstaltungsdaten ein:<br><br>";
        echo '<form action="termin_neu.php" name="eintrag_neu" method="post" class="ct">';
        // Formular für Eingabe Artikel
        include ("frm/frm-" . $_SESSION['kurs'] . ".inc");
        }

        if (isset($_REQUEST['go']) and $_REQUEST['go'] == "eintragen")
        {
        // Daten erfassen aus dem Formular frm-artikel.inc
        include ("inc/termindaten_erfassen.inc");
        // Eintrag in logdat/txt_liste.txt
        $dat1 = $_SESSION['kurs'] . "/" . $_SESSION['kurs'] . ".txt";
        $dat2 = file($dat1);
        $indexermittlung = count($dat2);
        $datum = date( "d.m.Y");
        //$veranstaltungsdatum = $tag . "." . $monat . "." . $jahr;
        if ($indexermittlung == "0")
        {
        $index = 0;
        $neuereintrag = $index . "|" . $datum . "|" . $titel . "|" . $artikel . "|" . $tag . "|" . $monat . "|" . $jahr . "|" . $veranstaltungsbeginn;
        }
        else
        {
        $letztezeile = explode ("|" , $dat2[$indexermittlung-1]);
        $index = $letztezeile[0]+1;
        $neuereintrag = "\n" . $index . "|" . $datum . "|" . $titel . "|" . $artikel . "|" . $tag . "|" . $monat . "|" . $jahr . "|" . $veranstaltungsbeginn;
        }

        $eintrag = fopen($dat1, "a");
        fwrite ($eintrag, $neuereintrag);
        fclose ($eintrag);
        echo "<br>Der Eintrag ist erfolgt.<br>";
        echo 'Möchten Sie einen weiteren Eintrag vornehmen? Bitte <a href="termin_neu.php?action=neu&kurs=' . $_SESSION['kurs'] .'">hier</a> klicken.';
        // reset des Kurses
        $_SESSION['kurs'] = "";
        }
        }

        Gruß, remy-otoshi

        Kommentar


        • #5
          Vielleicht noch eine Vermutung meinerseits drangehängt:

          Kann es sein, dass durch Vor-Zurückschalten des Browsers oder Aktualisieren eine Leerzeile drangehängt wird?

          Oder ruft die Seite sich (aus welchen Gründen auch immer) nochmals auf?

          Einer meiner Tester hatte noch den Fall, dass ein Eintrag an einen anderen drangehängt wurde, dann eine Leerzeile, dann den Eintrag nochmals.

          Könnt Ihr vielleicht damit etwas anfangen?

          Gruß, remy-otoshi

          Kommentar


          • #6
            Bitte [PHP]-Tags benutzen. Das liest sich doch so keiner durch...

            Kommentar


            • #7
              Ich würde dir einfach raten, dass du vor jedem Eintrag überprüfst, ob die Variablen auch Daten enthalten, ansonsten das Zeug verwerfen und gut ist.
              mfg - sagg

              Kommentar


              • #8
                Der HTML-Code deines Formulars wäre vielleicht auch hilfreich.

                Kommentar


                • #9
                  Erst mal danke fürs Codedurchwühlen!

                  @Tobiaz: Ha, ich wollte gerade fragen, was PHP-Tags sind, da habe ich den Button gefunden: Klar mach ich, danke für den Hinweis.

                  @sagg: Hm, das versuche ich mal, was mir aber letztlich das "Warum" nicht klarmacht. Dennoch Danke!

                  @Kompressor: Hier ein Formular dazu:

                  PHP-Code:
                  <table class="ct">
                  <tr>
                   <td>Tag: </td>
                   <td>Monat:</td>
                   <td>&nbsp;&nbsp;-&nbsp;&nbsp;</td>
                   <td>Tag</td>
                   <td>Monat</td>
                   <td>Jahr</td>
                  </tr> <tr>
                   <td><select name="tag" size="1">
                   <?php
                   
                  for ($i 1$i <= 31$i++)
                   {
                       if (
                  $i == $tag)
                       {
                           echo
                  '<option selected value="' $i '">' $i;
                       }
                       else
                       {
                           echo
                  '<option value="' $i '">' $i;
                       }
                   }
                   
                  ?>
                   </select>
                   </td><td>
                   <select name="monat" size="1">
                   <?php
                   
                  for ($j 1$j <= 12$j++)
                   {
                       if (
                  $j == $monat)
                       {
                           echo
                  '<option selected value="' $j '">' $j;
                       }
                       else
                       {
                           echo
                  '<option value="' $j '">' $j;
                       }
                   }
                    
                  ?>
                   </select>
                   </td>
                   <td>&nbsp;&nbsp;-&nbsp;&nbsp;</td>
                   <td><select name="tag2" size="1">
                   <?php
                   
                  for ($i 1$i <= 31$i++)
                   {
                       if (
                  $i == $tag)
                       {
                           echo
                  '<option selected value="' $i '">' $i;
                       }
                       else
                       {
                           echo
                  '<option value="' $i '">' $i;
                       }
                   }
                   
                  ?>
                   </select>
                   </td><td><select name="monat2" size="1">
                   <?php
                   
                  for ($j 1$j <= 12$j++)
                   {
                       if (
                  $j == $monat)
                       {
                           echo
                  '<option selected value="' $j '">' $j;
                       }
                       else
                       {
                           echo
                  '<option value="' $j '">' $j;
                       }
                   }
                    
                  ?>
                   </select>
                   </td>
                   <td><select name="jahr" size="1">
                   <?php
                   
                  for ($k 2006$k <= 2050$k++)
                   {
                       if (
                  $k == $jahr)
                       {
                           echo
                  '<option selected value="' $k '">' $k;
                       }
                       else
                       {
                       echo
                  '<option value="' $k '">' $k;
                       }
                   }
                   
                  ?>
                   </select>
                   </td> </tr>
                  </table>
                  <input type="hidden" name="kurs" value="mittelstufe" size="30" maxlength="" class="ct">
                  <input type="hidden" name="titel" value="Einstiegstermin" size="30" maxlength="" class="ct">
                  <input type="hidden" name="veranstaltungsbeginn" value="" size="30" maxlength="" class="ct">
                  <input type="hidden" name="artikel" value="" size="30" maxlength="" class="ct"><br>

                  <input type="reset" value="zurücksetzen"><input type="Submit" name="go" value="eintragen">
                  </form>

                  Kommentar

                  Lädt...
                  X