Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Powtórne wysyłanie formularzy przy odświeżaniu strony
Forum PHP.pl > Forum > Przedszkole
plmorpheus
Jak w temacie - jak zablokować powtórne wysyłanie formularza przy odświeżaniu strony?
AxZx
po zrobieniu czegos z danymi z $_POST mozesz zrobic przekierowanie

  1. <?php
  2. header("Location: http://".$_SERVER['http_referrer']);
  3. ?>


sprawdz to:)
plmorpheus
A w którym miejscu się to wstawia dokładnie? Po prostu jestem bardzo początkujący w phpie i nie chciałbym uwalić jakiegoś byka a robienie metodą chybił-trafił mija się z celem.

Jakbym mógł prosić o pokazanie mi tego na przykładzie poniższego kodu, byłbym wdzięczny:

Kod
<?php
echo '<center><img src = "sevitel.jpg"><BR><BR><BR></center>';

// sprawdzamy, czy zmienne przesłane z formularza nie są puste
if (!empty($_POST['imie']) && !empty($_POST['nazwisko']) && !empty($_POST['kod']) && !empty($_POST['ulica']) && !empty($_POST['miasto']) && !empty($_POST['tel']) && !empty($_POST['mail'])) {
     //jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
     //zmienna $message zawiera treść wiadomości
    $message = "W naszym serwisie zarejestrował się nowy klient. Oto jego dane:\nImię:\n$_POST[imie]\nNazwisko: $_POST[nazwisko]\nUlica: $_POST[ulica]\nkod: $_POST[kod]\nMiasto: $_POST[miasto]\nTelefon: $_POST[tel]\nE-mail: $_POST[mail]\nNIP: $_POST[nip]";
     //zmienna $header zawiera przede wszystkim adres zwrotny
    $header = 'From: sklep@jakasfirma.pl', Location;
     //funkcja mail() za pomocą której wiadomość zostanie wysłana
    mail("sklep@jakasfirma.pl","Nowy Klient","$message", "$header")
    or die('Zgłoszenie zostało odrzucone');
     //wyświetlenie komunikatu w przypadku powodzenia
    echo "<div align=\"center\"><strong><center>Państwa zgłoszenie zostało przyjęte. Gdy proces rejestracji zostanie ukończony, zostaniecie Państwo o tym poinformowani e-mailem wysłanym na adres podany w formularzu.</center></strong></div>";





}
// lub w przypadku nie wypełnienia formularza do końca
else echo "<span style=\"color: #FF0000; text-align: center;\"><center><B>Proszę wypełnić wszystkie pola oznaczone gwiazdką - zgłoszenie odrzucone.</B></center></span>";

?>
AxZx
  1. <?php
  2. //wyświetlenie komunikatu w przypadku powodzenia 
  3. $_SESSION['komunikat'] = "<div align=\"center\"><strong><center>Państwa zgłoszenie zostało przyjęte. Gdy proces rejestracji zostanie ukończon
    y, zostaniecie Państwo o tym poinformowani e-mailem wysłanym na adres podany w formularzu.</center></strong></div>"
    ;
  4. header("Location: <a href=\"http://jakis.nowy.adres");&#092;" target=\"_blank\">http://jakis.nowy.adres");</a>
  5. ?>


a w miejscu jakis.nowy.adres sprawdzasz czy jest $_SESSION['komunikat'] i go wyswietlasz.


  1. <?php
  2. echo '<center><img src = "sevitel.jpg"><BR><BR><BR></center>';
  3. ?>

tego potwora usun, albo wstaw w przypadku bledu.
Siner
  1. <?php
  2. ...
  3.  mail("sklep@jakasfirma.pl","Nowy Klient","$message", "$header")
  4.  header("Location: http://".$_SERVER['http_referrer']);
  5. ...
  6. ?>


Zamiast http://$_SERVER['http_referrer']. Możesz wpisać http://adres_twojej strony.pl/for_przyjety.php, i tam wyświetlić podziękowania, ale jest jeszcze sprawa "echo '<center><img src = "sevitel.jpg"><BR><BR><BR></center>';" przed przekierowaniem nie można wysyłać żadnych nagłówków. Najlepiej poszukaj na forum wątek często wałkowany.
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.