Daten erst dann in DB speichern, wenn Felder OK sind

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

  • Daten erst dann in DB speichern, wenn Felder OK sind

    Hallo Leute,

    Ich übermittle Daten in eine Datenbank und dabei wird zugleich dem User eine E-Mail als DANKE übermittelt.

    Jetzt habe ich eine Abfrage eingebaut, so dass es gewisse Pflichtfelder im Formular gibt.

    Jetzt möchte ich aber, dass nach der Prüfung der Pflichtfelder, erst dann die Daten in die Datenbank gespeichert werden, wenn folgender Code OK ist.

    PHP-Code:
    if ($Nachname == ""){ echo "- Sie haben keinen <b>Nachnamen</b> 
    eingegeben. Gehen Sie bitte zurück und geben Sie nochmals die Daten ein!<br>"
    ;}
    if (
    $Vorname == ""){ echo "- Sie haben keinen <b>Vornamen</b> 
    eingegeben. Gehen Sie bitte zurück und geben Sie nochmals die Daten ein!<br>"
    ;}
    if (
    $Adresse == ""){ echo "- Sie haben keine <b>Adresse</b> eingegeben.
     Gehen Sie bitte zurück und geben Sie nochmals die Daten ein!<br>"
    ;}
    if (
    $plz == ""){ echo "- Sie haben keine <b>PLZ</b> bzw. keinen 
    <b>Ort</b> eingegeben. Gehen Sie bitte zurück und geben Sie nochmals die Daten ein!<br>"
    ;}
    if (
    $Email == "")
            {
            echo 
    "- Sie haben keine <b>E-Mail</b> eingetragen. Gehen Sie bitte
    zurück und geben Sie nochmals die Daten ein!<br>"
    ;
            }
            elseif(!
    ereg("^[a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+.([a-zA-
    Z]{2,3})$"
    $Email))
            {
            echo 
    "Diese E-Mail Adresse ist nicht gültig. Bitte gehen Sie zurück und
    geben Sie eine richtige E-Mail ein!<br>"
    ;
            }
    else if(
    $Nachname && $Vorname && $Adresse && $plz && $Email) {
    echo
    "Alle Daten Sind OK<br><br>"mail();} 
    Wenn dies ausgeführt wird "else if($........ (letzte Zeile)" und alles OK ist,
    dann soll dieser Code ausgeführt werden, ansonsten kommt ja eh die
    Fehlermeldung (siehe oben)

    PHP-Code:
    $sql "INSERT INTO zukunftsinvestments (Firma, Nachname, Vorname,
    Adresse, plz, Email, Telefon, Nummer, Ort, Datum) VALUES (\"
    $Firma\",
    \"
    $Nachname\", \"$Vorname\", \"$Adresse\", \"$plz\", \"$Email\",
    \"
    $Telefon\", \"$Nummer\", \"$Ort\",\"$Datum\")";
    $result=mysql_query($sql);
    echo 
    "Wir Danken für Ihre Anmeldung.<br>In den nächsten Minunten wird
    Ihnen eine Anmeldebestätigung per E-Mail an 
    $Email zugesendet."
    PS: gibt es auch noch diesbezüglich so einen Zurück-Button für den oberen Code der dann angezeigt wird, so dass der User nicht auf den Zurück-Button im Browser klicken muss?

    LG, m-werk
    Zuletzt geändert von m-werk; 11.04.2006, 09:08.
    LG, m-werk

  • #2
    Da du nicht in der lage warst, deinen code umzubrechen, kann ich nur halbe sätze lesen. Und das obwohl ich nen widescreen habe.

    Ist dein Problem mit dem eintragen jetzt gelöst?


    du kannst mittels JS (history.back) zurück springen. Aber warum gibst du dem user nicht auf der fehlerseite nen formular, wo seine angaben schon drin stehen evtl. die falschen Stellen sogar mit einem Stern(?) gekennzeichnet werden? Setzt natürlich ne saubere Strucktur deines dokumentes voraus.

    Kommentar


    • #3
      Setze doch das SQL Statement einfach hinter Deine Überprüfung und verwende oben statt "echo" einfach "die()".
      --
      ...with www.zeec.de, the addictive mobile media blog by:

      EYETRIBE GmbH i.Gr.
      http://www.eyetribe.com

      Kommentar


      • #4
        Ich hab mein sql-Statement hinter meiner Prüfung. Zuerst wird geprüft, dann wird gespeichert.

        Wie soll das mit die() aussehen?
        LG, m-werk

        Kommentar


        • #5
          guckst du im manual: die

          Kommentar


          • #6
            Hallo,


            PHP-Code:
            else if($Nachname && $Vorname && $Adresse && $plz && $Email) {
             echo
            "Alle Daten Sind OK<br><br>"mail();} 
            Ich versteh das nicht ganz!

            Wenn ich anstelle von echo die("Alle Daten sind OK"); verwende, was macht das für einen Unterschied?

            Ich muss doch eine verbindung mit else if und dem sql-statement herbekommen.

            Ich bin mir nicht sicher, ob ich richtig liege:

            muss vielleicht das sql-statement in der else if zwischen die { und }?

            lg, m-werk
            LG, m-werk

            Kommentar


            • #7
              Ich habe das immer so gelöst:

              PHP-Code:
              if(isset($_POST['submit']))
              {
                if(empty(
              $_POST[file]))
                {
                  
              $error .= '<b>*</b> Du musst noch die Datei angeben!<br>';
                }
                if(empty(
              $_POST[title]))
                {
                  
              $error .= '<b>*</b> Du musst noch einen Titel angeben!<br>';
                }
                if(empty(
              $_POST[forumbereich]))
                {
                  
              $error .= '<b>*</b> Laberecke oder Funforum ??<br>';
                }

                if(empty(
              $error))
                {
                  
              $time time();
                  
              $sql $DB_site->query("INSERT INTO ......... ");
                  if(
              $sql){
                   
              $status '<b>*</b> Datei wurde in die Datenbank eingetragen!<br>';
                   
              // Hier kommen dann alle Mailsender functionen rein.
                  
              }else{
                   
              $status '<b>*</b> Fehler beim eintragen der Datei in die Datenbank!<br>';
                }


              Sers
              Der Boris

              Kommentar


              • #8
                Du musst natürlich Deine Fehlermeldungen mit die() ausgeben. Dann bricht das Script die Ausführung ab und das SQL wird ebenfalls nicht ausgeführt.
                --
                ...with www.zeec.de, the addictive mobile media blog by:

                EYETRIBE GmbH i.Gr.
                http://www.eyetribe.com

                Kommentar


                • #9
                  Hallo, das funktioniert bei mir nicht.

                  Es werden trotzdem die Daten in die Tabelle geschrieben.

                  PHP-Code:
                  else if($Nachname && $Vorname && $Adresse && $plz && $Email) { die
                  (
                  "Bitte geben Sie die Daten, welche fehlen, im Formular ein!"); mail();} 
                  Ich glaub, es ist ganz einfach aber ich komm nicht dahinter. können es die { } sein? oder muss ich ein "or die" setzen?

                  LG m-werk
                  LG, m-werk

                  Kommentar


                  • #10
                    du hast keinen plan, was du da machst, oder???

                    Kommentar


                    • #11
                      Irgendwie so. Habe das jetzt nur ganz schnell zusammengetippt, damit Du einen Plan hast. Das ganze ist stilistisch immer noch schlecht, aber so erkennst Du wenigstens, was Du falsch gemacht hast.

                      Und jetzt schnell zu Amazon !


                      PHP-Code:
                      if ($Nachname == "")

                        die(
                      "- Sie haben keinen <b>Nachnamen</b> eingegeben. 
                      Gehen Sie bitte zurück und geben Sie nochmals die Daten ein!<br>"
                      );
                      }

                      if (
                      $Vorname == "")

                        die(
                      "- Sie haben keinen <b>Vornamen</b> eingegeben. 
                      Gehen Sie bitte zurück und geben Sie nochmals die Daten ein!<br>"
                      );
                      }

                      if (
                      $Adresse == "")

                        die(
                      "- Sie haben keine <b>Adresse</b> eingegeben. 
                      Gehen Sie bitte zurück und geben Sie nochmals die Daten ein!<br>"
                      );
                      }

                      if (
                      $plz == "")

                        die(
                      "- Sie haben keine <b>PLZ</b> bzw. keinen <b>Ort</b> eingegeben.
                       Gehen Sie bitte zurück und geben Sie nochmals die Daten ein!<br>"
                      );
                      }

                      if (
                      $Email == "")
                      {
                        die(
                      "- Sie haben keine <b>E-Mail</b> eingetragen. 
                      Gehen Sie bitte zurück und geben Sie nochmals die Daten ein!<br>"
                      );
                      }
                      else if(!
                      ereg("^[a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+.([a-zA-Z]{2,3})$"$Email))
                      {
                        die(
                      "Diese E-Mail Adresse ist nicht gültig. 
                      Bitte gehen Sie zurück und geben Sie eine richtige E-Mail ein!<br>"
                      );
                      }
                      else if(
                      $Nachname && $Vorname && $Adresse && $plz && $Email
                      {
                        echo 
                      "Alle Daten Sind OK<br><br>"
                      }

                      $sql 'INSERT INTO zukunftsinvestments (Firma, Nachname, Vorname,
                       Adresse, plz, Email, Telefon, Nummer, Ort, Datum) VALUES 
                      ("$Firma","$Nachname", "$Vorname", "$Adresse", "$plz", "$Email",
                      "$Telefon", "$Nummer", "$Ort","$Datum")'
                      ;
                      if (
                      mysql_query($sql))
                      {
                        
                      $Subject "Anmeldung erfolgreich";
                        
                      $Body "Keine Ahnung was hier hin soll."
                        
                        
                      if (mail($Email$Subject$Body))
                        {
                          echo 
                      "Wir Danken für Ihre Anmeldung.<br>In den nächsten 
                      Minunten wird Ihnen eine Anmeldebestätigung per E-Mail 
                      an 
                      $Email zugesendet.";
                        }
                        else
                        {
                          echo 
                      "Sie sind in der Datenbank registriert, aber beim Versand 
                      der Bestätigungsmail ist ein Fehler aufgetreten."
                        
                      }
                      }
                      else
                      {
                        echo 
                      "<h1>Es ist ein Datenbankfehler aufgetreten!</h1>";

                      --
                      ...with www.zeec.de, the addictive mobile media blog by:

                      EYETRIBE GmbH i.Gr.
                      http://www.eyetribe.com

                      Kommentar


                      • #12
                        Ehrlich gesagt, nein. Ich hab keinen Tau, was ich da mache!

                        Ich bin auch kein Phpler sondern hab mir das was ich kann, Datenbankabfrage bzw speichern selbst beigebracht. Das war's auch schon. Ich kann etwas in enem vordefinierten Code umändern aber das war's dann auch schon.
                        LG, m-werk

                        Kommentar


                        • #13
                          DANKE, das hat jetzt prima funktioniert. Das Script geht jetzt bei mir.

                          Jetzt ist mir das mit die() auch klar. Da kann ich jetzt einiges machen.
                          LG, m-werk

                          Kommentar

                          Lädt...
                          X