Ankündigung

Einklappen
Keine Ankündigung bisher.

Umbrüche/Leerzeichen in der Datenbank?!?

Einklappen

Neue Werbung 2019

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

  • Umbrüche/Leerzeichen in der Datenbank?!?

    Hallo,

    wenn ich mit

    PHP-Code:
        $sql_befehl mysql_query ("INSERT INTO klient_perskassa (
                        KlientTillID,
                        KlientTillOp, 
                        KlientTillVal, 
                        KlientTillSubj, 
                        KlientTillComm, 
                        CreatUsr,  
                        CreatIPC 
                      ) 
                      VALUES 
                      (
                        '"
    .trim($_SESSION["KlientRefID"])."
                        ','"
    .trim(htmlspecialchars($_POST["wfkas_Operator"]))."
                        ','"
    .trim(htmlspecialchars($_POST["wfkas_Wert"]))."
                        ','"
    .trim(htmlspecialchars($_POST["wfkas_VerwZweck"]))."
                        ','"
    .trim(htmlspecialchars($_POST["wfkas_Coment"]))."    
                        ','"
    .trim($_SESSION["UsrName"])."
                        ','"
    .($_SERVER['REMOTE_ADDR'])."')"); 
    Werte in meine DB schreiben will, wird danach immer in ein Zeilenumbruch, bzw. in einer 2. Zeile sehr viele Leerzeichen (also in der SQL-Datenzelle selbst) eingesetzt. Was mache ich flasch? Finde im PHP Manuel keine weiteren Ansatz mehr.

    Besten Dank schon mal.


  • #2
    Dann solltest du das schließende Singlequote gleich nach der Variable setzen, nicht erst eine Zeile und 20 Leerzeichen später.

    http://www.php.de/php-einsteiger/489...rundlagen.html
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      Hi, vielen Dank für Deine Hilfe, gut zu wissen, wo der Fehler liegt. Hatte mich bei meinem Insert-Befehl an folgenden Tipp orientiert:

      http://www.php-kurs.com/mysql-querys...-schreiben.htm

      Weiss aber jetzt wirklich noch nicht so ganz genau wo bei mir der Fehler liegt. Schriebe ich die Insert-Anweisung in eine Zeile ist alles i.O. Warum? Danke nochmals für Deine Hilfe!!!!!

      Kommentar


      • #4
        Zitat von frenchchris Beitrag anzeigen
        Weiss aber jetzt wirklich noch nicht so ganz genau wo bei mir der Fehler liegt. Schriebe ich die Insert-Anweisung in eine Zeile ist alles i.O. Warum? Danke nochmals für Deine Hilfe!!!!!
        Sieh dir nochmal meinen vorherigen Beitrag an und schau dir in deinem Script an, wo das schließende Singlequote ist. Notfals guck dir mal an, wie die generierte Query aussieht.
        Zitat von nikosch
        Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

        Kommentar


        • #5
          Ich Depp, natürlich! Boah, jetzt komm ich mir aber sowas von ... naja vor Danke nochmals!!!

          Kommentar


          • #6
            Wenn ich gleich eine Empfehlung aussprechen darf: mit PDO und Prepared Statements hast du dieses Problem nicht mehr. Zudem verhinderst du mit extrem geringem Aufwand SQL Injection (was bei dir sehr kompliziert ist).

            Zudem empfehle ich nicht, htmspecchars auf Daten anzuwenden, die du speicherst. Du solltest Daten (m.M.n.) gefiltert, validiert und dann original speichern. Die Kodierung kannst du bei der Ausgabe anwenden.
            GitHub.com - ChrisAndChris - RowMapper und QueryBuilder für MySQL-Datenbanken

            Kommentar


            • #7
              Hi ChristianK,

              danke für Deinen Tipp. Ich habe es nun so umgebaut und hoffe das es richtig ist, funktionieren tut es auf jeden fall sehr gut.
              Ich habe mich da am PHP Manual orientiert:

              PHP-Code:
              $dbh = new PDO('mysql:host=localhost;dbname=test'$user$pass);


              $stmt $dbh->prepare("INSERT INTO klient_perskassa (KlientTillID, KlientTillOp, KlientTillVal, KlientTillSubj, KlientTillComm, CreatUsr, CreatIPC) VALUES (:RefID, :Opera, :Wert, :VerwZ, :Commaent, :Username, :IPAdr )");
                      
              $stmt->bindParam(':RefID'$_SESSION["KlientRefID"]);
                      
              $stmt->bindParam(':Opera'$_POST["wfkas_Operator"]);
                      
              $stmt->bindParam(':Wert'$_POST["wfkas_Wert"]);
                      
              $stmt->bindParam(':VerwZ'$_POST["wfkas_VerwZweck"]);
                      
              $stmt->bindParam(':Commaent'$_POST["wfkas_Coment"]);
                      
              $stmt->bindParam(':Username'$_SESSION["UsrName"]);        
                      
              $stmt->bindParam(':IPAdr'$_SERVER['REMOTE_ADDR']);    
                      
                      
                      
              // eine Zeile einfügen

                      
              $stmt->execute(); 

              Kommentar


              • #8
                Beim ->bindParam() musst du den Doppelpunkt nicht angeben, das würde auch ohne funktionieren.

                Ansonsten sieht das sehr gut aus.
                GitHub.com - ChrisAndChris - RowMapper und QueryBuilder für MySQL-Datenbanken

                Kommentar

                Lädt...
                X