Ankündigung

Einklappen
Keine Ankündigung bisher.

String wird abgeschnitten

Einklappen

Neue Werbung 2019

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

  • String wird abgeschnitten

    Hallo. Ich arbeite nun seit mehreren Tagen nur an einem einzigen Problem, das ich mir nciht erklären kann.

    Ich habe da ein Skript, mit dem ich ein Bild hochladen will und dann eine Email versenden will.

    Die Bilder werden hochgeladen, aber leider keine E-Mail versandt.
    Beim Debuggen muss ich feststellen, dass immer die ersten beiden Stellen eines Strings in der Ausgabe abgeschnitten werden.

    Beispielcode:

    PHP-Code:
    //code zum hochladen des bildes etc. ...

    $header 'From: admin@invalid.org' "\r\n" .
    'Reply-To: '.$vbulletin->GPC['email'] . "\r\n";

    echo 
    $header;
    die(); 
    Der Output ist immer:
    om: admin@invalid.org Reply-To: admin@invalid.org <viele kryptische Zeichen>
    Beitragsmoderation (Flor1an):
    Ich hab den Beitrag editiert und diese ganzen kryptischen Zeichen entfernt, irgendwie kommt das Forum damit nicht so ganz zurecht.

  • #2
    http://www.php.de/adventskalender-20...fverkehrs.html
    http://www.robo47.net/text/38-Mail-ist-tot-es-lebe-mail

    Kommentar


    • #3
      Ohne zusätzlichen Code, schwer zu sagen wo der Fehler liegt.
      Aber wie Wolla geschrieben hat, solltest du auf ein bereits etabliertes Emailmodul zurückgreifen.
      Emails versenden ist nicht so einfach mail(), da steckt ein bischen mehr dahinter...

      Kommentar


      • #4
        Nun, ich verwende die Mail-Klasse von VBulletin. mail() habe ich nur zum Debuggen verwendet. Ist auch nicht das Problem hier.
        Mich würde nur interessieren, wie es sein kann, dass beim Debuggen der Output verkrüppelt wird.

        Den ganzen Code will ich derzeit nicht posten. Mir ist da ein Fehler bei der Threaderstellung unterlaufen. Ich muss den Code erst auf Sicherheit prüfen bevor ich ihn hier posten kann.

        Kommentar


        • #5
          Zitat von chunky Beitrag anzeigen
          Beitragsmoderation (Flor1an):
          Ich hab den Beitrag editiert und diese ganzen kryptischen Zeichen entfernt, irgendwie kommt das Forum damit nicht so ganz zurecht.
          Jau, danke. Das habe ich auch gemerkt. Der hat nämlich den Rest meines Posts nach einem bestimmten Zeichen einfach abgeschnitten. Passt also zum Thema.

          Kommentar


          • #6
            das Problem ist wohl anderer Gestalt - wenn dein Code wirklich so aussieht, dann wird in header nix abgeschnitten - da gibts ja gar keinen Code, der ein substr macht - und es gibt meines wissens nach auch keine Strings , die mit - 2 Zeichen Länge initialisiert werden ...

            ist also eher ein Problem der Ausgabe (vielleicht ein negatives Margin oder padding)....

            versuch es mal so
            PHP-Code:
            echo '&nbsp;&nbsp;'.$header.'<br>'
            Edit das mit den Margins kann durchaus an vbulletin liegen

            Kommentar


            • #7
              Wow. Das ist ja seltsam. Das scheint wirklich ein Problem mit den Margins zu sein.
              Vor dem Echo wird jedoch nichts ausgegeben. Seltsam.

              Kommentar


              • #8
                Zitat von chunky Beitrag anzeigen
                Der hat nämlich den Rest meines Posts nach einem bestimmten Zeichen einfach abgeschnitten. Passt also zum Thema.
                Und lässt auf Probleme mit der verwendeten Zeichenkodierung, bzw. Inkonsistenzen diese betreffend, schließen.

                Wenn das Forum hier bestimmte Bytewerte nicht anzeigen mag, weil die in der verwendeten Kodierung keinen Sinn ergeben/nicht erlaubt sind - dann ist das vielleicht in deiner Applikation ähnlich.

                Kommentar


                • #9
                  Es stellte sich gerade heraus, dass VBulletins Email Optionen bei mir falsch konfiguriert waren.
                  Das Skript versendet jetzt wieder Emails und funktioniert.

                  Den seltsamen Output kann ich mir trotzdem nicht erklären.

                  Kommentar


                  • #10
                    Zitat von chunky Beitrag anzeigen
                    Es stellte sich gerade heraus, dass VBulletins Email Optionen bei mir falsch konfiguriert waren.
                    Das Skript versendet jetzt wieder Emails und funktioniert.

                    Den seltsamen Output kann ich mir trotzdem nicht erklären.
                    Falsches Encoding eingestellt? Dann würden mich seltsame Zeichen nicht wundern

                    Kommentar


                    • #11
                      nun die divs und soweiter werden wohl hauptsächlich vom vbulletin schon vordefiniert - vielleicht brauchten die das negative margin um AnzeigeFehler zu beheben - und rechneten nicht mit dir, der du an dieser Stelle simplen Text mit echo ausgibst

                      Kommentar


                      • #12
                        Es ist doch kein negativer Margin. Ich bekomme das selbe Resultat auch an anderer Stelle. Und im Quelltext der Seite fehlen die ersten beiden Zeichen auch.

                        Ein simples var_dump($var);exit(); produziert immer etwa so etwas:
                        ray(1) { ["foo"]=> string(5) "bar" } < Zeichenmüll >
                        Kann das mit der Gzip-Kompression zusammenhängen?
                        Woher kommt der Zeichenmüll?

                        Kommentar


                        • #13
                          auch var_dump macht echo Ausgabe, die im aktuellen div angezeigt wird ..

                          wenn der mit negativem Margin arbeitet, fehlen wieder die 2 Zeichen vorne

                          also mit der Zeichenkodierung musst du trotzdem mal aufpassen -

                          allerdings ist die Ausgabe deines var_dump mit der schließenden geschweiften Klammer beendet, und danach steht bei dir ein exit() ...

                          prüfen kannst du das, indem du halt zwischen var_dump und exit noch einfache Zeichen mit echo ausgibst -

                          PHP-Code:
                          var_dump($var);echo" | ";exit(); 
                          jetzt wäre interessant, ob der Zeichenmüll VOR dem | oder halt dahinter kommt - und ich bin mir ziemlich sicher, dass der dahinter steht ....

                          Kommentar

                          Lädt...
                          X