Ankündigung

Einklappen
Keine Ankündigung bisher.

Denkfehler? Einfaches speichern in DB mit Feldprüfung

Einklappen

Neue Werbung 2019

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

  • Denkfehler? Einfaches speichern in DB mit Feldprüfung

    Hallo,

    ich habe hier ein kleines PHP Script, das folgendes machen soll:

    Grundgedanke: Es soll damit ein neuer Klient in die DB geschrieben werden können. Wenn der Anwender mal etwas vergisst, dann soll das Script das sagen und entsprechende Meldung rausgeben. Damit der Anwender aber nicht wieder alles neu eintippen muss, sollen die Felder mit den bereits eingegebenen Daten wieder befüllt werden. Das soll so lange laufen, bis der Anwender alle Felder ausgefüllt hat. Danach soll das Formular wieder leer dastehen und auf neue Eingaben warten um den nächsten Klienten anzulegen. aber irgendwie klappt das nicht so ganz. Das schreiben in die DB schafft das script, aber irgendwie werden die Felder nicht richtig befüllt, wenn der Anwender mal eins vergisst etc...

    Hier mal der Code und schon mal ein dickes "Dankeschön" im Voraus.
    Gruß Chris

    PHP-Code:
    <?php
    session_start
    ();
    require_once(
    'cone.php');

    if (isset(
    $_SESSION["KlientSaveMsgErgebnis"])); {
        echo (
    $_SESSION["KlientSaveMsg"]);
    }

    ?>

    <p class="DivRechtsUeberschr"> Neuen Klienten anlegen: </p>

    <form name="NewKlientForm" method="post" action="index.php?MenRef=NewKl">
      <div class="textfeld">
        <label for="wfkln_anrede">Anrede</label>
        <select name="wfkln_anrede">
          <option value="Herr">Herr</option>
          <option value="Frau">Frau</option>
        </select>
      </div>
      

      <div class="textfeld">
        <label for="wfkln_name">Name</label>
        <input type="text" name="wfkln_name" id="wfkln_name" <?PHP if ($_SESSION["KlientSaveMsgErgebnis"] = "FAILURE") { 
                                                                
    ?> value="<?php echo (trim($_SESSION["KlientSaveValues"][1])); }
                                                                else {
                                                                echo 
    "";
                                                                }
    ?>">
      </div>
      
      
      <div class="textfeld">
        <label for="wfkln_vorname">Vorname</label>
        <input type="text" name="wfkln_vorname" id="wfkln_vorname"<?PHP if ($_SESSION["KlientSaveMsgErgebnis"] = "FAILURE") { 
                                                                
    ?> value="<?php echo (trim($_SESSION["KlientSaveValues"][2])); }
                                                                else {
                                                                echo 
    "";
                                                                }
    ?>">
      </div>
      <div class="textfeld">
        <label for="wfkln_Strasse">Strasse</label>
        <input type="text" name="wfkln_Strasse" id="wfkln_Strasse"<?PHP if ($_SESSION["KlientSaveMsgErgebnis"] = "FAILURE") { 
                                                                
    ?> value="<?php echo (trim($_SESSION["KlientSaveValues"][3])); }
                                                                else {
                                                                echo 
    "";
                                                                }
    ?>">
      </div>
      <div class="textfeld">
        <label for="wfkln_Hausnr">Hausnummer</label>
        <input type="text" name="wfkln_Hausnr" id="wfkln_Hausnr"<?PHP if ($_SESSION["KlientSaveMsgErgebnis"] = "FAILURE") { 
                                                                
    ?> value="<?php echo (trim($_SESSION["KlientSaveValues"][4])); }
                                                                else {
                                                                echo 
    "";
                                                                }
    ?>">
      </div>
      
      
      <div class="textfeld">
        <label for="wfkln_PLZ">PLZ</label>
        <input type="text" name="wfkln_PLZ" id="wfkln_PLZ"<?PHP if ($_SESSION["KlientSaveMsgErgebnis"] = "FAILURE") { 
                                                                
    ?> value="<?php echo (trim($_SESSION["KlientSaveValues"][5])); }
                                                                else {
                                                                echo 
    "";
                                                                }
    ?>">
      </div>
      
      
      <div class="textfeld">
        <label for="wfkln_Ort">Ort</label>
        <input type="text" name="wfkln_Ort" id="wfkln_Ort"<?PHP if ($_SESSION["KlientSaveMsgErgebnis"] = "FAILURE") { 
                                                                
    ?> value="<?php echo (trim($_SESSION["KlientSaveValues"][6])); }
                                                                else {
                                                                echo 
    "";
                                                                }
    ?>">
      </div>
      
      
      <div class="textfeld">
        <label for="wfkln_Tele">Telefon</label>
        <input type="text" name="wfkln_Tele" id="wfkln_Tele"<?PHP if ($_SESSION["KlientSaveMsgErgebnis"] = "FAILURE") { 
                                                                
    ?> value="<?php echo (trim($_SESSION["KlientSaveValues"][7])); }
                                                                else {
                                                                echo 
    "";
                                                                }
    ?>">
      </div>
      
      
      <div class="textfeld">
        <label for="wfkln_EMail">EMail</label>
        <input type="text" name="wfkln_EMail" id="wfkln_EMail"<?PHP if ($_SESSION["KlientSaveMsgErgebnis"] = "FAILURE") { 
                                                                
    ?> value="<?php echo (trim($_SESSION["KlientSaveValues"][8])); }
                                                                else {
                                                                echo 
    "";
                                                                }
    ?>">
      </div>
      
      
      <div class="textfeld">
        <label for="wfkln_GebDat">Geboren am</label>
        <input type="datetime" name="wfkln_GebDat" id="wfkln_GebDat"<?PHP if ($_SESSION["KlientSaveMsgErgebnis"] = "FAILURE") { 
                                                                
    ?> value="<?php echo (trim($_SESSION["KlientSaveValues"][9])); }
                                                                else {
                                                                echo 
    "";
                                                                }
    ?>">
      </div>
      
      
      <div class="textfeld">
        <label for="wfkln_GebOrt">Geboren in</label>
        <input type="text" name="wfkln_GebOrt" id="wfkln_GebOrt"<?PHP if ($_SESSION["KlientSaveMsgErgebnis"] = "FAILURE") { 
                                                                
    ?> value="<?php echo (trim($_SESSION["KlientSaveValues"][10])); }
                                                                else {
                                                                echo 
    "";
                                                                }
    ?>">
      </div>
      
      
      <div class="textfeld">
        <label for="wfkln_FamStand">Familienstand</label>
        <input type="text" name="wfkln_FamStand" id="wfkln_FamStand"<?PHP if ($_SESSION["KlientSaveMsgErgebnis"] = "FAILURE") { 
                                                                
    ?> value="<?php echo (trim($_SESSION["KlientSaveValues"][11])); }
                                                                else {
                                                                echo 
    "";
                                                                }
    ?>">
      </div>
      
      
      <div class="textfeld">
        <label for="wfkln_Religion">Religion</label>
        <input type="text" name="wfkln_Religion" id="wfkln_Religion"<?PHP if ($_SESSION["KlientSaveMsgErgebnis"] = "FAILURE") { 
                                                                
    ?> value="<?php echo (trim($_SESSION["KlientSaveValues"][12])); }
                                                                else {
                                                                echo 
    "";
                                                                }
    ?>">
       </div>
       
       
      <div class="textfeld">
        <label for="wfkln_WohnHausID">Haus ID</label>
        <input type="text" name="wfkln_WohnHausID" id="wfkln_WohnHausID"<?PHP if ($_SESSION["KlientSaveMsgErgebnis"] = "FAILURE") { 
                                                                
    ?> value="<?php echo (trim($_SESSION["KlientSaveValues"][13])); }
                                                                else {
                                                                echo 
    "";
                                                                }
    ?>">
      </div>
      
      
      <div class="textfeld">
        <label for="wfkln_StatGruppe">Gruppe</label>
        <input type="text" name="wfkln_StatGruppe" id="wfkln_StatGruppe"<?PHP if ($_SESSION["KlientSaveMsgErgebnis"] = "FAILURE") { 
                                                                
    ?> value="<?php echo (trim($_SESSION["KlientSaveValues"][14])); }
                                                                else {
                                                                echo 
    "";
                                                                }
    ?>">
      </div>
      
      
      <div class="textfeld">
        <label for="wfkln_StatZimmer">Zimmer</label>
        <input type="text" name="wfkln_StatZimmer" id="wfkln_StatZimmer"<?PHP if ($_SESSION["KlientSaveMsgErgebnis"] = "FAILURE") { 
                                                                
    ?> value="<?php echo (trim($_SESSION["KlientSaveValues"][15])); }
                                                                else {
                                                                echo 
    "";
                                                                }
    ?>">
      </div>
      
      
      <div class="checkbox">
        <label for="wfkln_Bildrechte">Bildrechte eingeräumt</label>
        <input type="checkbox" name="Ja" id="wfkln_Bildrechte">
      </div>  
      
      
        <div class="checkbox">
        <label for="wfkln_StammDDruck">Stammdatenblatt drucken</label>
        <input type="checkbox" name="wfkln_StammDDruck" id="wfkln_StammDDruck">
      </div>  
      
      
       <div class="checkbox">
        <label for="wfkln_AssistenzVTDruck">Aufnahmevertrag drucken</label>
        <input type="checkbox" name="wfkln_AssistenzVTDruck" id="wfkln_AssistenzVTDruck">
      </div>
      
        <input type="hidden" name="ExecSaveKlient" value="TRU" />
      
      <P align="right">   <input type="reset" value=" Abbrechen"> <input type="submit" name="Speichern" id="Speichern" value="Speichern"> </P>
     
    </form>

    <?php
        
              trim 
    (htmlspecialchars($_POST["wfkln_anrede"]));
              
    trim (htmlspecialchars($_POST["wfkln_name"]));
              
    trim (htmlspecialchars($_POST["wfkln_vorname"]));
              
    trim (htmlspecialchars($_POST["wfkln_Strasse"]));
              
    trim (htmlspecialchars($_POST["wfkln_Hausnr"]));
              
    trim (htmlspecialchars($_POST["wfkln_PLZ"]));
              
    trim (htmlspecialchars($_POST["wfkln_Ort"]));
              
    trim (htmlspecialchars($_POST["wfkln_Tele"]));
              
    trim (htmlspecialchars($_POST["wfkln_EMail"]));
              
    trim (htmlspecialchars($_POST["wfkln_GebDat"]));
              
    trim (htmlspecialchars($_POST["wfkln_GebOrt"]));
              
    trim (htmlspecialchars($_POST["wfkln_FamStand"]));
              
    trim (htmlspecialchars($_POST["wfkln_Religion"]));
              
    trim (htmlspecialchars($_POST["wfkln_WohnHausID"]));
              
    trim (htmlspecialchars($_POST["wfkln_StatGruppe"]));
              
    trim (htmlspecialchars($_POST["wfkln_StatZimmer"]));


              unset(
    $ErrorMsgNewKlient);
              
              
              if (empty(
    $_POST["wfkln_anrede"])) {
                 
    $ErrorMsgNewKlient .= "Anrede, ";
              }
              
              if (empty(
    $_POST["wfkln_name"])) {
                 
    $ErrorMsgNewKlient .= "Name, ";
              }
              
              if (empty(
    $_POST["wfkln_vorname"])) {
                 
    $ErrorMsgNewKlient .= "Vorname, ";
              }
              
              if (empty(
    $_POST["wfkln_Strasse"])) {
                 
    $ErrorMsgNewKlient .= "Strasse, ";
              }
              
              if (empty(
    $_POST["wfkln_Hausnr"])) {
                 
    $ErrorMsgNewKlient .= "Hausnummer, ";
              }
              
              if (empty (
    $_POST["wfkln_PLZ"])) {
                 
    $ErrorMsgNewKlient .= "PLZ, ";
              }
              
              if (empty (
    $_POST["wfkln_Ort"])) {
                 
    $ErrorMsgNewKlient .= "Wohnort, ";
              }
              
              if (empty (
    $_POST["wfkln_Tele"])) {
                 
    $ErrorMsgNewKlient .= "Telefon, ";
              }
              
              if (empty (
    $_POST["wfkln_EMail"])) {
                 
    $ErrorMsgNewKlient .= "Email, ";
              }
              
              if (empty(
    $_POST["wfkln_GebDat"])) {
                 
    $ErrorMsgNewKlient .= "Geburtsdatum, ";
              }
              
              if (empty(
    $_POST["wfkln_GebOrt"])) {
                 
    $ErrorMsgNewKlient .= "Geburtsort, ";
              }
              
              if (empty(
    $_POST["wfkln_FamStand"])) {
                 
    $ErrorMsgNewKlient .= "Familienstand, ";
              }
              
              if (empty (
    $_POST["wfkln_Religion"])) {
                 
    $ErrorMsgNewKlient .= "Religion, ";
              }
              
              if (empty (
    $_POST["wfkln_WohnHausID"])) {
                 
    $ErrorMsgNewKlient .= "WohnhausID, ";
              }
              
              if (empty (
    $_POST["wfkln_StatGruppe"])) {
                 
    $ErrorMsgNewKlient .= "Gruppe, ";
              }
              
              if (empty (
    $_POST["wfkln_StatZimmer"])) {
                 
    $ErrorMsgNewKlient .= "Zimmernummer, ";
              }
              
              if (isset(
    $ErrorMsgNewKlient)) 
                      {
                          
    $_SESSION["KlientSaveMsg"] = "Bitte füllen Sie alle Felder aus! Es Fehlen noch: <br />" $ErrorMsgNewKlient;
                          
    $_SESSION["KlientSaveMsgErgebnis"] = "FAILURE";
                          
    $_SESSION["KlientSaveValues"] = array(htmlspecialchars($_POST["wfkln_anrede"]), 
                                                          
    htmlspecialchars($_POST["wfkln_name"]),
                                                          
    htmlspecialchars($_POST["wfkln_vorname"]),
                                                          
    htmlspecialchars($_POST["wfkln_Strasse"]),
                                                          
    htmlspecialchars($_POST["wfkln_Hausnr"]),
                                                          
    htmlspecialchars($_POST["wfkln_PLZ"]),
                                                          
    htmlspecialchars($_POST["wfkln_Ort"]),
                                                          
    htmlspecialchars($_POST["wfkln_Tele"]),
                                                          
    htmlspecialchars($_POST["wfkln_EMail"]),
                                                          
    htmlspecialchars($_POST["wfkln_GebDat"]),
                                                          
    htmlspecialchars($_POST["wfkln_GebOrt"]),
                                                          
    htmlspecialchars($_POST["wfkln_FamStand"]),
                                                          
    htmlspecialchars($_POST["wfkln_Religion"]),
                                                          
    htmlspecialchars($_POST["wfkln_WohnHausID"]),
                                                          
    htmlspecialchars($_POST["wfkln_StatGruppe"]),
                                                          
    htmlspecialchars($_POST["wfkln_StatZimmer"]));    
                      }
                  else
                      {
                      
    $sql_befehl mysql_query ("INSERT INTO stda_klienten 
                      (
                        Anrede, 
                        KlientName, 
                        KlientVorname, 
                        KlientStrasse, 
                        KlientHNr, 
                        KlientPLZ, 
                        KlientOrt, 
                        KlientTel, 
                        KlientEMail, 
                        KlientGebDat, 
                        KlientGebOrt, 
                        KlientFamStand, 
                        KlientReligion, 
                        KlientStatWohnID, 
                        KlientStatGruppe, 
                        KlientStatZimmNr,
                        CreatUsr,
                        CreatIPC
                      ) 
                      VALUES 
                      (
                        '"
    .htmlspecialchars($_POST["wfkln_anrede"])."
                        ','"
    .htmlspecialchars($_POST["wfkln_name"])."
                        ','"
    .htmlspecialchars($_POST["wfkln_vorname"])."
                        ','"
    .htmlspecialchars($_POST["wfkln_Strasse"])."
                        ','"
    .htmlspecialchars($_POST["wfkln_Hausnr"])."
                        ','"
    .htmlspecialchars($_POST["wfkln_PLZ"])."
                        ','"
    .htmlspecialchars($_POST["wfkln_Ort"])."
                        ','"
    .htmlspecialchars($_POST["wfkln_Tele"])."
                        ','"
    .htmlspecialchars($_POST["wfkln_EMail"])."
                        ','"
    .htmlspecialchars($_POST["wfkln_GebDat"])."
                        ','"
    .htmlspecialchars($_POST["wfkln_GebOrt"])."
                        ','"
    .htmlspecialchars($_POST["wfkln_FamStand"])."
                        ','"
    .htmlspecialchars($_POST["wfkln_Religion"])."
                        ','"
    .htmlspecialchars($_POST["wfkln_WohnHausID"])."
                        ','"
    .htmlspecialchars($_POST["wfkln_StatGruppe"])."
                        ','"
    .htmlspecialchars($_POST["wfkln_StatZimmer"])."
                        ','"
    .($_SESSION["UsrName"])."
                        ','"
    .($_SERVER['REMOTE_ADDR'])."')");
              
              
                          if(
    $sql_befehl
                              {
                              
    $_SESSION["KlientSaveMsgErgebnis"] = "OKAY";
                              
    $_SESSION["KlientSaveMsg"] = "Der Klient " htmlspecialchars($_POST["wfkln_vorname"]) . " " htmlspecialchars($_POST["wfkln_name"]) 
                              . 
    " wurde in der Datenbank erfolgreich hinzugefügt. Bitte denken Sie daran die Angaben in den anderen Formularen zu vervollständigen!" $ErrorMsgNewKlient;
                              }
                          else    
                              
    $_SESSION["KlientSaveMsg"] = "Der Klient konnte nicht angelegt werden. Fehler: <br>" mysql_error();
                              }
                  

                

    ?>


  • #2
    Ojeh

    Affenformular angucken
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      @frenchchris,

      hier noch ein paar Anmerkungen:
      der Code ist (nimms bitte nicht persönlich) fürchterlich zu lesen. Halte dich bitte an einen Standard (http://www.php-fig.org/)

      Als nächstes ist mysql* veraltet und wird in der nächsten Version entfernt. Wechsle am besten zu PDO (http://php.net/manual/de/book.pdo.php)

      $_SESSION["KlientSaveMsgErgebnis"] = "OKAY";
      Wozu? Es gibt boolsche Variablen (true, false) in PHP, damit lässt sich auch lösen und die Abfragen sind deutlich sauberer.

      Und statt ewig langer If-Ketten wäre ein Validator deutlich sinnvoller. Lass dich da mal vom Symfony Validator und anderen ein wenig inspirieren:
      http://symfony.com/doc/current/book/validation.html

      LG
      https://github.com/Ma27
      Javascript Logic is funny:
      [] + [] => "", [] + {} => object, {} + [] => 0, {} + {} => NaN

      Kommentar


      • #4
        Ich stell dir mal meine Formularfunktionen zur Verfügung. Dann musst dich über das befüllen nicht mehr kümmern. Die machen das selbst.
        PHP-Code:
        /*Selectbox
        Aufruf z.B
        $select=new easyBox('nameundidderselectbox',ARRAYSTRING,ARRAYWERT);
        du kannst auch noch einen vierten Parameter übergeben der den Formularnamen enthält um das Formular bei onchange abzuschicken
        */
        class easyBox{

            
            function 
        easyBox($name,$valstring,$val,$form='',$forced=''){
            
            if(!empty(
        $forced)){$_POST[$name]=$forced;}
            if(!empty(
        $form)){$f='onChange="'.$form.'.submit();"';}else{$f='';}
                
        $str='<select  name="'.$name.'" id="'.$name.'" style="position:relative; width:175px;  background-color:#FFFFFF; color:#000000;" '.$f.'>';
                if(!empty(
        $_POST[$name])){
                for(
        $t=0;$t<count($val);$t++){if($_POST[$name]==$val[$t]){$nom=$valstring[$t];}}
                    if(!empty(
        $nom) && $nom!=""){
                
        $str.='<option value="'.$_POST[$name].'">'.$nom.'</option>';
                }
                }
                for(
        $r=0;$r<count($val);$r++){
                
                    if(
        $val[$r]!=$_POST[$name]){
                    
        $str.='<option value="'.$val[$r].'">'.$valstring[$r].'</option>';
                    
                    }
                }
                
        $str.='</select>';
                
                echo 
        $str;
            }
        }

        /*Textfeld
        Aufruf
        textfield('name',breiteinpixeln,[optional der Wert. Wird automatisch ausgefüllt wenn keine Angabe]);*/
        function textfieldH($name=NULL,$size=45,$val=''){
            
        $h='';
            if(
        eregi('%',$size)){$w=$size$h=' height:30px; '$rad=15;}else{$w=$size.'px'$rad=5;}
            if(!empty(
        $val)){$r='value="'.$val.'"';}else{$r='value="'.$_POST[$name].'"';}
            
        $cssTemp='<input style="border:1px solid; border-radius:'.$rad.'px;'.$h.'border-color:'.$txCol.'; background-color:'.$bgCol.'; color:'.$txCol.'; azimuth:center;  width:'.$w.';" type="password" name="'.$name.'" id="'.$name.'" '.$r.' '.$jav.'>';
            echo 
        $cssTemp;
            
        }
        /*Textarea
        Aufruf
        textarea('name',breiteinpixeln,hoeheinpixeln,[optional der Wert. Wird automatisch ausgefüllt wenn keine Angabe]);*/
        function textarea($name=NULL,$size=45,$col=15,$val=''){
            
            if(
        $fontsize){$zus=$fontsize;}else{$zus='';}
            if(!empty(
        $val)){$r=$val;}else{$r=$_POST[$name];}
            
        $cssTemp='<textarea  id="'.$name.'" name="'.$name.'" style="border:1px solid; border-radius:5px; border-color:'.$txCol.'; background-color:'.$bgCol.'; color:'.$txCol.'; azimuth:center; width:'.$size.'px; height:'.$col.'px; '.$zus.' overflow:auto; font-family:Arial;  " type="text" >'.$r.'</textarea>';
            echo 
        $cssTemp;
            

        Musst eben CSS technisch an deine Bedürfnisse anpassen.

        Der Code ist nicht mehr modern. Läuft aber noch überall. Ansonsten siehst du ja die Idee dahinter

        Kommentar


        • #5
          Hinweise:

          Die original mysql-Erweiterung ist veraltet (mysql_*-Funktionen) und wird in den kommenden Versionen aus PHP entfernt. Aktuell wirft sie schon E_DEPRECATED-Fehler bei einer Verbindung zur Datenbank. Des Weiteren stehen dir sehr viele tolle Features von mysql mit diesen Funktionen nicht zur Verfügung! Weiterführende Links:
          Choosing an API
          Warum man mysql* generell nicht (mehr) nutzen sollte.
          Wie man von mysql* auf PDO umsteigt
          Wissenswertes zum Thema SQL-Injection

          Der schließende Tag eines PHP-Blocks am Ende einer Datei ist optional. In einigen Fällen ist das Weglassen hilfreich:
          • Es können ungewollte Whitespaces am Ende einer Datei auftreten, durch die ein späteres setzen von headern be-/verhindert werden kann.
          • Außerdem verhindert dies, dass beim Output Buffering Whitespaces am Ende eines durch die eingebundenen Dateien erzeugten Parts.
          • Im PSR Standard (PSR-2) ist ?> sogar ausdrücklich verboten, wenn in einer Datei ausschliesslich PHP verwendet wird (2.2 Files).


          PHP und HTML sollten nicht in der Art vermischt werden, wie du es machst.
          Standards - Best Practices - AwesomePHP - Guideline für WebApps

          Kommentar

          Lädt...
          X