Problem mit unserialize()
Markus
- php
Hallo,
ich habe in einem Formular Checkboxen eingebaut. Die Inhalte werden mittels serialize() in die Datenbank eingefügt:
Element1,Element2,Element3,...
Also jeweils mit Komma getrennt
Jetzt will ich, dass, wenn das Formular nochmals aufgerufen wird die vorher angeklickten Felder markiert sind.
Es erscheint diese Fehlermeldung:
unserialize() [function.unserialize]: Error at offset 0 of 44 bytes in
Aufgelöst habe ich die Felder mit:
$dsatz = mysql_fetch_assoc($res);
$inhalt = unserialize($dsatz['Elemente']);
Was mache ich Falsch ?
Hallo Markus,
Die Inhalte werden mittels serialize() in die Datenbank eingefügt:
Also jeweils mit Komma getrennt
Was mache ich Falsch ?
Kann es sein dass Du "serialize", "unserialize", "join" und "implode"
etwas durcheinander wirfst?
Schau im Zweifel nochmal in die Dokumentation.
Viele Grüße
Stefan
Ja, stimmt.
Aber das Problem habe ich trotzdem. Die daten werden so vor der Eingabe in die Datenabnk bearbeitet:
if (isset($_POST['Elemente'])) {
reset($_POST['Elemente']);
foreach ($_POST['Elemente'] as $k => $v){
$inhalt = implode(',', $_POST['Elemente']);}}
Ich nutze eigentlich nur die Codes aus meinen älteren Formularen. Und die funktionieren.
hi,
Ja, stimmt.
Aber das Problem habe ich trotzdem.
Wieso "trotzdem"?
Du hast es genau _weil_ deine Arbeitsschritte unsinnig sind, bzw. nicht zusammen passen.
Ich schlage vr, du schlägst jetzt die von Stefan genannten Funktionen noch mal im Manual nach, machst dich schlau, was sie jeweils bewirken - und wählst dann eine _sinnvolle_ Kombination.
gruß,
wahsaga
Nun, ich habe mich in der ersten Mail verschrieben. Okay
Angewendet habe ich die Kombination aus implode und unserialize schon in anderen Formularen. Die haben einwandfrei funktioniert.
Jetzt taucht diese Fehlermeldung auf und da weis ich nicht weiter.
hi,
Angewendet habe ich die Kombination aus implode und unserialize schon in anderen Formularen. Die haben einwandfrei funktioniert.
Das ändert nichts daran, dass diese Kombination absolut unsinnig ist.
Wenn sie "funktioniert" hat - kann das nur reiner Zufall gewesen sein.
Jetzt taucht diese Fehlermeldung auf und da weis ich nicht weiter.
Wähle jetzt bitte endlich eine _sinnvolle_ Kombination von Behandlung(en) _vor_ und _nach_ dem Speichern, die _zusammenpassen_.
Und höre _bitte_ auf, uns die Ohren vollzujammern, dass du "nicht mehr weiter weisst", und dass es doch mal funktioniert hat. Das interessiert absolut niemanden.
Dir wurde gesagt, dass du dich über die Funktionweise der einzelnen Funktionen informieren, und dir dann was sinnvolles ausdenken sollst - also mach das jetzt bitte.
gruß,
wahsaga