Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP Formular übernimmt Wert nicht in DB

Einklappen

Neue Werbung 2019

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

  • PHP Formular übernimmt Wert nicht in DB

    Hallo!
    Habe ein Formular erstellt.
    Damit sollen Werte in eine DB geschrieben werden.
    Warum wird dies nicht übernommen?
    Code:
    <td>
    <label>KW: " . $woche = date('W') . "</label>
      </td>
    Code:
    // Daten eintragen
      // Die Datenbanktabelle `Tabellenname` muss vor dem ersten Eintrag erstellt werden!
      $Kommando = $Verbindung->prepare("INSERT INTO `xxx`
       SET
    
        `datum` = :datum
       ");
        $Kommando->bindValue(":datum", $datum);
    Aber so wird es übernommen:
    Code:
    <tr>
      <td>
       <label for='Kalenderwoche'> Kalenderwoche:</label>
      </td>
      <td>
       <input type='text' name='kalenderwoche' id='Kalenderwoche' value='" . $kalenderwoche . "' size='5'>
      </td>
     </tr>
    Code:
    $Kommando = $Verbindung->prepare("INSERT INTO `xxx`
       SET
        
        `kalenderwoche` = :kalenderwoche
       ");
        
        $Kommando->bindValue(":kalenderwoche", $kalenderwoche);
    http://www.krassevideos.net
    http://www.mein-neues-iphone.de
    http://www.webkatalog.es

  • #2
    Fehlt da nicht ein execute?

    Ansonsten würde ich mal einige var_dumps empfehlen um die Relevanten Variablen auszulesen.
    [URL="http://php.net/manual/en/migration55.deprecated.php"]mysql ist veraltet[/URL] [URL="http://php-de.github.io/jumpto/mail-class/"]Mails senden: Ohne Probleme und ohne mail()[/URL]
    [PHP]echo 'PS: <b>Meine Antwort ist keine Lösung, sondern nur eine Hilfe zur Lösung.</b>';[/PHP]

    Kommentar


    • #3
      Man sieht weder die FORM noch das abholen und belegen von Variablen... mit dem Code ist jeder Tipp geraten.
      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

      Kommentar


      • #4
        Code:
        <input type='text' name='kalenderwoche' id='Kalenderwoche' value='" . $kalenderwoche . "' size='5'>
        bitte so:
        Code:
        <input type="text" name="kalenderwoche" id="Kalenderwoche" value="'. $kalenderwoche . '" size="5">
        Also " statt '

        Kommentar


        • #5
          Ob " oder ' ist völlig wurscht.
          Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

          Kommentar


          • #6
            Ja, Konventionen sind irrelevant. Ich persönlich mache das ja so: Bei jedem zweiten Attribut Gänsefüßchen und bei jedem dritten komplett ohne Zitatzeichen - aber natürlich nur wenn es zulässig ist. Selbstschließene Elemente schließe ich jedes 1,5. Mal, aber ob ich dabei auf- oder abrunde, bleibt mein Geheimnis. eLeMeNt/AtTrIbUtNaMeN sChReIbE iCh ImMeR mIt AlTeRnIeReNdEn GrOß-/KlEiNbUcHsTaBeN.

            Kommentar


            • #7
              Der Vergleich hinkt. Single Quotes sind erlaubt, ob du das jetzt gut findest oder nicht, aber es heißt der Fehler ist nicht dort zu suchen.

              Kommentar


              • #8
                Wurde auch nie anders dargestellt. Seite Syntax/Formatierung ist insgesamt schlecht, aber das hat mich am meisten gestört. Ich rate ihm im Sinne eines einheitlichen "Code"-Styles dazu, Anführungszeichen zu nutzen. Denn sollte er dann man an einer Applikation mit anderen zusammen arbeiten, wird man wahrscheinlich beschließen, nur Anführungszeichen zuzulassen - und dann müsste er sich nicht dann umgewöhnen, wenn es darauf ankommt, sondern könnte das schon vorher tun, solange es noch egal ist.

                Kommentar


                • #9
                  Zitat von monolith Beitrag anzeigen
                  Denn sollte er dann man an einer Applikation mit anderen zusammen arbeiten, wird man wahrscheinlich beschließen, nur Anführungszeichen zuzulassen
                  Und was ist wenn man sich auf Single-Quote einigt? Sorry, aber deine Argumentation basiert auf Vermutungen, und das hilft niemanden weiter.
                  Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

                  Kommentar


                  • #10
                    Meine Argumentation basiert auf der Tatsache, dass Anführungszeichen dominieren. Somit ist dein Beispiel weniger wahrscheinlich.

                    Kommentar


                    • #11
                      Zitat von monolith Beitrag anzeigen
                      Meine Argumentation basiert auf der Tatsache, dass Anführungszeichen dominieren.
                      Bei dir vielleicht, aber das ist eine subjektive Betrachtungsweise. Und woher hast du diese Weisheit?
                      Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

                      Kommentar


                      • #12
                        ok ist ja schön wenn man sich wegen " oder ' aufregt. Geht aber an meiner Frage vorbei.

                        @ChrisvA: Was meinst Du mit EXECUTE?

                        @lstegelitz:

                        Hier mal das Formular:
                        Code:
                        // Weiterleitung - Nach dem absenden des Formulars,
                        // gelangt der Benutzer über einen Link auf folgende Seite:
                        $Weiterleitung = "..formular.php";
                        
                        // Floodsperre - Innerhalb der Zeitspanne kann das Formular
                        // vom selben Benutzer nicht mehrmals gesendet werden.
                        $Floodsperrzeit = 60; // Sperrzeit in Sekunden
                        
                        // Datei in der die IP und die Zeit gespeichert werden sollen.
                        $Flooddatei = "floodsperre.txt"; // Die Datei benötigt Schreibrechte!
                        // Herunterladen: http://www.webbausteine.de/blog/tools/generator/kfg_fileload.php?datei=floodsperre.txt
                        
                        $maschinenbezeichung = isset($_POST["maschinenbezeichung"]) ? $_POST["maschinenbezeichung"] : ""; // Maschinenbezeichung
                        
                        // Auswahlliste: Maschinenbezeichung
                        $array = array(
                        "", "Giddings & Lewis", "Hermle", "Reiden BF1", "DMU 60T", 
                        "Sigma Zenit 3P", "Gildemeister CTX 500", "Voumard 200", "Studer S30", "Mägerle F120", 
                        "Geibel & Hotz", "NBH 350/1", "NBH 350/2", "NBH 350/3", "NBH 290", 
                        "NBH 95", "Mägerle MFP220", "NBH 170", "Böhringer VDF 250", "Gildemeister CTX 600", 
                        "Index G400", "Voumard 400", "Studer S40", "Böhringer Dus 800", "Jung 30A--70137", 
                        "Jung 30A", "Kugel-Müller", "Voumard 360", "DUS 560", "Waschmaschine", );
                        $maschinenbezeichungAW = "<select name='maschinenbezeichung' size='1' required='required'>";
                        foreach ($array as $value) {
                         $maschinenbezeichungAW .= "\n  <option value='" . $value . "'" .
                         ((isset($_POST["maschinenbezeichung"]) ? $_POST["maschinenbezeichung"] : "") == $value ?
                         " selected='selected'" : "") . ">" . $value . "</option>";
                        }
                        $maschinenbezeichungAW .= "\n </select>";
                        
                        $istkonzentration_kss = isset($_POST["istkonzentration_kss"]) ? trim($_POST["istkonzentration_kss"]) : ""; // Ist-Konzentration KSS
                        $phwert_aktuell = isset($_POST["phwert_aktuell"]) ? trim($_POST["phwert_aktuell"]) : ""; // Ph-Wert aktuell
                        $nitritgehalt_aktuell = isset($_POST["nitritgehalt_aktuell"]) ? trim($_POST["nitritgehalt_aktuell"]) : ""; // Nitritgehalt aktuell
                        $temperatur = isset($_POST["temperatur"]) ? trim($_POST["temperatur"]) : ""; // Temperatur
                        
                        // Auswahlliste: Letzter KSS-Tausch (Tag)
                        // Bestimmte Tage auswählen z.B.: $Tage = array(10, 20, 30);
                        $Tage = range(1, 31); // Start, Ende
                        array_unshift($Tage, "");
                        $Tag5 = isset($_POST["Tag5"]) ? $_POST["Tag5"] : "";
                        $tagKal5 = "\n   <select name='Tag5' required='required'>";
                        foreach ($Tage as $value) {
                         $tagKal5 .= "\n    <option value='" . $value . "'" .
                         ((isset($_POST["Tag5"]) ? $_POST["Tag5"] : "") == $value ?
                         " selected='selected'" : "") . ">" . $value . "</option>";
                        }
                        $tagKal5 .= "\n   </select>\n  ";
                        
                        // Auswahlliste: Letzter KSS-Tausch (Monat)
                        // Bestimmte Monate auswählen z.B.: $Monate = array(3, 6, 9, 12);
                        $Monate = range(1, 12); // Start, Ende
                        array_unshift($Monate, "");
                        $Monat5 = isset($_POST["Monat5"]) ? $_POST["Monat5"] : "";
                        $monatKal5 = "\n   <select name='Monat5' required='required'>";
                        foreach ($Monate as $value) {
                         $monatKal5 .= "\n    <option value='" . $value . "'" .
                         ((isset($_POST["Monat5"]) ? $_POST["Monat5"] : "") == $value ?
                         " selected='selected'" : "") . ">" . $value . "</option>";
                        }
                        $monatKal5 .= "\n   </select>\n  ";
                        
                        // Auswahlliste: Letzter KSS-Tausch (Jahr) 
                        // Bestimmte Jahre auswählen z.B.: $Jahre = array(2014, 2015, 2016);
                        $Jahre = range(date("Y") -10, date("Y") +10); // Y = Aktuelles Jahr -+ 10 Jahre
                        array_unshift($Jahre, "");
                        $Jahr5 = isset($_POST["Jahr5"]) ? $_POST["Jahr5"] : "";
                        $jahrKal5 = "\n   <select name='Jahr5' required='required'>";
                        foreach ($Jahre as $value) {
                         $jahrKal5 .= "\n    <option value='" . $value . "'" .
                         ((isset($_POST["Jahr5"]) ? $_POST["Jahr5"] : "") == $value ?
                         " selected='selected'" : "") . ">" . $value . "</option>";
                        }
                        $jahrKal5 .= "\n   </select>\n  ";
                        $letzter_ksstausch = $Tag5 . "." . $Monat5 . "." . $Jahr5; // Datumsformat hier ggf. anpassen!
                        
                        $massnahmen = isset($_POST["massnahmen"]) ? trim($_POST["massnahmen"]) : ""; // Massnahmen
                        $pruefer = isset($_POST["pruefer"]) ? $_POST["pruefer"] : ""; // Prüfer
                        
                        // Auswahlliste: Prüfer
                        $array = array(
                        "xxxx", 
                        "yyyy", 
                        );
                        $prueferAW = "<select name='pruefer' size='1' required='required'>";
                        foreach ($array as $value) {
                         $prueferAW .= "\n  <option value='" . $value . "'" .
                         ((isset($_POST["pruefer"]) ? $_POST["pruefer"] : "") == $value ?
                         " selected='selected'" : "") . ">" . $value . "</option>";
                        }
                        $prueferAW .= "\n </select>";
                        
                        $kalenderwoche = isset($_POST["kalenderwoche"]) ? trim($_POST["kalenderwoche"]) : ""; // Kalenderwoche
                        
                        // Floodsperre - IP und Zeit überprüfen
                        if (file_exists($Flooddatei) && is_readable($Flooddatei)) {
                         foreach (file($Flooddatei) as $element) {
                          list($Ip, $Zeit) = explode("|", $element);
                          if ($Ip == $_SERVER["REMOTE_ADDR"]) {
                           if ((floor((time() - $Zeit))) < $Floodsperrzeit) {
                            // Meldung und Link ausgeben
                            exit("<p>Ihre Nachricht wurde bereits versandt!<br>" .
                            "<a href='" . $Weiterleitung . "'>Weiter</a></p>");
                           }
                          }
                         }
                        }
                        
                        // Benutzereingaben überprüfen
                        // Die Meldungen müssen eventuell angepasst werden.
                        $Fehler = array("maschinenbezeichung"=>"","istkonzentration_kss"=>"","phwert_aktuell"=>"","nitritgehalt_aktuell"=>"","temperatur"=>"",
                         "letzter_ksstausch"=>"","pruefer"=>"",);
                        if (isset($_POST["submit_x"])) {
                         $Fehler["maschinenbezeichung"] = $maschinenbezeichung == "" ? "Bitte wählen Sie einen Eintrag aus!" : "";
                         $Fehler["istkonzentration_kss"] = strlen($_POST["istkonzentration_kss"]) < 1 ? "Bitte füllen Sie dieses Feld aus!" : "";
                         $Fehler["phwert_aktuell"] = strlen($_POST["phwert_aktuell"]) < 1 ? "Bitte füllen Sie dieses Feld aus!" : "";
                         $Fehler["nitritgehalt_aktuell"] = strlen($_POST["nitritgehalt_aktuell"]) < 1 ? "Bitte füllen Sie dieses Feld aus!" : "";
                         $Fehler["temperatur"] = strlen($_POST["temperatur"]) < 1 ? "Bitte füllen Sie dieses Feld aus!" : "";
                         $Fehler["letzter_ksstausch"] = !checkdate($_POST["Monat5"], $_POST["Tag5"], $_POST["Jahr5"]) ? "Das Datum ist ungültig!" : "";
                         $Fehler["pruefer"] = $pruefer == "" ? "Bitte wählen Sie einen Eintrag aus!" : "";
                        }
                        
                        // Formular erstellen
                        $Formular = "
                        <form action='" . $_SERVER["SCRIPT_NAME"] . "' method='post'>
                        <table>
                        
                        <caption><h3>Überschrift</h3></caption>
                        
                         <tr>
                          <td colspan='2'>
                           <label> Maschinenbezeichung: 
                           " . $maschinenbezeichungAW . "
                           </label>
                           <span class='pflichtfeld'>✲<br> " . $Fehler["maschinenbezeichung"] . "</span>
                          </td>
                         </tr>
                        
                         <tr>
                          <td>
                           <label for='Istkonzentrationk'> Ist-Konzentration KSS:</label>
                          </td>
                          <td>
                           <input type='text' name='istkonzentration_kss' id='Istkonzentrationk' value='" . $istkonzentration_kss . "' size='5' required='required'>
                           <span class='pflichtfeld'>✲<br> " . $Fehler["istkonzentration_kss"] . "</span>
                          </td>
                         </tr>
                        
                         <tr>
                          <td>
                           <label for='Phwertaktuell'> Ph-Wert aktuell:</label>
                          </td>
                          <td>
                           <input type='text' name='phwert_aktuell' id='Phwertaktuell' value='" . $phwert_aktuell . "' size='5' required='required'>
                           <span class='pflichtfeld'>✲<br> " . $Fehler["phwert_aktuell"] . "</span>
                          </td>
                         </tr>
                        
                         <tr>
                          <td>
                           <label for='Nitritgehaltaktue'> Nitritgehalt aktuell:</label>
                          </td>
                          <td>
                           <input type='text' name='nitritgehalt_aktuell' id='Nitritgehaltaktue' value='" . $nitritgehalt_aktuell . "' size='5' required='required'>
                           <span class='pflichtfeld'>✲<br> " . $Fehler["nitritgehalt_aktuell"] . "</span>
                          </td>
                         </tr>
                        
                         <tr>
                          <td>
                           <label for='Temperatur'> Temperatur:</label>
                          </td>
                          <td>
                           <input type='text' name='temperatur' id='Temperatur' value='" . $temperatur . "' size='5' required='required'>
                           <span class='pflichtfeld'>✲<br> " . $Fehler["temperatur"] . "</span>
                          </td>
                         </tr>
                        
                         <tr>
                          <td colspan='2'>
                           Letzter KSS-Tausch: 
                           <br><label>Tag: " . $tagKal5 . "</label>
                           <label>Monat: " . $monatKal5 . "</label>
                           <label>Jahr: " . $jahrKal5 . "</label>
                           <span class='pflichtfeld'>✲<br> " . $Fehler["letzter_ksstausch"] . "</span>
                          </td>
                         </tr>
                        
                         <tr>
                          <td colspan='2'>
                           <label> Massnahmen: <br>
                           <textarea name='massnahmen' cols='40' rows='5'>" . $massnahmen . "</textarea>
                           </label>
                          </td>
                         </tr>
                        
                         <tr>
                          <td colspan='2'>
                           <label> Prüfer: 
                           " . $prueferAW . "
                           </label>
                           <span class='pflichtfeld'>✲<br> " . $Fehler["pruefer"] . "</span>
                          </td>
                         </tr>
                        
                         <tr>
                          <td>
                           <label for='Kalenderwoche'> Kalenderwoche:</label>
                          </td>
                          <td>
                           <input type='text' name='kalenderwoche' id='Kalenderwoche' value='" . $kalenderwoche . "' size='5'>
                          </td>
                         </tr>
                        
                         <tr>
                          <th colspan='2'>
                           <br>
                           <input type='image' src='vorschau.png' name='vorschau' title='Vorschau'> &nbsp;
                           <input type='image' src='absenden.png' name='submit' title='Formular speichern'>
                          </th>
                         </tr>
                        
                        </table>
                        
                        <p><small>Bitte alle mit <span class='pflichtfeld'>✲</span> markierten Felder ausfüllen.</small></p>
                        </form>
                        ";
                        
                        // Vorschau
                        if (isset($_POST["vorschau_y"])) {
                         echo "<h4>Vorschau</h4>
                         <blockquote>
                         <b>Maschinenbezeichung:</b> $maschinenbezeichung <br>
                         <b>Ist-Konzentration KSS:</b> $istkonzentration_kss <br>
                         <b>Ph-Wert aktuell:</b> $phwert_aktuell <br>
                         <b>Nitritgehalt aktuell:</b> $nitritgehalt_aktuell <br>
                         <b>Temperatur:</b> $temperatur <br>
                         <b>Letzter KSS-Tausch:</b> $letzter_ksstausch <br>
                         <b>Massnahmen:</b> <br>" . nl2br($massnahmen) . " <br>
                         <b>Prüfer:</b> $pruefer <br>
                         <b>Kalenderwoche:</b> $kalenderwoche
                         </blockquote>";
                        }
                        
                        // Formular abgesendet
                        if (isset($_POST["submit_x"])) {
                        
                         // Sind keine Benutzer-Eingabefehler vorhanden
                         if (implode("", $Fehler) == "") {
                        Hier die Datenbankeinträge:
                        Code:
                        // Daten in eine MySQL-Datenbank eintragen mit PDO (Vorschlag) - Bitte anpassen!
                        
                           // Datenbank-Host und Datenbank-Name
                          $Server = "xxxxxxxxxxxxxxxxxx";
                        
                        
                        
                          // Verbinden
                          $Verbindung = new PDO($Server, $Benutzer, $Passwort);
                        
                          // Daten eintragen
                          // Die Datenbanktabelle `Tabellenname` muss vor dem ersten Eintrag erstellt werden!
                          $Kommando = $Verbindung->prepare("INSERT INTO `xxx`
                           SET
                            `maschinenbezeichung` = :maschinenbezeichung, 
                            `istkonzentration_kss` = :istkonzentration_kss, 
                            `phwert_aktuell` = :phwert_aktuell, 
                            `nitritgehalt_aktuell` = :nitritgehalt_aktuell, 
                            `temperatur` = :temperatur, 
                            `letzter_ksstausch` = :letzter_ksstausch, 
                            `massnahmen` = :massnahmen, 
                            `pruefer` = :pruefer, 
                            `kalenderwoche` = :kalenderwoche
                           ");
                            $Kommando->bindValue(":maschinenbezeichung", $maschinenbezeichung);
                            $Kommando->bindValue(":istkonzentration_kss", $istkonzentration_kss);
                            $Kommando->bindValue(":phwert_aktuell", $phwert_aktuell);
                            $Kommando->bindValue(":nitritgehalt_aktuell", $nitritgehalt_aktuell);
                            $Kommando->bindValue(":temperatur", $temperatur);
                            $Kommando->bindValue(":letzter_ksstausch", $letzter_ksstausch);
                            $Kommando->bindValue(":massnahmen", $massnahmen);
                            $Kommando->bindValue(":pruefer", $pruefer);
                            $Kommando->bindValue(":kalenderwoche", $kalenderwoche);
                          if ($Kommando->execute()) {
                           echo "<p>Die Daten wurden eingetragen.</p>";
                          }
                          else {
                           echo "<p>Fehler beim eintragen der Daten!</p>";
                           //print_r($Verbindung->errorInfo());
                          }
                        http://www.krassevideos.net
                        http://www.mein-neues-iphone.de
                        http://www.webkatalog.es

                        Kommentar


                        • #13
                          Mit execute meinte ich das, was du außerhalb des uns gezeigten Skriptausschnittest drinnen hast, das $Kommando->execute().
                          [URL="http://php.net/manual/en/migration55.deprecated.php"]mysql ist veraltet[/URL] [URL="http://php-de.github.io/jumpto/mail-class/"]Mails senden: Ohne Probleme und ohne mail()[/URL]
                          [PHP]echo 'PS: <b>Meine Antwort ist keine Lösung, sondern nur eine Hilfe zur Lösung.</b>';[/PHP]

                          Kommentar


                          • #14
                            Setz das mal ganz an den Anfang des/der Scripts

                            PHP-Code:
                            error_reporting(E_ALL);
                            ini_set('display_errors'1); 
                            Und bei der PDO Verbindung versuch mal catch:

                            http://www.php.net/manual/de/pdo.error-handling.php

                            Kommentar


                            • #15
                              Ok, nun das ganz nochmal im Kontext des Ausgangsposts.
                              Zitat von tonkelz Beitrag anzeigen
                              Warum wird dies nicht übernommen?
                              Code:
                              <td>
                              <label>KW: " . $woche = date('W') . "</label>
                                </td>
                              Code:
                              // Daten eintragen
                                // Die Datenbanktabelle `Tabellenname` muss vor dem ersten Eintrag erstellt werden!
                                $Kommando = $Verbindung->prepare("INSERT INTO `xxx`
                                 SET
                              
                                  `datum` = :datum
                                 ");
                                  $Kommando->bindValue(":datum", $datum);
                              Ich finde die Bestandteile des Problemcodes nicht im zuletzt geposteten Code. Solange nicht zu erkennen ist, woher $datum kommt und welchen Inhalt es hat, kann man dir leider nicht helfen.
                              Was haben deine eigenen Debuggingbemühungen ergeben? Welchen Inhalt hat $datum zur Zeit des Aufrufs? Wie sieht das generierte SQL aus? Was sagt die Datenbank zum Query?
                              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                              Kommentar

                              Lädt...
                              X