Mam bramkę do wysyłania wiadomości, problem w tym że bez automatycznego przeładowania użytkowink dostaje strone z podziękowaniem za wysłanie maila i tyle. Jeśli ją odświeży to do ja dostanę kolejnego maila i tak w kółko. Po wprowadzeniu automatycznego przeładowania znika mi natomiast komunikat dziękujący za wysłanie wiadomości.
Oto fragment kodu, bardzo proszę o pomoc co robię źle. Z góry dzięki za wasz czas.
elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) {
$message = "Tresc wiadomosci:\n$_POST[tresc]\nWyslal: $_POST[imie]\ne-mail: $_POST[email]";
$header = "From: $_POST[imie] <$_POST[email]>";
@mail("adres@gmail.com","Wiadomosc ze strony WWW","$message","$header")
or die('Nie udalo sie wyslac wiadomosci');
echo "Twoja wiadomość została wysłana poprawnie - odezwiemy się wkrótce.";
sleep(5);
@header("Location: http://adres oryginalnej strony");
}
Zrób przekierowanie na stronę bez tego czekania sleep(5).
Komunikat można zapisać w sesji i pokazać go po przekierowanie (header).
$_SESSION['komunikat'] = 'Twoja wiadomość została wysłana poprawnie - odezwiemy się wkrótce.';
@header("Location: http://adres oryginalnej strony z komunikatem");
Próbowałem sesjami i nie działa, swoją drogą na twojej stronie chyba też nie.
}
elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) {
$message = "Tresc wiadomosci:\n$_POST[tresc]\nWyslal: $_POST[imie]\ne-mail: $_POST[email]";
$header = "From: $_POST[imie] <$_POST[email]>";
@mail("email@gmail.com","Wiadomosc ze strony WWW","$message","$header")
or die('Nie udalo sie wyslac wiadomosci');
echo "Dzieki za wiadomosc - odzezwiemy sie wkrotce";
sleep(1);
@header("Location: http://strona na która chce przekierować");
}
Poczytalem o tym chwilę i wychodzi na to że już drugi raz $header nie mogę użyć aby zaraz po wysłaniu wiadomości przekierować użytkownika na inną stronę?? Prawda?