Czadus
15.07.2009, 06:02:03
Pisałem o tym w innym temacie, i albo mój post zniknął, albo nie mogę się go doszukać. Mam portal ogłoszeniowy. Wchodząc w wyszukiwarkę główną klikam wyszukaj, co przenosi mnie na listę znalezionych elementów. Klikam powrót w przeglądarce i jest wszystko ok. Ale gdybym będąc na liście znalezionych elementów kliknął szukaj na bocznej wyszukiwarce, to wyskakuje mi komunikat .np o treści: "Aby wyświetlić tę stronę, Firefox musi ponownie przesłać dane, które spowodują powtórzenie zadań wykonanych wcześniej (takich jak przeszukiwanie czy potwierdzenie zlecenia).". Co robię źle, albo w jaki sposób obejść tego typu problemy?? Jak takie rzeczy rozwiązywane są na portalach typu allegro?? Tam nie ma problemu z powrotami? Portal obecnie znajduje się pod adresem axte.promatek.pl. Wybierając np. moto->osobowe dostaję pierwszą główną wyszukiwarkę. W wynikach znajduje się druga boczna. Czasami wracając z podglądu ogłoszenia również można natrafić na ten komunikat. Jak sobie z nim poradzić?? Proszę o rady bo jest to dla mnie bardzo ważna rzecz. Jeżeli mam coś umieścić, to proszę o info w tej sprawie, co dokładnie. Jest tego sporo, dlatego wstrzymałem się chwilowo.
Czy na prawdę nikt nie ma żadnych pomysłów, rad lub sugestii??
Darti
15.07.2009, 07:50:13
o co chodzi z komunikatem o POST DATA w FF -
http://www.mozillapl.org/forum/about-14093.htmlJa stosuję przekierowania za pomocą
header" title="Zobacz w manualu PHP" target="_manual przy obsłudze formularzy POST
Czadus
15.07.2009, 12:12:21
Cytat(Darti @ 15.07.2009, 08:50:13 )

o co chodzi z komunikatem o POST DATA w FF -
http://www.mozillapl.org/forum/about-14093.htmlJa stosuję przekierowania za pomocą
header" title="Zobacz w manualu PHP" target="_manual przy obsłudze formularzy POST
a czy mógłbyś coś więcej?? jakiś krótki przykład?? Swoją stronę podałem w adresie wyżej, więc problem pewnie zauważyłeś.
Darti
15.07.2009, 15:30:36
ale to nie przedszkole ...
Teraz wysyłasz zmienne metodą POST na ten sam adres, na którym jest strona. Wysyłane są one wraz z nagłówkiem jako żadanie HTTP, FireFox w swojej "inteligencji" poznaje, że na ta stronę wysłałeś formularz POSTem i przy powrocie z nastepnej strony Cię ostrzega, że jeśli nie wyślesz ich ponownie to strona nie będzie wyglądać tak samo i prosi o potwierdzenie. Tyle teorii.
Ja robię tak, że żądanie odbieram tak jak Ty na docelowej stronie ale jej nie wyświetlam tylko zapisuję dane np do sesji albo do bazy i daje przekierowanie header() na ta samą stronę, ale już wtedy w nagłówku http nie ma formularza ani jego danych (nie martwię się, przed chwilą zapisałem je sobie w bazie).
Ma to kilka korzyści:
- nie wyswietla sie durny komunikat w FF
- mogę łatwo cache'owac zapytania lub wyniki
- mam historię wyszukiwań (np do celów autocomplete)
- zapamiętuję wartości pól formularza, dzięki czemu przycisk wstecz na stronie wpisuje je ponownie i user nie musi wybierać wszystkiego na nowo
p.s.
przy robieniu jakiegoś INSERT albo UPDATE na bazie nie grozi mi, że użytkownik przez F5 doda dwa razy to samo
Czadus
15.07.2009, 15:35:50
Nie chciałem kodu gotowe, raczej przykładu. Potestuję i sam zobaczę, jak to działać będzie. Na razie dzięki za pomoc. Gdyby coś, to jeszcze się odezwę.
batman
16.07.2009, 07:52:07
Masz
przypięty temat, w którym jest wszystko opisane. Jedyne co musisz zrobić, po święcić kilkanaście minut na jego przejrzenie.
Zamykam.