Texte einfügen

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

  • Texte einfügen

    Hallo alle zusammen,

    Wiedereinmal kurz vor dem Wochenende kam es gestern zu einem völligunsinnigen und für mich nicht nachvollziehbaren Problem in einem bestehenden KundenPropjekt.

    Kurze Erläuterung:

    Der Kunde kann über ein kleines System mit mehreren Personen gleichzeitig an einem Newsletter arbeiten. Die Chefetage kann diesen dann betrachten und auf Knopfdruck als HTML Mail erzeugen und an einen Verteiler senden lassen.

    Die Leuts, die die Texte dafür schreiben, schreiben diese in Word oder irgendwelchen anderen Tools und kopieren diese nun einfach in die Textfelder auf der Seite.

    Beim erzeugen der HTML Email, lese ich ja diese Daten dann wieder aus der DB aus und schreibe sie stück für stück in meine Variable, die den HTML Code beinhaltet. Ich könnte mir nun nur noch vorstellen, dass beim kopieren der Texte ( vorallem aber bei Anführungszeichen ), es da Probleme gibt beim zusammenstellen der Variable( Email ).

    Nun kommt der ach so witzite Fehler:
    Logge ich mich von mir aus auf dem Server ein und lasse den Newsletter an mich versenden, dann ist die versendete Mail absolut Fehlerfrei. Zusätzlich hab ich das von jemandem zweitem von außerhalb auch testen lassen... selbes Ergebnis.
    Lässt sich nun die Firma zum Test selbst eine Mail zuschicken, so wird ein Fehler im Quellcode erzeugt und an irgendeiner "unbestimmten" Stelle im Code ist auf einmal ein kleiner Teil des Quellcodes zu sehen. Als Beispiel: aus
    PHP-Code:
    <font style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size: 11px; color: #333333'
    wird zB:
    PHP-Code:
    &ltfont style='font-family:Verdana, Arial, Helvetica, sans-serif; font-size: 11px; color: #333333'&gt
    Witziger weise nur an 1 Stelle und nicht bei allen Tags.
    Und witziger Weise auch NUR, wenn die Firma den Newsletter an sich schickt. Bei mir komt alles perfekt an und am System selbst wurde zwischendurch auch nichts verändert.

    Montag früh muss der Scheiß gehen und ich hab keine Möglichkeit irgendwas zu testen, da ich den Fehler nicht reproduzieren kann.
    Und zusätzlich: Gibts evtl. eine Möglichkeit sicherzustellen, dass die reinkopierten Texte von denen aus Word ausschließlich nur als Text mit maximal den Umbrüchen in der DB gespeichert wird?

    Mario

  • #2
    der Fehler sieht nach falsch angewendete htmlentities aus. wie hast du die Daten aus der DB in das fertige Produkt eingesetzt (Code)?

    Kommentar


    • #3
      [MSSQL] Zeichen

      Falls du meine Art und weiße meinst, wie ich die EMail erzeuge....

      Ich setze am ende die ganze Seite zB. so stück für Stück zusammen.

      PHP-Code:
      $email "";
      ...
      ...
      ...
      $email .= "<td>";
      $email .= "<font style='....'>";
      $email .= $data["blabla"];
      $email .= "</font>";
      $email .= "</td>";
      ...
      ...
      ... 
      Mir ist bisher noch keine bessere Möglichkeit eingefallen, wie ich die EMail selbst mit weniger AUfwand an das Design des dahinter stehenden Portals ( soll und hat den das selbe Aussehen wie die EMail ). Nur eben, dass ich auf dem Portal schön mit CSS arbeite und hier halt mit den HTML Tags arbeiten muss, da die EMail Programme das nicht alle mit dem CSS können.

      Mario

      Kommentar


      • #4
        und du hast nirgends htmlentities angewendet?

        Kommentar


        • #5
          ... so wird ein Fehler im Quellcode erzeugt und an irgendeiner "unbestimmten" Stelle im Code ist auf einmal ein kleiner Teil des Quellcodes zu sehen. ... Witziger weise nur an 1 Stelle und nicht bei allen Tags.
          solange du keine regelmäßigkeit herausfindest (und erst recht nicht reproduzieren kannst), kann man nur raten.

          Kommentar


          • #6
            Fehler

            @asp2php

            htmlentities setze ich bisher noch nirgends ein muss ich sagen...
            Was ich gestern noch auf gut Glück mal mit eingesetzt habe, war überall an den Stellen, wo ich etwas in die DB eintragen lasse an Texten, ein htmlspecialchars, in der Hoffnung, dass dies evtl. die Sache mit dem aus Word heraus kopieren und einfügen etwas unter Kontrolle zu bekommen.

            @penizillin

            Genau das ist mein Problem. Ich rate hier nur rum, da ich von mir aus keine Fehler entdecken kann und es entstehen auch keine, wenn ich den Newsletter erzeugen lasse und mir als EMail zukommen lasse.
            Ich würde es gern weiter eingrenzen aber ich weiß halt nicht wie.

            Mario

            Kommentar


            • #7
              lass dir so eine "word" vorlage mal zukommen.

              Kommentar


              • #8
                Fehler

                Leider ist es jetzt zu spät, da am Montag früh das ganze veröffentlicht werden soll. Sprich ich komm bis dahin nicht mehr an solche DOCs rann.

                Das einzige, wo ich mir allerdings sicher bin ist, dass es bestimmt irgendwas mit irgendwelchen Anführungszeichen zu tun hat.
                Seien es ' oder " oder `oder ´ oder „ oder “.....
                Das komische ist halt, dass in den letzten 2 Newslettern, die die geschrieben hatten, auch irgendwelche dieser Anführungszeichen drin waren und es zu keinem Fehler dieser Art kam.

                Ich werd wohl aber wirklich nochmal an allen DB INSERTS oder UPDATES dieses htmlentities einsetzen und dann deren kompletten Newsletter nochmal komplett neu anlegen und hoffen, dass dann am Montag früh alles funktioniert.

                Mario

                PS: ist immer schlimm, wie schnell ein anfangs ( für mich persönlich ) schön programmiertes Programm so schnell zur Bastelei wird. Würde am liebsten nochmal neu anfangen mit meinem jetzigen Wissen, was ich über die Monate hinzugewonnen habe... naja ist halt schon ne Weile her, als ich das System schrieb.

                Kommentar


                • #9
                  Fehler

                  Ich nochmal kurz:

                  Wäre es denn allgemein ratsam, wenn man einfach IMMER und überall, wo eventuelle User Texte oder dergleichen eintragen können, dieses

                  PHP-Code:
                  htmlentities($strENT_QUOTES); 
                  einsetzt oder gibts auch wieder Probleme oder Dinge, die man beachten sollte? Ich denke halt, dass die meisten Menschen einfach aus Word heraus kopieren und einfügen.

                  Mario

                  Kommentar


                  • #10
                    darauf gibt es keine pauschalantwort. in umgebungen, in denen konsequent mit utf-8 gearbeitet wird, ist soetwas meistens nicht nötig; aus word kopiertes wird normal gespeichert und ausgegeben, wenn auch die ganzen sonderzeichen keine ascii-symbole mehr sind.

                    Kommentar


                    • #11
                      Fehler

                      Ich hab gerade mal MyAdmin mit meinem eEintrag verglichen....

                      Wenn ich in mein Textfeld folgendes rein schreibe:

                      PHP-Code:
                      Dies ist ein Test mit " und ' 
                      ... dann wird aus meinem hochkomma ein kleines "quadrat"

                      Dies ist ein Test mit " und 


                      Was mach ich hier falsch?

                      Mario

                      Kommentar


                      • #12
                        die kodierung?

                        Kommentar


                        • #13
                          Kodierung

                          Ja ja... schon irgendwie die Kodierung...klar.

                          Ich probier hier schon alles mögliche aus.
                          Nach dem ich den Text mit Post zur SpeichernSeite gesendet habe, habe ich eben schon alles mögliche versucht um den Text in der richtigen Kodierung zu speichern. Leider ohne erfolg... ich weiß nicht, was PhpMyAdmin anders macht beim speichern als ich.

                          Habs mit

                          utf8_decode oder utf8_encode,
                          htmlentities($str, ENT_QUOTES);
                          und
                          htmlspecialchars

                          PHP-Code:
                          echo $_POST["kurztext"];
                          echo 
                          utf8_encode$_POST["kurztext"] );
                          echo 
                          utf8_decode$_POST["kurztext"] );
                          echo 
                          htmlentities($_POST["kurztext"], ENT_QUOTES); 
                          versucht. Aber es passiert überall das gleiche.
                          Die 4 Ausgaben hier habe ich mal vor dem UPDATE ausgeben lassen. Aber nichtmal dort taucht das ' auf.
                          In der DB wie auch bei der Ausgabe auf meiner Seite kommt dieses quadrat und nicht das Hochkomma. Füge ich über MyAdmin ein Hochkomma ein, dann ist dieses auch wieder in der Ausgabe zu sehen.

                          Ich weiß nicht mehr, was ich noch machen soll.

                          Mario

                          [EDIT]

                          Jetzt hab ichs mal mit htmlentities($str); versucht und siehe da... er speichert das Hochkomma nun ordentlich... genau wie auch die Ausgabe.
                          Zuletzt geändert von GELight; 25.03.2007, 17:29.

                          Kommentar

                          Lädt...
                          X