Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]co zrobić żeby skrypt nie wysyłał emaila po odświeżaniu strony
Forum PHP.pl > Forum > Przedszkole
pawlo20
co tu zrobić żeby ten skrypt nie wysyłał emaila po odświeżaniu strony (bo chodzi oto że jak się wyśle wiadomość i się odświeża strone to wysyła puste wiadomości ) ?

  1. <?php
  2. $adres = "xxx@gmail.com";
  3. $temat = "FORMULARZ";
  4. $tresc = "Imie ".$_POST["imie"]." nazwisko: ".$_POST["nazwisko"]." email: ".$_POST["email"]." Wiadomość: ".$_POST["tresc"].".";
  5.  
  6. if(function_exists('mail') AND $_SERVER['REQUEST_METHOD'] == 'POST')
  7. {
  8. if(empty($_POST['imie']))
  9. {
  10. echo "<c>Wpisz imię</c>";
  11. }
  12. else if(empty($_POST['nazwisko']))
  13. {
  14. echo "<c>Wpisz nazwisko</c>";
  15. }
  16. else if(empty($_POST['email']))
  17. {
  18. echo "<c>Wpisz swój adres e-mail</c>";
  19. }
  20. else if(empty($_POST['tresc']))
  21. {
  22. echo "<c>Wpisz treść wiadomości</c>";
  23. }
  24. else
  25. {
  26.  
  27. mail($adres, $temat, $tresc);
  28. echo "<d>Formularz został wysłany Dzięki</d>";
  29. }
  30. }
  31.  
  32. ?>
lukasz_os
Po wysłaniu -wykonaniu funkcji mail() przekieruj za pomocą headers na stronę z komunikatem że wysłano email a nie wyświetl komunikat.
pawlo20
ale napis wysłano się poiawia pod formularzem to gdzie ma przekierowywać ?
!*!
  1. if(isset($_POST['send']))
  2. {
  3. unset($_POST) // jak nie robisz przekierowania po wysłaniu
  4. }
pawlo20
w które miejsce to zamontować ?
!*!
Na początku sprawdzaj, a usuwaj jak już wyślesz. I zabezpiecz to jakoś.
pawlo20
a możesz jakoś jaśniej , o co chodzi co zabezpieczyć ?
!*!
Nie sprawdzasz danych w żaden sposób które przychodzą. Czy istnieją, jaką mają długość, czy są stringiem, czy email to email itd. I z tego co pamiętam, nie ma czegoś takiego jak znacznik <c> i <d>
Crozin
http://en.wikipedia.org/wiki/Post/Redirect/Get - usunięcie/wyczyszczenie tablicy $_POST nie ma najmniejszego sensu.
pawlo20
walidację mam w js , a nie mógł byś mi to poprawić bo ja nie umiem .
!*!
Walidacja w JS to nie walidacja. Zrób to po stronie PHP. Przykładów masz dużo na forum.
pawlo20
to w js nie dobra walidacja ?, a czemu cie tak dziwią te znaczniki <c> <d> to przecież działa .
!*!
Walicacja w JS to tylko atrapa. Powstała tylko po to, aby nie wysyłać 20 razy zapytań do serwera w przypadku błędu. Działa po stronie klienta i czasami ładnie wygląda.
Cytat
a czemu cie tak dziwią te znaczniki <c> <d> to przecież działa .

Pokaż mi w dokumentacji gdzie w (x)html(5) są znaczniki <c> i <d> oraz za co odpowiadają. To że coś działa, nie znaczy że jest dobre.
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.