Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Formularz pamięta stan pól input, po wciśnięciu przycisku submit chciałbym żeby nie zapamiętywał
Rafalll1984
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 23.10.2009

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


Jestem nowy na forum i dopiero raczkuje w php. Mam taki problem jak w temacie, męczę się z tym już od paru dni i nie wiem jak to rozgryźć (IMG:style_emoticons/default/sciana.gif)

Przejdę może do konkretów, do zapisywania danych z formularza wykorzystałem skrypt z artkułu "Formularz i stronicowanie - pamiętanie stanu" nospora LINK

po przekształceniu pod siebie mam taki kod:


  1. <?php
  2.  
  3.  
  4. if (!empty($_POST['wyslij']) && $jakas_zmienna==1)
  5. {
  6.  
  7. $_SESSION['formularz'] = array(
  8. 'imieinazwisko' => $_POST['imieinazwisko'],
  9. 'email' => $_POST['email'],
  10. 'zgoda' => $_POST['zgoda'],
  11. 'wiadomosc' => $_POST['wiadomosc']);
  12.  
  13. $dane_z_form = array(
  14. 'imieinazwisko' => !isset($_SESSION['formularz']) ? null : $_SESSION['formularz']['imieinazwisko'],
  15. 'email' => !isset($_SESSION['formularz']) ? null : $_SESSION['formularz']['email'],
  16. 'zgoda' => !isset($_SESSION['formularz']) ? null : $_SESSION['formularz']['zgoda'],
  17. 'wiadomosc' => !isset($_SESSION['formularz']) ? null : $_SESSION['formularz']['wiadomosc'], );
  18.  
  19. }
  20.  
  21. $jakas_zmienna=1;
  22.  
  23. ?>
  24.  


...Formularz jest walidowany, a po przejściu walidacji prawidłowo dalsza część skryptu wysyła mail z serwera

  1.  
  2. mail($adresat, $temat, $dane, $odkogo );
  3. echo "<strong>Wiadomość została wysłana!</strong>";
  4.  
  5. $jakas_zmienna=0; // i tu właśnie chciałbym żeby ta zmienna przyjęła wartość 0 i odniosła się do początku pliku, gdzie mamy if (!empty($_POST['wyslij']) && $jakas_zmienna==1). Żeby nie został spełniony warunek


i tu właśnie chciałbym żeby ta zmienna przyjęła wartość 0 i odniosła się do początku pliku, gdzie mamy if (!empty($_POST['wyslij']) && $jakas_zmienna==1). Żeby nie został spełniony warunek!

Poproszę o jakieś sugestie jak to rozwiązać, z czego skorzystać i na czym się skupić. Może ktoś ma zupełnie jakiś inny pomysł na rozwiązanie problemu. Będę wdzięczny za jakąkolwiek pomoc.

Ten post edytował Rafalll1984 29.10.2009, 11:43:06
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Nie widziałem tego w wymienionym kodzie z linku, ale powinieneś to rozwiązać tak, że w momencie gdy formularz zostaje przetworzony bez błędów niszczysz sesję i tylko wtedy. Dzięki temu jeśli nastąpił błąd, to będzie ona istnieć. Tylko prawidłowe przetworzenie danych sprawi, że ulegną one zniszczeniu. Dlatego nospor dobrze Ci radzi, tyle że to Ty musisz już wiedzieć gdzie w Twoim przerobionym kodzie możesz sobie na unset pozwolić. A jak już mówiłem... Robisz to dopiero po prawidłowym przebiegu całej walidacji, wysłaniu do bazy czy co tam jeszcze chcesz zrobić (IMG:style_emoticons/default/smile.gif)

EDIT: Poza tym zwróć uwagę, że te dane przechowuje u Ciebie także zmienna $dane_z_form. Zobacz która z nich jest wpisywana jako value formularza w miejscu CO_TUTAJ w kodzie:
  1. <input type="text" value="CO_TUTAJ" />

I tę zmienna zniszcz poprzez unset po wysłaniu maila. Wtedy nie powinno nic wrzucić do pól.

Ten post edytował thek 29.10.2009, 13:25:30
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 15.10.2025 - 08:27