Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Powrót po wysłaniu formularza +komunikat
Forum PHP.pl > Forum > PHP
Czadus
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
o co chodzi z komunikatem o POST DATA w FF - http://www.mozillapl.org/forum/about-14093.html
Ja stosuję przekierowania za pomocą header" title="Zobacz w manualu PHP" target="_manual przy obsłudze formularzy POST
Czadus
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.html
Ja 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
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
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
Masz przypięty temat, w którym jest wszystko opisane. Jedyne co musisz zrobić, po święcić kilkanaście minut na jego przejrzenie.
Zamykam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.