![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 0 Dołączył: 1.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
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 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
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().
-------------------- Zapraszam na mój php blog, tworzenie stron.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 0 Dołączył: 1.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
A czy wiesz może dlaczego zamiast danych z tabeli wyswietla:
a:1:{i:0;s:1: |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
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.
-------------------- Zapraszam na mój php blog, tworzenie stron.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 116 Pomógł: 119 Dołączył: 10.05.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
przy przesyłaniu getem jeszcze dorzuć urlencode() a po strnie skryptu odbierającego urldecode(), być może to pomoże
Ten post edytował Cezar708 4.12.2007, 13:12:04 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 07:32 |