Probleme bei Speicherung von serialize() Strings

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

  • Probleme bei Speicherung von serialize() Strings

    Guten Tag,

    ich bin gerade dabei ein Nachrichtensystem zu bauen und habe dabei einige Probleme. Ersteinmal zur Einleitung:

    jeder Account hat in meiner DB u.a. zwei Datensätze, message_im (Posteingang) und message_out (Postausgang).
    Dort speicher ich einen serialize()-String ab, welcher u.a. die Empfangszeit, Überschrift der Nachricht und die Nachricht selbst enthält.

    Nun zu den Problemen:

    1)
    Habe ich einen Text und serialisiere ich ihn, um hn in der DB abzuspeichern, entsteht z.B. folgendes Fragment:

    [...]i:1;s:9:"'~*´`\ß"[...]
    Der eigentiche text war also: '~*´`\ß

    Korrekterweise müsste er als textlänge 7 anzeigen, aber an diese 7 komme ich direkt nicht dran, die kann ich nicht ändern - Die generiert erautomatisch bei serialize().
    Wenn er also als textlänge 9 anzeigt, kann ich diesen String nicht unserialisieren. What to do?

    2)
    Ähnliche Probleme häufen sich:
    pro Zeilenumbruch ist die Textlänger immer um einen Zahlenwert zu klein.

    Wie kann man diese Probleme am besten lösen?

    Vielen Dank schonmal!

    MfG,
    Sören Jentzsch

  • #2
    Re: Probleme bei Speicherung von serialize() Strings

    Sorry, ich kann dein Problem nicht nachvollziehen.
    PHP-Code:
    echo unserialize(serialize("'~*´`\ß")); 
    gibt mir genau den eingegebenen String wieder raus - was ja auch zu erwarten war.

    Wenn das bei dir "nicht funzt" - dann stellst du also wohl noch irgendwas anderes mit den Daten an.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      hm ja sogesehen gehts bei mir auch.
      Ich glaub ich hab das (simple) problem jetzt endlich:
      Zeichen wie ' und " und \ werden komplett gelöscht, dann gehts (vorerst, ich hoffe das war das Problem -.-)
      er stellt einigen Sonderzeichen wie noch ein "\" vor, zählt dieses bei der Zahl mit (deswegen kommt ein höherer Wert raus).
      Unserialisieren kann ich allerdings nur, wenn er das "\" nicht mitzählt.
      Hab die drei Zeichen einfach mal komplett gefiltert...

      MfG,
      Sören

      Kommentar

      Lädt...
      X