Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Czy mozna wyczyscic POST poprzez JS?
marcini82
post
Post #1





Grupa: Zarejestrowani
Postów: 190
Pomógł: 1
Dołączył: 20.05.2005
Skąd: Poznań

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


Witam!

Jest taka sytuacja:
strona1 - zawiera formularz z danymi POST --> strona2 - obsluga POST-a --> strona 3

I teraz jak na stronie 3 robie java script: history.go(-1) to przechodzi do poprzedniej, ale jednoczesnie przegladarka ostrzega, ze musi wyslac POST od nowa.
To do kitu bo akcja w php wywolywana przez POST wykonuje sie drugi raz.

Czy mozna w JavaScripcie jakos wyczyscic dane POST w przegladarce, zeby nie byly juz wysylane ponownie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
kszychu
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Było to niejednokrotnie poruszane na forum. Wpisz w wyszukiwarkę header i poszukaj sobie odpowiednich wątków.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
marcini82
post
Post #3





Grupa: Zarejestrowani
Postów: 190
Pomógł: 1
Dołączył: 20.05.2005
Skąd: Poznań

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


Hmm...
No szukam i znalezc nie moge. Moze to jest proste jak juz sie wie, co sie chce znalezc...
Go to the top of the page
+Quote Post
Radarek
post
Post #4





Grupa: Zarejestrowani
Postów: 188
Pomógł: 0
Dołączył: 23.05.2005

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


Schemat rozwiazania:
Masz 3 pliki: 1.php, 2.php, 3.php.

1.php -> generuje formularz i przekazuje dane do 2.php (form, action="2.php").
2.php -> analizuje i przetwarza dane a nastepnie wysyla nakaz przekierowania na plik 3.php (header("Location: 3.php"); exit(0)).
3.php -> jakis komunikat ze dane zostaly (lub nie) przetworzone.
Go to the top of the page
+Quote Post
marcini82
post
Post #5





Grupa: Zarejestrowani
Postów: 190
Pomógł: 1
Dołączył: 20.05.2005
Skąd: Poznań

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


Aha, o to chodzi. Dzieki biggrin.gif
Go to the top of the page
+Quote Post
eai
post
Post #6





Grupa: Zarejestrowani
Postów: 367
Pomógł: 10
Dołączył: 20.05.2005

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


Można to rozwiązać na 1 pliku php.

  1. <?php
  2. # Start sesji
  3.  
  4. # Jeśli formularz nie został wogóle wysłany
  5. if (empty($_POST) && empty($_SESSION['Form'])) {
  6. // wyświetlasz formularz
  7. } 
  8.  
  9. # Jeśli formularz został wysłany
  10. if (!empty($_POST) && empty($_SESSION['Form'])) {
  11.  
  12. # Przypisujemy zmiennej sesji dane z formularza
  13. $_SESSION['Form'] = $_POST;
  14.  
  15. # Wywołujemy jeszcze raz tę samą stronę
  16. header("Location: tensamplikphp.php");
  17. Die();
  18. } 
  19.  
  20. # Jeśli sesja zawiera elementy formularza
  21.  
  22. if (empty($_POST) && !empty($_SESSION['Form'])) {
  23. // Przetwarzasz dane $_SESSION['Form']
  24. // $_SESSION['Form'] to tablica zawierajaca element $_POST
  25.  
  26. #Kasujemy sesję
  27. unset($_SESSION['Form']);
  28. } 
  29.  
  30. ?>


A teraz przykład:
plik formularz.php

  1. <?php 
  2. // Start sesji
  3.  
  4.  
  5. // Jeśli formularz nie został wogóle wysłany
  6. if (empty($_POST) && empty($_SESSION['Form'])) {
  7.  
  8.  
  9. echo "
  10. <form method=\"POST\" action=\"formularz.php\">
  11. <input type=\"text\" name=\"pole\" size=\"20\">
  12. <input type=\"submit\" value=\"OK\" name=\"submit\">
  13. </form>
  14.  
  15. ";
  16.  
  17. } 
  18.  
  19.  
  20.  
  21. // Jeśli formularz został wysłany
  22. if (!empty($_POST) && empty($_SESSION['Form'])) {
  23.  
  24. // Przypisujemy zmiennej sesji dane z formularza
  25. $_SESSION['Form'] = $_POST; 
  26.  
  27.  
  28. // Wywołujemy jeszcze raz tę samą stronę
  29. header("Location: formularz.php");
  30. Die();
  31. } 
  32.  
  33.  
  34.  
  35. // Jeśli sesja zawiera elementy formularza
  36. if (empty($_POST) && !empty($_SESSION['Form'])) {
  37. // Przetwarzasz dane $_SESSION['Form']
  38. // $_SESSION['Form'] to tablica zawierajaca element $_POST
  39.  
  40. echo "<pre>";
  41. print_r ($_SESSION['Form']);
  42. echo "</pre>"; 
  43.  
  44.  
  45. // Kasujemy sesję
  46. unset($_SESSION['Form']);
  47. } 
  48.  
  49. ?>


Ten post edytował eai.pl 17.02.2006, 18:42:31
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 Aktualny czas: 20.08.2025 - 21:50