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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2009-11-30 21:48:30

  Zbooj - Dark Sith

Zbooj
Dark Sith
Skąd: Siedziba Wszelkiego Zła
Zarejestrowany: 2005-07-28

Przekazywanie tablicy z dodawaniem do niej danych.

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

 

#2  2009-11-30 22:02:13

  NIC - Członek DUG

NIC
Członek DUG
Skąd: Wrocław
Zarejestrowany: 2006-12-25
Serwis

Re: Przekazywanie tablicy z dodawaniem do niej danych.

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).


Stronka-dom: http://titek.victorygames.pl
Jabber: nic@jabster.pl
Hobby: kompilowanie Linuksa, Bluetooth
Dystrybucja: żadna, bliski krewny LFS, składak

Offline

 

#3  2009-11-30 22:17:05

  Zbooj - Dark Sith

Zbooj
Dark Sith
Skąd: Siedziba Wszelkiego Zła
Zarejestrowany: 2005-07-28

Re: Przekazywanie tablicy z dodawaniem do niej danych.

Jest tylko jeden formularz i z niego chciałbym dopisywać do jakiejś "stałej" tablicy.

Offline

 

#4  2009-12-01 00:01:27

  NIC - Członek DUG

NIC
Członek DUG
Skąd: Wrocław
Zarejestrowany: 2006-12-25
Serwis

Re: Przekazywanie tablicy z dodawaniem do niej danych.

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.


Stronka-dom: http://titek.victorygames.pl
Jabber: nic@jabster.pl
Hobby: kompilowanie Linuksa, Bluetooth
Dystrybucja: żadna, bliski krewny LFS, składak

Offline

 

#5  2009-12-01 01:29:03

  janosik - Członek DUG

janosik
Członek DUG
Zarejestrowany: 2009-05-06

Re: Przekazywanie tablicy z dodawaniem do niej danych.

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

 

#6  2009-12-01 13:53:33

  Zbooj - Dark Sith

Zbooj
Dark Sith
Skąd: Siedziba Wszelkiego Zła
Zarejestrowany: 2005-07-28

Re: Przekazywanie tablicy z dodawaniem do niej danych.

Ok, dzięki za inspiracje, udało się na ciastkach ale jest problem.
Jak wyświetlać zawartość ciastek z polskimi znakami?

Offline

 

#7  2009-12-01 14:09:04

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Przekazywanie tablicy z dodawaniem do niej danych.

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

 

#8  2009-12-01 14:21:21

  Zbooj - Dark Sith

Zbooj
Dark Sith
Skąd: Siedziba Wszelkiego Zła
Zarejestrowany: 2005-07-28

Re: Przekazywanie tablicy z dodawaniem do niej danych.

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

 

#9  2009-12-01 14:52:08

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Przekazywanie tablicy z dodawaniem do niej danych.

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

 

#10  2009-12-01 18:58:05

  NIC - Członek DUG

NIC
Członek DUG
Skąd: Wrocław
Zarejestrowany: 2006-12-25
Serwis

Re: Przekazywanie tablicy z dodawaniem do niej danych.

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?)


Stronka-dom: http://titek.victorygames.pl
Jabber: nic@jabster.pl
Hobby: kompilowanie Linuksa, Bluetooth
Dystrybucja: żadna, bliski krewny LFS, składak

Offline

 

#11  2009-12-01 20:59:29

  janosik - Członek DUG

janosik
Członek DUG
Zarejestrowany: 2009-05-06

Re: Przekazywanie tablicy z dodawaniem do niej danych.

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

 

#12  2009-12-01 21:13:23

  Zbooj - Dark Sith

Zbooj
Dark Sith
Skąd: Siedziba Wszelkiego Zła
Zarejestrowany: 2005-07-28

Re: Przekazywanie tablicy z dodawaniem do niej danych.

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

 

#13  2009-12-02 08:09:01

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Przekazywanie tablicy z dodawaniem do niej danych.

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

 

#14  2009-12-02 11:40:32

  Zbooj - Dark Sith

Zbooj
Dark Sith
Skąd: Siedziba Wszelkiego Zła
Zarejestrowany: 2005-07-28

Re: Przekazywanie tablicy z dodawaniem do niej danych.

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

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)