![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 11 Dołączył: 17.12.2008 Skąd: LU Ostrzeżenie: (0%) ![]() ![]() |
witam
mam problem otoz, w sesji po zalogowaniu przechowuje id i jeszcze 3 inne dane a gdy w innym formularzu wprowadzam dane poprzez formularz i zapamietuje je w sesji to po przeladowaniu strony sie one kasuja, co moze byc zrobione nie tak? ;/ skoro jedne wartosci pamieta a drugich nie dodam że w pliku add1.php - wprowadzam dane w add2.php - sa one odbierane poprzez $_POST[], czy byc moze dlatego one sie zeruja po ponownym przeladowaniu dlatego ze nic nie jest odebrane poprzez POST?? Ten post edytował lnn 23.12.2009, 21:05:22 |
|
|
![]()
Post
#2
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Cytat w add2.php A masz session_start() na początku add2.php ? BTW, nic prócz unset() nie usunie Ci żadnych danych z sesji. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 11 Dołączył: 17.12.2008 Skąd: LU Ostrzeżenie: (0%) ![]() ![]() |
wiem juz w czym rzecz, jesli w pliku add2.php ktory wczesniej odbieral dane poprzez $_POST[] znajduja sie wlasnie te zmienne to po np wczytaniu samego add2.php ponownie sa one kasowane dlatego ze nie przekazuje sie nic w POST i wartosci sa zerowe
zrobilem eksperyment i wyslalem dane w formularzu bez akcji ale zeby zapamietywalo do sesji i odczytalem w add2.php i moge odswiezac i odswiezac i mi sie one nie kasuja.. czy koniecznie dane z formularza trzeba odbierac poprzez POST skoro inicjuje sesje?
Ten post edytował lnn 23.12.2009, 21:17:17 |
|
|
![]()
Post
#4
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
A po co w ogóle tak robisz, tzn. od razu bezpośrednio zapisujesz zmienne z POST do SESSION?
Sprawdzaj, czy wartości z $_POST nie są puste i/lub mają oczekiwane wartości i wtedy dopiero zapisuj je do sesji. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 11 Dołączył: 17.12.2008 Skąd: LU Ostrzeżenie: (0%) ![]() ![]() |
A po co w ogóle tak robisz, tzn. od razu bezpośrednio zapisujesz zmienne z POST do SESSION? Sprawdzaj, czy wartości z $_POST nie są puste i/lub mają oczekiwane wartości i wtedy dopiero zapisuj je do sesji. to teraz nie ma znaczenia czy sa puste czy nie, umiem zrobic walidacje... chodzi o to ze chce zrobic formularz dajmy na to 5 etapowy, kazdy etap ma byc zapamietywany w sesji by na samym koncu zapisac wszystko do bazy (chce uniknac zeby niepotrzebne dane nie byly zapisywane po drodze do db) czyli jedyny sposob na odebranie danych z formularza to $_POST, a ewentualne przeładowanie strony nie poprzez odswiez gdzie jest opcja zeby przeslalo jeszcze raz dane tylko przeladowanie poprzez wywolanie adresu skasuje te dane? -- edit -- moze zapodam lepiej zrodla, zeby zobrazowac problem, teraz gdy jest tak jak jest to dziala jakbym chcial add.php
add2.php ktore odbiera dane z sesji bez zmiennych z POST dane zachowuja sie
Ten post edytował lnn 23.12.2009, 23:14:42 |
|
|
![]()
Post
#6
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
To może inaczej.
Po każdym etapie zapisuj zserializowaną całą tablicę $_POST do osobnej zmiennej sesyjnej: itd. A na ostatniej stronie ładnie sobie te zmienne zamień z powrotem na tablice (unserialize). Pozwoli Ci to na ominięcie kilku problemów: - powtarzające się nazwy elementów formularzy w poszczególnych etapach i związane z tym nadpisywanie wartości - nie musisz w każdym etapie klepać kilka-kilkanaście razy $_SESSION['costam'] = $_POST['costam']; - jeśli user będzie chciał powrócić do któregoś z kroków wcześniejszych, wystarczy, że odserializujesz tablicę $_POST z odpowiedniej zmiennej sesyjnej. To pozwoli userowi na powrót i poprawienie danych praktycznie na każdym etapie (np. w 5-tym kroku zorientuje się, że źle podał numer telefonu w 2-gim kroku, to sobie do niego wróci i poprawi). |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 11 Dołączył: 17.12.2008 Skąd: LU Ostrzeżenie: (0%) ![]() ![]() |
zrobilem taka petle...
ok poproboje z zapisem do bazy jak cos to sie odezwe Ten post edytował lnn 23.12.2009, 22:16:57 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 11 Dołączył: 17.12.2008 Skąd: LU Ostrzeżenie: (0%) ![]() ![]() |
a przypadkiem session_destroy(); nie usuwa? usówa ale tego bym nawet nie wykorzystal bo by mi wylogowało usera (IMG:style_emoticons/default/tongue.gif) |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 575 Pomógł: 299 Dołączył: 26.03.2009 Ostrzeżenie: (20%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 11 Dołączył: 17.12.2008 Skąd: LU Ostrzeżenie: (0%) ![]() ![]() |
Czemu tak? tzn chcialem sobie wyswietlic czy pokazuje sie w takiej formie jak pozniej do wywolania przed zapisem do bazy (IMG:style_emoticons/default/tongue.gif) jasna sprawa ze bym to zmienil zeby nie bylo widac tego $_SESSION itd |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 13:56 |