2009-09-28 19 views
7

Po kliknięciu w dowolną przeglądarkę tracę wszystkie dane, które zostały wprowadzone w formularzu zarówno przy opuszczaniu, jak i wprowadzaniu tekstu.Utrata danych formularza po kliknięciu przycisku Wstecz w przeglądarce

Czy to jest serwer, przeglądarka czy problem z kodem?

Dzięki

+0

w ASP.NET dane zostaną pobrane, więc domyślam się, że nie używasz ASP.NET? – Natrium

+0

Brak używania PHP i MySQL –

+0

Tak dzieje się również w przeglądarce Windows Phone. Próbujesz znaleźć rozwiązanie. –

Odpowiedz

9

To jest problem z przeglądarką. Przeglądarka zachowuje się inaczej po kliknięciu przycisku wstecz - zachowanie to zależy głównie od ustawień prywatności użytkownika. Ponadto większość przeglądarek automatycznie resetuje formularz po naciśnięciu przycisku Wstecz w przypadku stron oglądanych przez połączenie HTTPS, niezależnie od ich normalnego zachowania w przypadku połączeń HTTP. Ponadto wiele formularzy HTML, które w dużym stopniu opierają się na AJAX, nie przywraca prawidłowego - lub konsekwentnie - ich poprzedniego stanu.

Edit ----

Teraz można wymienić za pomocą PHP i MySQL, zakładając, że są również za pomocą sesje ... przeglądarka nie będzie wstępnie wypełnić formularz po trafieniu przycisk Wstecz. Strony z obsługą sesji PHP nie są buforowane w przeglądarkach, a naciśnięcie przycisku wstecz, aby powrócić do poprzedniej strony, przypomina otwarcie tej strony od samego początku - większość przeglądarek nie będzie zawracać sobie głowy odtwarzaniem wartości formularza.

+0

Zauważyłem, że Safari zachowuje dane, ale IE i FF nie. –

+0

Jeśli sesje są poprawne, nie ma możliwości obejścia tego problemu, dopóki przeglądarka nie przestanie pozwalać użytkownikowi na ponowne kliknięcie. –

+0

Czy korzystanie z sesji jest dla nas korzystne? –

1

Musisz utworzyć sticky forms dla przeglądarki, aby utrzymać formę danych, gdy oparcie jest wciśnięty. Jest to dość łatwe do zrobienia, sprawdź samouczki w wyszukiwaniu połączonym.

2

Dotyczy to PHP i IE8.

Nie tylko musisz ustawić buforowanie na prywatne, ale musisz usunąć 4 nagłówki cacheingu, co można zrobić tylko przy pomocy PHP 5.3.

W PHP 5.2 można ustawić tylko 4 nagłówki na wartości puste, jeśli użyto metody SetEeader (Zend Framework) (). Z jakiegoś powodu nie jest wystarczające na IE8, aby ustawić 4 wartości nagłówka na puste wartości. Oto kod dla PHP 5.3:

header_remove("Expires"); 
header_remove("Cache-Control"); 
header_remove("Pragma"); 
header_remove("Last-Modified"); 
Powiązane problemy