Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]Wysyłanie metodą POST i odświeżanie strony., Ominięcie informacji o przesłaniu danych
Adis92
post 14.11.2012, 00:31:14
Post #1





Grupa: Zarejestrowani
Postów: 146
Pomógł: 12
Dołączył: 9.01.2009
Skąd: Płock

Ostrzeżenie: (0%)
-----


Witam. Mam problem związany z wysyłaniem danych z formularza przy użyciu metody POST. Wszystko fajnie ale jeżeli po wysłaniu i odebraniu danych ktoś postanowi odświeżyć stronę wyświetla się okno wymuszające potwierdzenie przesłania danych. I tutaj jest moje pytanie jak zrobić aby to okienko się NIE pokazywało. Tak wiem o metodzie GET ale nie zawsze jest to odpowiednia metoda, a wiem że wiele profesjonalnych serwisów wysyła dane za pomocą metody POST i okno się nie wyświetla.
Go to the top of the page
+Quote Post
b4rt3kk
post 14.11.2012, 00:42:46
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Cały trick polega na tym by po pobraniu danych z POST nastąpiło przekierowanie.

  1. <?php
  2. if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  3. // pobranie oraz przetworzenie danych z $_POST, np. zapis do bazy
  4. // kiedy czynności zostaną wykonane może nastąpić przekierowanie
  5. header("Location: sukces.php");
  6. }
  7. ?>
  8. <form method="POST" action="">
  9. <input type="text" name="inp1" />
  10. <input type="submit" />
  11. </form>


oraz plik sukces.php:

  1. echo 'Dziękujemy za wypełnienie formularza. Możesz go sobie odświeżać do woli. :)';


Ten post edytował b4rt3kk 14.11.2012, 00:43:33


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
Adis92
post 14.11.2012, 01:09:23
Post #3





Grupa: Zarejestrowani
Postów: 146
Pomógł: 12
Dołączył: 9.01.2009
Skąd: Płock

Ostrzeżenie: (0%)
-----


Po małym dostosowaniu działa tak jak potrzebowałem. Dzięki

Edit.: Jednak jest mały problem. Zrobiłem to tak:
  1. if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  2. header("Location: ".$_SERVER['REQUEST_URI']);
  3. }

Problem polega na tym, że po odświeżeniu strony po wysłaniu formularza nie działa przycisk w przeglądarce powrót do poprzedniej strony.

Ten post edytował Adis92 14.11.2012, 01:17:58
Go to the top of the page
+Quote Post
b4rt3kk
post 14.11.2012, 11:31:25
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Tzn. jak nie działa? Po wciśnięciu wstecz powinno przenieść do strony sprzed przekierowania, bo inaczej to nie miałoby sensu.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
Adis92
post 18.11.2012, 21:42:12
Post #5





Grupa: Zarejestrowani
Postów: 146
Pomógł: 12
Dołączył: 9.01.2009
Skąd: Płock

Ostrzeżenie: (0%)
-----


Właśnie w przeglądarce chrome wywołanie tej funkcji blokuje przycisk wstecz w ie wszystko działa normalnie więc to może jest wina przeglądarki.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 11.05.2025 - 08:04