konto usunięte

Temat: wyszukiwarka - przekazywanie parametrów między stronami

Witam :) mam taki dylemat

jak najlepiej zrobić wyszukiwarkę i nie gubić kryteriów wyszukiwania między stronami z rezultatem? ukryte pola czy przypisanie $POST do $SESSION?

albo np w korzystając z Propela przy wysłaniu formy zserializować obiekt klasy Criteria i zapisać go do cookie?

Jaka metoda byłaby najlepsza do rozbudowanej wyszukiwarki [szukanie max wg 25 opcji]
Paweł Lenk

Paweł Lenk informatyk,
programista,
bezpieczeństwo,PBX
Asterisk

Temat: wyszukiwarka - przekazywanie parametrów między stronami

Nie ma złotego rozwiązania. Zwłaszcza ze przeglądarka może mieć zablokowane ciacha.
Można ciastko jako identyfikator sesji, albo coś w ten deseń, a jak ma zablokowane ciacha, to w ukrytym polu. Tylko uważaj na „skażone” tego typu dane.
PS. Metodą POST, możesz słać i cłać... danych ile wlezie. ;)
Krzysztof Suszyński

Krzysztof Suszyński Chief Programmer
(Java & Puppet)

Temat: wyszukiwarka - przekazywanie parametrów między stronami

zależy jaka wyszukiwarka. jeżeli duża to tylko przekazywanie parametrów, bo inaczej zabiłbyś sesje. jeżeli mniejsza to spokojnie można użyć sesji co będzie prostsze. Przykazywanie zmiennych ma ta ważną zaletę ze tworzą się linki do konkretnych wyników wyszukiwań (ktoś może je wkleić w komunikatorze).

Możesz też zastosować hybryde (ważne parametry: query, page) przekazywać a inne przechowywać w sesji.
Marcin Lulek

Marcin Lulek Programista -
WebReactor

Temat: wyszukiwarka - przekazywanie parametrów między stronami

w mojej opinii to jest tak, jak user nie musi miec mozliwosci podania linku do wynikow wyszukiwania komus innemu to sesja jest ok (jesli nie przeladujesz), jesli nie to pozostaja parametry get

konto usunięte

Temat: wyszukiwarka - przekazywanie parametrów między stronami

hmm, tak policzyłem ile w moim przypadku może być danych, i wychodzi że jak użytkownik skorzystałby z większości pól to byłoby jakieś 50 liczb z przedziału <1,5> do tego z 10 krótkich stringów, to pewnie za dużo na trzymanie w sesji. W GET raczej nie ma potrzeby.
a odnośnie cookie i serializacji obiektu Criteria lub tablicy $POST? Czy ktoś z Was robił tak czy lepiej tak nie robić?
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

Temat: wyszukiwarka - przekazywanie parametrów między stronami

dlaczego za dużo na trzymanie w sesji - przecież to mała ilość danych? Ja nie widzę innej możliwości np przy formularzach wielostronicowych (tylko proszę nic nie wspominać o ukrytych polach).
Marcin Lulek

Marcin Lulek Programista -
WebReactor

Temat: wyszukiwarka - przekazywanie parametrów między stronami

alan ma racje, albo sesja, albo jedziesz to przez dodanie zmiennych do url-a.

ja tam tez nie widze problemu z danymy sesyjnymi , przeciez nie trzymasz tego w kuki
Paweł Lenk

Paweł Lenk informatyk,
programista,
bezpieczeństwo,PBX
Asterisk

Temat: wyszukiwarka - przekazywanie parametrów między stronami

Ukryte pola są cool. :D
Swoją drogą tyle danych dla sesji to waciki. Można bez problemó trzymać w sesji i głowy se nie zawracać jakimiś ukrytymi polami. Chyba że ma się userów tyle co google.com, ale to już inny temat. ;)
Krzysztof Suszyński

Krzysztof Suszyński Chief Programmer
(Java & Puppet)

Temat: wyszukiwarka - przekazywanie parametrów między stronami

trzymanie zmiennych w sesji to to samo co serializowanie ich. php serializuje tablice $_SESSION i zapisują ją w pliku na dysku (domyślnie). Aby osiągnąć lepszą wydajność można coś pokombinować z memcache'm.

Wszystko trzeba jednak przetestować, symulując żądany ruch (są do tego programy) i wybrać najlepsze rozwiązanie. na pierwszy rzut oka wydaje się że spokojnie możesz użyć sesji.

PS. Ukryte pola mogą być przecież generowane automatycznie. Jest to wydajniejsze niż trzymanie skomplikowanych (dużych ilości danych) w sesji.

konto usunięte

Temat: wyszukiwarka - przekazywanie parametrów między stronami

ja bym cykał GET'em.
Wojciech Sznapka

