Daten erst dann in DB speichern, wenn Felder OK sind

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

  • m-werk
    antwortet
    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.

    Einen Kommentar schreiben:


  • m-werk
    antwortet
    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.

    Einen Kommentar schreiben:


  • felixxx
    antwortet
    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>";

    Einen Kommentar schreiben:


  • TobiaZ
    antwortet
    du hast keinen plan, was du da machst, oder???

    Einen Kommentar schreiben:


  • m-werk
    antwortet
    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

    Einen Kommentar schreiben:


  • felixxx
    antwortet
    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.

    Einen Kommentar schreiben:


  • boris-schneider
    antwortet
    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

    Einen Kommentar schreiben:


  • m-werk
    antwortet
    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

    Einen Kommentar schreiben:


  • TobiaZ
    antwortet
    guckst du im manual: die

    Einen Kommentar schreiben:


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

    Wie soll das mit die() aussehen?

    Einen Kommentar schreiben:


  • felixxx
    antwortet
    Setze doch das SQL Statement einfach hinter Deine Überprüfung und verwende oben statt "echo" einfach "die()".

    Einen Kommentar schreiben:


  • TobiaZ
    antwortet
    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.

    Einen Kommentar schreiben:


  • m-werk
    hat ein Thema erstellt Daten erst dann in DB speichern, wenn Felder OK sind.

    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, 10:08.
Lädt...
X