bei manchen Abfragen (aus zwei Tab.) bekomme ich
einen unserialize-Fehler.
verschickt werden die Daten so:
$package3 = urlencode(base64_encode(serialize(@$arrvorher)));
echo "
hier mal die codierten Daten von einem "Probl."-Datensatz:
[teststring] =>
YToxOntzOjM6Im5ldSI7YToxOntpOjIzO2E6MTE6e3M6NToiZmxnZXIiO3M6 MjM6Ikdld%2FZobmxpY2hlcyBaaXR0ZXJncmFzIjtzOjc6ImdhdHR1bmciO3 M6NToiQnJpemEiO3M6MzoiYXJ0IjtzOjU6Im1lZGlhIjtzOjI6ImVyIjtzOj E6IkciO3M6Mjoibm8iO3M6MjoiMTMiO3M6Mjoib2siO3M6Mjoib24iO3M6Mj oidmkiO3M6MDoiIjtzOjM6Imt6bCI7czowOiIiO3M6Mjoic3IiO3M6MToiMS I7czoyOiJzdCI7czoxOiIwIjtzOjM6Ind1biI7czowOiIiO319fQ%3D%3D
und entpackt dann so:
$arrvorher = unserialize(base64_decode($teststring));
oder als Versuch auch so:
$arrvorher = unserialize(base64_decode(htmlentities($teststring)));
das ergibt dann bei manchen (o.g.) Ergbnissen diese
Notice: unserialize() failed at offset 74 of 266 bytes in ...
Ich sehe nicht, an welchen Zeichen das hier haken könnte.
Am Prozentzeichen sicher nicht.?
In den Ergebnissen gibts Umlaute, Backslashs, ... die aber
einzeln (aufgerufen - abgeschickt) keine Probleme machen.
Woran könnte das liegen?? (php 4.2.1)
Danke schon mal für Hilfen,
Grüße, Merle
Re: unserialize failed - Problem
am 25.09.2006 10:28:33 von Claus Reibenstein
Merle Mohr schrieb:
> bei manchen Abfragen (aus zwei Tab.) bekomme ich
> einen unserialize-Fehler.
>
> verschickt werden die Daten so:
> $package3 = urlencode(base64_encode(serialize(@$arrvorher)));
> echo "
Warum urlencode()? Das ist hier vollkommen überflüssig.
> und entpackt dann so:
> $arrvorher = unserialize(base64_decode($teststring));
Wenn Du urlencode() benutzt, musst Du hier natürlich auch urldecode()
benutzen.
Gruß. Claus
Re: unserialize failed - Problem
am 25.09.2006 10:46:52 von Ulf Kadner
Claus Reibenstein wrote:
> Warum urlencode()? Das ist hier vollkommen überflüssig.
Nein! urlencode ist notwendig da base64 nicht nur alphanumerische
Zeichen ausgeben kann. (z.B.: FA420==)
> Wenn Du urlencode() benutzt, musst Du hier natürlich auch urldecode()
> benutzen.
Nein, das macht PHP automatisch.
MfG, Ulf
Re: unserialize failed - Problem
am 25.09.2006 10:52:01 von Ulf Kadner
Ulf Kadner wrote:
> Nein! urlencode ist notwendig da base64 nicht nur alphanumerische
> Zeichen ausgeben kann. (z.B.: FA420==)
Hast natürlich recht. Wenns per post geschickt wird ists nicht nötigt.
Da fehlt och der Kaffee hier.
MfG, Ulf
Re: unserialize failed - Problem
am 25.09.2006 11:13:43 von Claus Reibenstein
Ulf Kadner schrieb:
> Claus Reibenstein wrote:
>
>> Wenn Du urlencode() benutzt, musst Du hier natürlich auch urldecode()
>> benutzen.
>
> Nein, das macht PHP automatisch.
Ergebnis
¯¯¯¯¯¯¯¯
a = 'FA420=='
b = 'FA420%3D%3D' (dekodiert: 'FA420==')
Gleiches Ergebnis mit method='post' und $_POST[].
Gruß. Claus
Re: unserialize failed - Problem
am 25.09.2006 11:29:49 von Claus Reibenstein
Ulf Kadner schrieb:
> Ulf Kadner wrote:
>
>> Nein! urlencode ist notwendig da base64 nicht nur alphanumerische
>> Zeichen ausgeben kann. (z.B.: FA420==)
>
> Hast natürlich recht. Wenns per post geschickt wird ists nicht nötigt.
Per get auch nicht.
> Da fehlt och der Kaffee hier.
Da bin ich schon etwas weiter :-)
Gruß. Claus
Re: unserialize failed - Problem
am 25.09.2006 12:00:44 von Ulf Kadner
Claus Reibenstein wrote:
> Ulf Kadner schrieb:
>>Da fehlt och der Kaffee hier.
>
> Da bin ich schon etwas weiter :-)
Ich normalerweise auch. Aber feuchte Geburtstagsfeiern dauern bei mir
immer noch den ganzen nächsten tag an ;-(
MfG, Ulf
Re: unserialize failed - Problem
am 25.09.2006 12:50:18 von Claus Reibenstein
Ulf Kadner schrieb:
> Claus Reibenstein wrote:
>
>> Ulf Kadner schrieb:
>>
>>> Da fehlt och der Kaffee hier.
>>
>> Da bin ich schon etwas weiter :-)
>
> Ich normalerweise auch. Aber feuchte Geburtstagsfeiern dauern bei mir
> immer noch den ganzen nächsten tag an ;-(
Du erwartest jetzt doch hoffentlich kein Mitleid *veg* ;-)
Gruß. Claus
Re: unserialize failed - Problem
am 25.09.2006 12:53:49 von Merle Mohr
Hallo Claus
> ...
>
> Warum urlencode()? Das ist hier vollkommen überflüssig.
au!! - danke, habe ich gepennt. das war noch von einer
_GET-url-sendeaktion kopiert ...
Grüße, Merle