Announcement

Collapse
No announcement yet.

HTML/php Formular wird doppelt gesendet

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • HTML/php Formular wird doppelt gesendet

    Hallo miteinander,

    ich hab hier ein kleines Problem aus dem ich nicht schlau werden. Ich erzeuge in einer php Datei mittels echo ein HTML-Formluar.

    PHP Code:
    echo "
      <form name=\"formNewUser\" id=\"formNewUser\" method=\"post\" action=\"newuser.php\">
        <table>
          <tr name=\"trNewUser\" id=\"trNewUser\" style=\"visibility:collapse;\">
            <td>
              <input type=\"text\" name=\"textBoxNewUserNickname\" id=\"textBoxNewUserNickname\" style=\"width:100px;\" />
            </td>
            <td>
              <input type=\"text\" name=\"textBoxNewUserFirstName\" id=\"textBoxNewUserFirstName\" style=\"width:100px;\" />
            </td>
            <td>
              <input type=\"text\" name=\"textBoxNewUserLastName\" id=\"textBoxNewUserLastName\" style=\"width:100px;\" />
            </td>
            <td>
              <input type=\"text\" name=\"textBoxNewUserPassword\" id=\"textBoxNewUserPassword\" style=\"width:100px;\" />
            </td>
            <td colspan=\"2\" align=\"center\">
              <input type=\"submit\" id=\"buttonNewUserSave\" value=\"Speichern\" style=\"align:center;\" />
            </td>
          </tr>
        </table>
      </form>
    "

    Das erzeugte HTML im Browser sieht dann so aus:

    HTML Code:
    <form name="formNewUser" id="formNewUser" method="post" action="newuser.php">
      <table>
        <tr name="trNewUser" id="trNewUser" style="visibility:collapse;">
          <td>
            <input type="text" name="textBoxNewUserNickname" id="textBoxNewUserNickname" style="width:100px;" />
          </td>
          <td>
            <input type="text" name="textBoxNewUserFirstName" id="textBoxNewUserFirstName" style="width:100px;" />
          </td>
          <td>
            <input type="text" name="textBoxNewUserLastName" id="textBoxNewUserLastName" style="width:100px;" />
          </td>
          <td>
            <input type="text" name="textBoxNewUserPassword" id="textBoxNewUserPassword" style="width:100px;" />
          </td>
          <td colspan="2" align="center">
            <input type="submit" id="buttonNewUserSave" value="Speichern" style="align:center;" />
          </td>
        </tr>
      </table>
    </form>
    In der Datei newuser.php wird dann der neue Benutzer in der Datenbank eingetragen. Allerdings passiert hier was komisches. Die Seite newuser.php wird scheinbar zweimal aufgerufen, denn bei jedem Abschicken des Formulars habe ich zwei neue Einträge in der Datenbank. Der erste der beiden Einträge beinhaltet nur Leerstrings und der zweite der beiden Einträge enthält dann die korrekten, von mir in Formular, eingegebenen Daten.

    Hab ihr eine Idee, woran das liegen könnte?

    Grüße Schlonzo

    EDIT: Doppeltes name Attribut im Formular korrigiert.
    Zuletzt editiert von Schlonzo; 02.03.2010, 12:49.

  • #2
    Warum hat die Form 2x den gleichen Namen.....
    Christian

    Comment


    • #3
      Originally posted by Christian Marquardt View Post
      Warum hat die Form 2x den gleichen Namen.....
      Hi, danke Dir für Deine Antwort. Das ist ein Copy & Paste Fehler. Hab das jetzt korrigiert, aber das Formular wird dennoch doppelt gesendet.

      Comment


      • #4
        Dann würde ich mal in den Code des PHP-Scriptes schauen
        Christian

        Comment


        • #5
          Das hier ist der Inhalt der newuser.php, wobei in der dbconnect.php die Verbindung zur Datenbank definiert wird.

          PHP Code:
          <?php
          session_start 
          ();
          include(
          "dbconnect.php");

          if(isset(
          $_SESSION["USER_ISADMIN"])){
                  
          header ("Location: admin.php");

                  
          $USER_NICKNAME $_POST["textBoxNewUserNickname"];
                  
          $USER_FIRSTNAME $_POST["textBoxNewUserFirstName"];
                  
          $USER_LASTNAME $_POST["textBoxNewUserLastName"];
                  
          $USER_PASSWORD $_POST["textBoxNewUserPassword"];

                  
          $sql "
                  INSERT INTO T_USER
                  (USER_NICKNAME, USER_FIRSTNAME, USER_LASTNAME, USER_PASSWORD)
                  VALUES
                  ('"
          .$USER_NICKNAME."', '".$USER_FIRSTNAME."', '".$USER_LASTNAME."', '".md5($USER_PASSWORD)."') ";

                  
          $result $db->query($sql);
                  if (!
          $result) {
                          die (
          $db->error);
                  }
                  unset(
          $result);

          }
          ?>

          Comment


          • #6
            Ich kann jetzt nicht sehen, warum das 2x kommt.

            Das Leereinträge geschrieben werden, deutet darauf hin, dass das Script von irgendwo anders her nochmal aufgerufen wird, wo die Parameter nicht enthalten sind
            Christian

            Comment


            • #7
              Hallo,

              zu Deiner Frage habe ich auch keine Lösung parat. Da muss man kräftig debuggen. Wie Christian Marquardt schon sagte, schau doch mal, von wo das Script aufgerufen wird. Schreib das irgendwo weg, dann müsstest Du pro Absenden ja zwei Einträge in dem Protokoll haben, vielleicht von unterschiedlichen Referrern?

              Aber schau doch mal hier bzgl. Deines Formulars, da passt die Semantik ja gar nicht, es liegen ja keine tabellarischen Daten vor. Außerdem würde sich der Nutzer vielleicht über Labels freuen: http://www.einfach-fuer-alle.de/arti...nd-javascript/

              Grüße,
              -Efchen

              Comment


              • #8
                Ev. wäre schon eine Suche über alle Dateien des Projektes mit dem Inhalt "newuser.php" erfolgreich; mehrfache Aufrufe könnten zu sehen sein
                Christian

                Comment

                Working...
                X