Datensätze werden trotz Kontrolle geschrieben

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

  • Datensätze werden trotz Kontrolle geschrieben

    Hallo zusammen,

    ich habe mir ein recht umfangreiches Formular erstellt. Dieses funktioniert auch soweit schon wie es soll. Nun wollte ich zur Verfeinerung eine Kontrolle einbauen, die diverse Felder auf einen Inhalt überprüft und in Abhängigkeit davon den Datensatz in die Datebank schreibt oder mich zurück zum Formular bringt. Die Funktion das eine Meldung kommt, wenn eines der Felder nicht gefüllt ist funktioniert. Dummerweise schreibt er aber den Satz trotzdem in die Datenbank, was zur Folge hat, dass ich eine Unmenge unvollständiger Sätze in der DB habe.
    Zu der Funktion, dass ich bei fehlenden Daten wieder auf auf das Form zurück komme und die Daten die schon eingeben wurden noch drin stehen, habe ich noch keinen Ansatz gefunden. Wie habt ihr das gelöst ????
    Hier der Code dazu:

    PHP-Code:
    <?
    // Datenbankverbindung öffnen, auf Fehler prüfen
    if (! ($dbLink = mysql_connect ("localhost", "web218", "uni421"))) {
      print ("Datenbankverbindung fehlgeschlagen!<BR>\n");
      print ("Beendet!<BR>\n");
      exit();
    }

    //Datenbank auswählen, auf Fehler prüfen
    if (!mysql_select_db ("usr_web218_2", $dbLink)) {
      print ("Kann die Datenbank nicht auswählen!<BR>\n");
      print ("Abbruch!<BR>\n");
      exit();
    }
    // Definition der Variablen die in die Felder geschrieben werden
    $Vorname = $HTTP_POST_VARS["Vorname"];
    $Nachname = $HTTP_POST_VARS["Nachname"];
    $Strasse = $HTTP_POST_VARS["Strasse"];
    $PLZ = $HTTP_POST_VARS["PLZ"];
    $Ort = $HTTP_POST_VARS["Ort"];
    $Telefon = $HTTP_POST_VARS["Telefon"];
    $Fax = $HTTP_POST_VARS["Fax"];
    $Email = $HTTP_POST_VARS["Email"];
    $Homepage = $HTTP_POST_VARS["Homepage"];
    $Modell = $_POST['Modell'];
    $Baujahr = $HTTP_POST_VARS['Baujahr'];
    $Nummer = $HTTP_POST_VARS["Nummer"];
    $Hubraum = $HTTP_POST_VARS["Hubraum"];
    $Leistung = $HTTP_POST_VARS["Leistung"];
    $Motortyp = $_POST['Motortyp'];
    $Vmax = $HTTP_POST_VARS["Vmax"];
    $Leergewicht = $HTTP_POST_VARS["Leergewicht"];
    $Gesamtgewicht = $HTTP_POST_VARS["Gesamtgewicht"];
    $Laenge = $HTTP_POST_VARS["Laenge"];
    $Breite = $HTTP_POST_VARS["Breite"];
    $Hoehe = $HTTP_POST_VARS["Hoehe"];
    $Kabine = $_POST['Kabine'];
    $Bereifung = $HTTP_POST_VARS["Bereifung"];
    $Bremsen = $_POST['Bremsen'];
    $Getriebe = $_POST['Getriebe'];
    $Zusatzgetriebe = $_POST['Zusatzgetriebe'];
    $ZWvorn = $_POST['ZWvorn'];
    $ZWhinten = $_POST['ZWhinten'];
    $Seitenabtrieb = $_POST['Seitenabtrieb'];
    $Hydraulik = $_POST['Hydraulik'];
    $Luftpresser = $_POST["Luftpresser"];
    $KHvorn = $_POST['KHvorn'];
    $KHhinten = $_POST['KHhinten'];
    $Kipper = $_POST['Kipper'];
    $KM = $HTTP_POST_VARS["KM"];
    $Stunden = $HTTP_POST_VARS["Stunden"];
    $Sonstiges = $HTTP_POST_VARS["Sonstiges"];
    $Story = $HTTP_POST_VARS["Story"];
    $Zustand = $_POST['Zustand'];
    if ($Vorname == ""){ echo "<font color='#000000'>Sie haben keinen
    <b> Vornamen</b> eingegeben.</font><br>";}
    if ($Nachname == ""){ echo "<font color='#000000'>Sie haben keinen
    <b> Nachnamen</b> eingegeben.</font><br>";}
    $eintrag = "INSERT INTO unimog (Vorname, Nachname, Strasse,
    PLZ, Ort, Telefon, Fax, Email, Homepage, Modell, Baujahr, Nummer,
    Hubraum, Leistung, Motortyp, Vmax, Leergewicht, Gesamtgewicht,
    Laenge, Breite, Hoehe, Kabine, Bereifung, Bremsen, Getriebe,
    Zusatzgetriebe, ZWvorn, ZWhinten, Seitenabtrieb, Hydraulik, Luftpresser,
    KHvorn, KHhinten, Kipper, KM, Stunden, Sonstiges, Story, Zustand)
    VALUES ('$Vorname', '$Nachname', '$Strasse', '$PLZ', '$Ort', '$Telefon', '$Fax',
    '$Email', '$Homepage', '$Modell', '$Baujahr', '$Nummer', '$Hubraum',
    '$Leistung', '$Motortyp', '$Vmax', '$Leergewicht', '$Gesamtgewicht',
    '$Laenge', '$Breite', '$Hoehe', '$Kabine', '$Bereifung', '$Bremsen',
    '$Getriebe', '$Zusatzgetriebe', '$ZWvorn', '$ZWhinten', '$Seitenabtrieb',
    '$Hydraulik', '$Luftpresser', '$KHvorn', '$KHhinten', '$Kipper', '$KM',
    '$Stunden', '$Sonstiges', '$Story', '$Zustand')";
    $eintragen = mysql_query($eintrag);
     // echo mysql_errno() . ": " . mysql_error(). "\n";
    ?>

    <html>
    <head>
          <title>Eintrag in die Datenbank</title>
    </head>
    <body bgcolor="#B8C6C9" text="black" link="blue" vlink="purple" alink="red">
    <form action="<?php echo $senden ?>" method="POST" enctype="multipart/form-data">
    <p align="center"><font face="Comic Sans MS"><b><span style="font-size:22pt;"><u>Eintrag
    in die Datenbank der Unimog-Freunde-Nassauer-Land</u></span></b></font></p><br>
    <p align="left"><input type="button" name="Zurück" value="Zu den Einträgen"
    onClick="self.location.href='http://www.unimog-freunde.de/ausgabe.php'">
    <font face="Comic Sans MS">
    <span style="font-size:22pt;">&nbsp;</span></font></p>

    <tr>
        <td width="115" height="13"><p><font face="Comic Sans MS"><span style="font-size:10pt;">
    <input type="submit" name="submit" value="senden"></span></font></p>
        <td width="183" height="13"><p><font face="Comic Sans MS"><span style="font-size:10pt;">
    <input type="reset" name="clear" value="löschen"></span></font></p>
    </tr>
    <table border="0" width="944">
     <tr>
         <td width="115" height="20"><p><font face="Comic Sans MS">
    <span style="font-size:10pt;">Vorname:</span></font></p>
         <td width="183" height="20"><p><font face="Comic Sans MS">
    <span style="font-size:10pt;"><input type="text" name="Vorname" maxlength="20" size="21"></span></font></p>
    .
    .
    .
    . Hier werden die restlichen Felder geholt.
    .
    .
    .

    Fritzje610

    EDIT:
    php-tags eingefügt
    Zuletzt geändert von wahsaga; 24.03.2004, 14:18.
    Gruß

    Michael

  • #2
    Re: Datensätze werden trotz Kontrolle geschrieben

    bitte php-code in php-tags setzen, liest sich besser.

    PHP-Code:
    // Definition der Variablen die in die Felder geschrieben werden
    $Vorname $HTTP_POST_VARS["Vorname"];
    $Nachname $HTTP_POST_VARS["Nachname"];
    $Strasse $HTTP_POST_VARS["Strasse"];
    // ... und noch dreihundert solcher zeilen 
    schau dir doch mal extract() an, bevor du solche code-monster zusammenscriptest ...


    PHP-Code:
    if ($Vorname == ""//fehlermeldung
    if ($Nachname == ""//fehlermeldung
    $eintrag "INSERT INTO ...";
    $eintragen mysql_query($eintrag); 
    also entweder willst du uns veräppeln, oder du hast keinen blassen schimmer, was du da tust.

    du unternimmst ja nicht das geringste, um das eintragen der daten beim auftreten eines fehlers zu unterbinden.

    ja, du gibst ein paar fehlermeldungen mit echo aus - und, erwartest du jetzt, dass PHP sich diese durchliest, oder was?
    Zuletzt geändert von wahsaga; 24.03.2004, 14:19.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      da fehlt ein else unter deiner letzten if bedingung...
      danach söllte es gehen
      Geht net gibts net...

      Kommentar


      • #4
        Original geschrieben von deschmiddi
        da fehlt ein else unter deiner letzten if bedingung...
        danach söllte es gehen
        das würde nur dann wirksam, wenn der fehler beim nachnamen auftritt.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Original geschrieben von deschmiddi
          da fehlt ein else unter deiner letzten if bedingung...
          danach söllte es gehen
          er sollte lieber sein insert in eine sep. if bedingung packen.
          mfg
          marc75

          <Platz für anderes>

          Kommentar


          • #6
            Hi,

            @deschmiddi. Top. Funktioniert. Wenn ich den $eintrag ...... als else-Zweig setze, kann ich nur dann in die Datenbank schreiben, wenn die beiden Felder gefüllt sind.
            Wie kriege ich es jetzt noch hin, dass er mir die schon eingegebenen Daten wieder einsetzt ?

            Fritzje610
            Gruß

            Michael

            Kommentar


            • #7
              <input type="text" name="Vorname" maxlength="20" size="21">
              ersetzen durch

              <input type="text" name="Vorname" maxlength="20" size="21" value="<?php echo $_POST['Vorname'] ?>">

              aber wahsaga hat recht:

              PHP-Code:

                    
              if ($Vorname == ""//fehlermeldung
              elseif ($Nachname == ""//fehlermeldung
              else{
              $eintrag "INSERT INTO ...";
              $eintragen mysql_query($eintrag);

              so muss das aussehen...
              Zuletzt geändert von deschmiddi; 24.03.2004, 15:35.
              Geht net gibts net...

              Kommentar


              • #8
                Original geschrieben von fritzje610
                Wie kriege ich es jetzt noch hin, dass er mir die schon eingegebenen Daten wieder einsetzt ?
                lies mal http://www.dclp-faq.de/q/q-stil-normalform.html
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar

                Lädt...
                X