Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Witam
Sytuacja wygląda tak:
Mam formularz, zawiera jedno pole i kilka opcji (radio). Przekazuje do $_POST dwie zmienne: $_POST['tekst'] i $_POST['opcja']. Problem w tym, że formularz ten wyświetlany jest wielokrotnie. Chciałbym aby każdorazowo z formularza dodawały się do jakiejś tablicy powyżej wymienione zmienne. Taka tablica powinna zatem trwać pomiędzy wyświetleniami formularza co Submit dopisując zmienne. Niestety serialize w ciastkach i sesja jest w tym przypadku nieprzydatna. Jak długo superglobalna $_POST "trzyma" dane, bo bym sobie ponumerował zmienne ;)?
Z dziękczynno-błagalnym Help Please
Pzdrv
Ostatnio edytowany przez Zbooj (2009-11-30 21:54:08)
Offline
Wszystkie zmienne kończą swój żywot to wykonaniu skryptu... JS i sesje odpadają? Czemu... ale nieważne...
Czy to wygląda tak?
FORM A
FORM B
FORM C
Z czego użytkownik wysyła FORM A... Później FORM B, później FORM C. Jeśli tak to wygląda... lub jeśli nie to też... To zamiast tablicy wysłane wcześniej wartości umieszczaj jako domyślne w danym formularzy (value="Bodzio"). Jeśli formularz jest jeden na stronę... To zrób trzy, tylko ukryte (display:none) lub wkładaj dane w pola ukryte (type="hidden").
Jeśli mam mylną interpretację to zapodaj przykład online (lub kod).
Offline
Jest tylko jeden formularz i z niego chciałbym dopisywać do jakiejś "stałej" tablicy.
Offline
W czym problem? Zapis danych w pliku na serwerze? Nie napisane nigdzie, ale pewnie PHP. To Push i Pop: http://php.net/manual/en/function.array-push.php Wrzucać kolejno tablicę z danymi formularza.
Offline
zgadzam sie z przedmowca.
albo poprostu indeksujesz kolejny element tablicy.
jesli masz tablice powiedzmy
$FORM[0], $FORM[1] i zapodasz $FORM[2] to automatycznie w PHP powyzej (chyba )4.3.0 powiekszy Ci rozmiar tablicy.wiec jak nie bedzie to zapetlone to nawet push nie bedzie potrzebny.no chyba ze zamiescisz to w petli wtedy array_push doda ostatni element tablicy.
Offline
Ok, dzięki za inspiracje, udało się na ciastkach ale jest problem.
Jak wyświetlać zawartość ciastek z polskimi znakami?
Offline
Zapomnieliście, że w PHP są sesje? Odpowiedzi z każdego z formularzy można zapisać do sesji, najprościej chyba. Problemu z polskimi znakami chyba nie powinno być jeśli wyświetla się w tym samym kodowaniu co się zapisało.
Offline
Nie ma polskich krzaków :/ gdy zapisuje do ciastka.
Tekst "Polskie znaki żźćąśńłęó" wychodzi "Polskie znaki ¿¼æ±¶ñ³êó"
Ostatnio edytowany przez Zbooj (2009-12-01 14:55:56)
Offline
No i co zrobisz? Do kąta i w płacz? ;] Nie ma krzaków to złe kodowanie, dekoduj na prawidłowe. Albo zapisywanie ciach poprawić, albo lepiej uzyć sesji? Ciach nie używałem to nie wiem jakie mogą być problemy z kodowaniem, ale sesji używałem (bo łatwiejsze w użyciu) i wiem, że nie ma problemu z kodowaniem.
Offline
A czemu ciasteczka, które ktoś może mieć wyłączone a nie pola typu hidden? To rozwiązanie jest niezawodne raczej.
Brak polskich liter w ciasteczkach? Ciekawe myśl... W (x)HTMLu masz kodowanie ustawione?
PS. Ciasto zapisze się w takim kodowaniu jakim wyśle dane przeglądarka, która koduje według specyfikacji w (x)HTMLu. Chyba, że ciasto zapisujesz "ręcznie" w jakimś pliku, wtedy kodowaniem jest kodowanie pliku, np. *.PHP używasz UTF-8 ($ciasto="hałbał" i zapiszesz w nim ciastko na stałe to będzie UTF-8. Ten sam skrypt generuje plik z (x)HTML z kodowaniem ISO88... to przeglądarka tak to wyśle. Czyli ciasto zapisane w skrypcie (UTF) źle wyświetli się w przeglądarce (ISO). Ale to tak na marginesie (bardziej stopce?)
Offline
mozna ewentualnie zapisac to do pliku , a potem tekst rozbic explodem i zrobic tablice, w sumie troche lamerski sposob, ale powinno zadzialac.
ps.
cos Ty sie tak na te ciacha uparl ?
Offline
Problem ze krzaczkami rozwiązany. Kłopoty sprawiała funkcja htmlentities(), która zmieniłem na htmlspecialchars() i wszystko wrocilo do normy.
Za namową kamikaze, zmieniłem skrypt aby korzystał z sesji. Mam jednak mały problem tzn. w którym miejscu sesje włączyć (session_start()) a w którym wyłączyć (session_destroy()). Przejrzałem literature i nie doczytałem się nigdzie takiej informacji. Dodam, że jest to system z autoryzacją użytkowników, dwa DIVy statyczne i dwa dynamiczne (menu i treść główna). Menu i treść zmieniają się w zależności od stanu autoryzacji.
Offline
session_start() dajesz w każdym skrypcie, w którym chcesz kontynuować sesje. Sesja się zaczyna własciwie już gdy użytkownik wejdzie pierwszy raz na stronę, potem trzeba ją kontynuować. A skoro masz logowanie to chyba już korzystasz z sesji co? Sesja się kończy gdy użytkownik zamknie przeglądarke lub można ustawić czas wygaśniecia przy braku aktywności. session_destroy najlepiej robić przy wylogowaniu aby wyczyścić tablice $_SESSION, w której zwykle trzyma się informacje o tym czy użytkownik jest zalogowany. Ale nie tylko, można tej tablicy używać do przechowywania czegoklwiek związanego z trwającą sesją. Stan koszyka sklepowego itp. Mam wrażenie, że modyfikujesz nie swoją aplikacje racja?
Offline
Zrobiłem session_start() zaraz po ob_start() w głównym dokumencie, sesje przerywa Wylogowanie. Działa doskonale i na wszystkie podstrony.
Dzięki :)
P.S. kamikaze to moja mała aplikacja, służy ona do zbierania informacji magazynowej w firmie mojego ojca. Wcześniej chodzila na ciastkach i sprawdziła się, ale warunki się zmieniły tj. zwolniono dostawcę u developera z którym głównie współpracujemy i sami musimy sobie załatwiać materiał, a większa ilość towarów to większy bajzel więc ciastka nie wydalały. Trzeba było przerobić aplikacje pod kątem większej ilości przyjmowanych danych.
Ostatnio edytowany przez Zbooj (2009-12-02 11:41:50)
Offline
Strony: 1