Wojciech Sznapka CTO @ STS Zakłady
Bukmacherskie

Temat: wyszukiwarka - przekazywanie parametrów między stronami

Krzysztof Suszyński:
zależy jaka wyszukiwarka. jeżeli duża to tylko przekazywanie parametrów, bo inaczej zabiłbyś sesje. jeżeli mniejsza to spokojnie można użyć sesji co będzie prostsze. Przykazywanie zmiennych ma ta ważną zaletę ze tworzą się linki do konkretnych wyników wyszukiwań (ktoś może je wkleić w komunikatorze).

Co masz na myśli "zabić sesję"?

Nie wiem czy przekazywanie linków w GET jest dobrym podejściem, ktoś może generować niepotrzebny ruch (spidery, spamboty), a przeważnie wyszukiwarka ma dość spore zapotrzebowania na zasoby.
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

Temat: wyszukiwarka - przekazywanie parametrów między stronami

Krzysztof Suszyński:
PS. Ukryte pola mogą być przecież generowane automatycznie. Jest to wydajniejsze niż trzymanie skomplikowanych (dużych ilości danych) w sesji.

Zależy jak na to patrzysz - ja wolę walidować raz dany formularz - potem mam pewność, że to co mam w sesji jest poprawne. Przy wielostronicowych formularzach to jak ulał - przy zapamiętywaniu kryteriów w wyszukiwarce też ujdzie.
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

Temat: wyszukiwarka - przekazywanie parametrów między stronami

P.S. GET się sprawdza w nieskomplikowanych wyszukiwarkach - bo faktycznie możliwość przyklejenia linku i przekazania dalej to dobra rzecz.
Przy większych, hmmm, bym optował za zapisaniem wyszukiwania na żądanie -> nadaniem identyfikatora -> wygenerowania linku.

konto usunięte

Temat: wyszukiwarka - przekazywanie parametrów między stronami

Możesz zakodować te dane basem i przekazać GETem :) Albo innymi postami, ciastkami itp. :)
Krzysztof P.

Krzysztof P. Programista, Team
Leader

Temat: wyszukiwarka - przekazywanie parametrów między stronami

Jak pokazuje Google, przy większym obciążeniu metodą przez "GET" jest najlepiej. I dla typowego wyszukiwania to jest najlepsza metoda.
Co innego wspomniane formularze krokowe, czy dane które muszą być na prawdę weryfikowane, wtedy ukrywa się przed użytkownikiem.

Do tego za GET jest właśnie sprawa możliwości przesłania komuś linka itp. akcje.

P.S. coś mi się przypomniało:
http://nospor.pl/news/show/id/26/
co prawda raczej ukierunkowany dla początkujących, ale...

konto usunięte

Temat: wyszukiwarka - przekazywanie parametrów między stronami

ok, jeśli w sesji to kiedy wyczyścić tą zmienną jeśli już nie korzysta z przeglądarki [mówię o zalogowanym użytkowniku]?
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

Temat: wyszukiwarka - przekazywanie parametrów między stronami

Trzeba pokombinować :) Zapisuj sobie w sesji dane ostatniego kontrolera/akcji. Jeżeli to była szukajka i kryteria w sesji istnieją to jest git. W przeciwnym razie, możesz je wymazać.

Sprawdź, czy oby GET jednak nie nada się lepiej u ciebie. Nikt tutaj jednoznacznie nie stwierdził, że sesja to jedyne i słuszne rozwiąnie.

konto usunięte

Temat: wyszukiwarka - przekazywanie parametrów między stronami

no pokombinować trzeba jeszcze bardziej, weźmy sytuację w której użytkownik przegląda na zmianę listę wyszukiwania i galerię, jeden klik w galerii i nie ma kryteriów wyszukiwania.

Co do GET'a w moim przypadku są to takie dane że nie widzę najmniejszego sensu - no ale może jednak to przemyślę jak nie da się jakoś sprawnie czyścić sesji z tych danych
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

Temat: wyszukiwarka - przekazywanie parametrów między stronami

Hmmm, to może połączyć oba rozwiązania?
Np dane formularza sesji pod jakimś kluczem/identyfikatorem, który byłby dołączany do linku?

Nie ma tony zmiennych w URL a i zachowuje część elastyczności GETaAlan B. edytował(a) ten post dnia 03.09.08 o godzinie 20:01

konto usunięte

Temat: wyszukiwarka - przekazywanie parametrów między stronami

jest trochę możliwości - ale mnie po sesji jakoś COOKIE interesuje. Jak zapisałbym w nim zserializowany obiekt Criteria noie trzeba by było przy każdej stronie budować zapytania - ustawić żywotność ciastka na 15 minut i powinno być ok.



Wyślij zaproszenie do