Ale×: merkwürdiger Eintrag mit leerem Betreff

Hallo,

ich habe in diesem Forum immer mal wieder einen Eintrag mit leerem Betreff, obwohl das eigentlich durch Prüfen mit empty() ausgeschlossen wird.

Hier ist so ein Eintrag mit leerem Betreff: http://mylittleforum.net/forum/index.php?id=3443. In der Datenbank ist der Betreff tatsächlich leer. Die vom Formular übergebende Werte sahen allerdings folgendermaßen aus (habe ich parallel serialisiert und gespeichert):

[POST] => Array
        (
            [back] => index
            [mode] => posting
            [id] => 0
            [uniqid] => 491951179ba9e
            [posting_mode] => 0
            [PHPSESSID] => c6b42225dfaef4899d9ddca8384b8b57
            [name] => AlinaGrand
            [email] => 32grand41@mail.ru
            [location] => Óêðàèíà
            [p_category] => 1
            [subject] => Êèòàéñêèå êàïñóëû äëÿ ïîõóäåíèÿ ËèÄà
            [text] =>  Çâîíèòå Ëèäà: 80671625489 ! Íàñ çíàþò â Óêðàèíå è â
áëèæíåì çàðóáåæüå! Åñëè ó Âàñ ïðîáëåìû ñ ëèøíèì âåñîì è íå íðàâèòñÿ ôèãóðà
Ëèäà,   - Âàì êàïñóëû. Max. 3 ìåñ. è, íåçàâèñèìî îò íà÷àëüíîãî ñîñòîÿíèÿ,
Âàøè ôèãóðà è âåñ  èäåàëüíû áåç âðåäà äëÿ çäîðîâüÿ. Ïîõóäåíèå îò 8 êã â ïåðâûé
ìåñÿö. Îò 150ãð!

[save_entry] => OK - Submit
        )

Es wurde also ein Betreff ("[subject]") und auch eine Nachricht ("[text]") übergeben. Seltsamerweise wurden diese "verschluckt" und nicht gespeichert. Die Werte werden vor dem Speichern mit mysql_real_escape_string() bearbeitet. Ich kann mir nicht erklären, was da passiert. Hat jemand eine Idee?

Ale×

  1. Ich halte 2 Dinge für möglich:

    • die unkodierten Sonderzeichen haben vielleicht zu dem Fehler in Deiner Datenbank geführt (Daten statt Ascii-String) und
    • der Text ist (evtl auch durch die Sonderzeichen) länger als im Datenbankfeld erlaubt (ggf. mit PHP kürzen)?

    Gruß, LX

    --
    X-Self-Code: sh:( fo:) ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: Unusual
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo LX,

      • die unkodierten Sonderzeichen haben vielleicht zu dem Fehler in Deiner Datenbank geführt

      Tja, irgend so etwas vermute ich auch, aber was genau kann das sein? Wenn ich die Werte kopiere, kann ich damit übrigens einen normalen Eintrag machen.

      Ale×

    2. echo $begrüßung;

      • die unkodierten Sonderzeichen haben vielleicht zu dem Fehler in Deiner Datenbank geführt (Daten statt Ascii-String)

      In einem üblichen Computer kommen zu keinem Zeitpunkt Zeichen in unkodierter Form vor. Das was in seiner Kontrollausgabe zu sehen war sind UTF-8-Zeichensequenzen, die als ISO-8859-1 interpretiert wurden. Richtig interpretiert ergeben sie einen Text in vorwiegend kyrillischen Zeichen über ein chinesisches Potenzmittel.

      • der Text ist (evtl auch durch die Sonderzeichen) länger als im Datenbankfeld erlaubt (ggf. mit PHP kürzen)?

      Dann würde er abgeschnitten werden, aber nicht auf Länge 0 gekürzt.

      echo "$verabschiedung $name";

  2. echo $begrüßung;

    Es wurde also ein Betreff ("[subject]") und auch eine Nachricht ("[text]") übergeben. Seltsamerweise wurden diese "verschluckt" und nicht gespeichert. Die Werte werden vor dem Speichern mit mysql_real_escape_string() bearbeitet. Ich kann mir nicht erklären, was da passiert. Hat jemand eine Idee?

    Nun, du hast ja Beispieldaten. Warum probierst du nicht anhand dieser und der üblichen PHP-Debugging-Mittel (z.B. Kontrollausgaben), was konkret passiert? Auch die Logfiles von MySQL (Query-Log) können vielleicht Hinweise geben.

    echo "$verabschiedung $name";