Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z serialize
zerdo
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
sf
post
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.
Go to the top of the page
+Quote Post
zerdo
post
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:
Go to the top of the page
+Quote Post
sf
post
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.
Go to the top of the page
+Quote Post
Cezar708
post
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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 07:32