Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z serialize
Forum PHP.pl > Forum > PHP
zerdo
Mam problem z serialize i unserialize.
Kod
//obsluga tablicy z przydzielonymi pracownikami
if(!isset($przydz_prac))
{
    $przydz_prac = array();
}
else
{

    $przydz_prac = array();
$przydz_prac = $_GET['przydz_prac'];
$przydz_prac = unserialize($przydz_prac);

}
$i=count($przydz_prac);

//jesli dodaje jakiegos pracownika do zadania
Kod
if(isset($_POST['prac_d']))
{
$przydz_prac[$i][0]=@$_POST['l_pracownik'];
$przydz_prac[$i][1]=@$_POST['pr_n'];
$przydz_prac[$i][2]=@$_POST['pr_i'];
}

$przydz_prac=serialize($przydz_prac);


//teraz wyswietlanie przydzielonych pracownikow
Kod
reset($przydz_prac);
                
$i=0;
while(@$przydz_prac[$i] != null){
print "i: ".$i."przydz_prac[$i]".$przydz_prac[$i]."<br />";
$wysw=$przydz_prac[$i][0]." ".$przydz_prac[$i][1]." ".$przydz_prac[$i][2];
$d_pracownik=@$_POST['d_pracownik'];
$p=$przydz_prac[$i][0];
if($przydz_prac[$i][0] == $d_pracownik)
{
    print "<option selected=\"true\" value=\"$p\">$wysw</option>";
}
else
{
    print "<option value=\"$p\">$wysw</option>";
}
$i++;
}



Pozniej daje mi taki wynik:
Kod
Warning: reset(): Passed variable is not an array or object in c:\...
i: 0przydz_prac[0]a
i: 1przydz_prac[1]:
i: 2przydz_prac[2]1
i: 3przydz_prac[3]:
i: 4przydz_prac[4]{
i: 5przydz_prac[5]i
i: 6przydz_prac[6]:
i: 7przydz_prac[7]0
i: 8przydz_prac[8];
i: 9przydz_prac[9]a
i: 10przydz_prac[10]:
i: 11przydz_prac[11]3
i: 12przydz_prac[12]:
i: 13przydz_prac[13]{
i: 14przydz_prac[14]i
i: 15przydz_prac[15]:
i: 16przydz_prac[16]0
i: 17przydz_prac[17];
i: 18przydz_prac[18]s
i: 19przydz_prac[19]:
i: 20przydz_prac[20]1
i: 21przydz_prac[21]:
i: 22przydz_prac[22]"
i: 23przydz_prac[23]5
i: 24przydz_prac[24]"
i: 25przydz_prac[25];
i: 26przydz_prac[26]i
i: 27przydz_prac[27]:
i: 28przydz_prac[28]1
i: 29przydz_prac[29];
i: 30przydz_prac[30]N
i: 31przydz_prac[31];
i: 32przydz_prac[32]i
i: 33przydz_prac[33]:
i: 34przydz_prac[34]2
i: 35przydz_prac[35];
i: 36przydz_prac[36]N
i: 37przydz_prac[37];
i: 38przydz_prac[38]}
i: 39przydz_prac[39]}

Notice: Uninitialized string offset: 40 in c:\...


Nie stosowałem nigdy dotychczas serializacji
sf
Serializacje stosować by przenosić przez GET ? Tak się nie robi, użyj POST. Z wyniku widać jakby nie zrobił unserialize(), zresztą wysyłanie przez GET może wprowadzić encje... po prostu użyj POST, a jeśli z ciekawości chcesz zobaczyć co jest nie tak to polecam sprawdzić w linii gdzie robisz unserialize() czy mu się to udaje - zaczynając echo $_GET['przyd_prac'] i var_dump() po unserialize().
zerdo
A czy wiesz może dlaczego zamiast danych z tabeli wyswietla:

a:1:{i:0;s:1:
sf
Jak napisałem wyżej, najprawdopodobniej nie zadziałało unserialize (nie wywołałeś, albo jak pisałem z encjami coś nie tak)... zrób sobie echo serialize($tablica); i zobaczysz coś bardzo podobnego.
Cezar708
przy przesyłaniu getem jeszcze dorzuć urlencode() a po strnie skryptu odbierającego urldecode(), być może to pomoże
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.