Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Serialize i Unserialize - dlaczego wynik jest pusty?!?!
Forum PHP.pl > Forum > PHP
rogrog
Opis
Mam formularz, który wysyła dane do skryptu.

Fragment skryptu odbierającego:

[php:1:e126f1f9d1]<?php
$line = unserialize(stripslashes($_POST[klient]));
print_r($line);
?>[/php:1:e126f1f9d1]

$_POST[klient] - jest to przesłana formularzem tablica, zserializowana

Fragment skryptu wysyłającego:

[php:1:e126f1f9d1]<?php
echo "<input type=hidden name=klient value="".htmlentities(serialize($line))."">";
?>[/php:1:e126f1f9d1]

Problem

w skrypcie odbierającym zmienna $line - wynik działania unserialize() jest pusty.

Debugowanie

Sprawdziłem:

zmienna $_POST[klient] zawiera łańcuch znaków, wyglądający na zserializowaną tablicę (zaczyna się od ); cudzysłowy są poprzedzone slashami

stripslashes($_POST[klient]) zawiera to samo co $_POST[klient] z tym że bez slashy

unserialize(stripslashes($_POST[klient])) jest puste. echo nic nie zwraca, tak samo print_r()

Podsumowanie

Nie wiem co może być nie tak.

Wszystko wskazuje na błąd gdzieś po stronie unserialize();

Proszę o pomoc



[manual:e126f1f9d1]serialize[/manual:e126f1f9d1] | [manual:e126f1f9d1]unserialize[/manual:e126f1f9d1] | [manual:e126f1f9d1]print_r[/manual:e126f1f9d1]
hawk
Na oko powinno być dobrze... może do rzeczy ma tutaj zawartość $line?

Możesz zapodać:
- zawartość pola "klient" w formualarzu (view source w przeglądarce)
- zawartość $_POST['klient']

Zastanawia mnie, że u mnie nie trzeba robić stripslashes, od razu jest jak trzeba, a cudzysłowów przecież po serializacji jest sporo...

BTW, powinno być
[php:1:45b0480c69]<?php
$line = unserialize(stripslashes($_POST['klient']));
?>[/php:1:45b0480c69]
ale to nie jest przyczyna problemu :?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.