Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Przekierowanie po wyslaniu formularza - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Początkujący webmaster (https://www.webmastertalk.pl/forum-poczatkujacy-webmaster)
+--- Wątek: Przekierowanie po wyslaniu formularza (/thread-przekierowanie-po-wyslaniu-formularza)



Przekierowanie po wyslaniu formularza - marti - 22-09-2012

Czesc mam taki problem. Napisalem prosty skrypt wywylajacy formularz na maila:

Kod PHP:
<?php

$to       
'[email protected]';
$subject 'Mail ze strony:';
$message "Tresc wiadomosci:\n$_POST[message]\nImie i nazwisko: $_POST[name_surname]\ne-mail: $_POST[email]\nTelefon: $_POST[phone_number]\nAdres domowy: $_POST[address]";
$headers 'From: jakis adres' "\r\n" .
        
'Reply-To: jakis adresl' "\r\n" .
        
'X-Mailer: PHP/' phpversion();


if (
mail($to$subject$message$headers)){;
        echo 
'<p>Wiadomość została wysłana</p>' ;
}
else {  
                echo 
'<p>Wiadomość nie została wysłana;</p>';
        }
        
?>
po wyslaniu formularza chcialbym przekierowac usera na strone index.html...
Jak to sensownie ogarnąć?
Prawdopodobnie w moim przypadku header("Location: http://adres.strony"); odpada ponieważ w skrypcie jest komunikat i to wówczas nie zadziała.

Jakie są alternatywy które mogę tu zastosować?

p.s prosze o wyrozumialosc dopiero zaczynam programowac Smile


RE: Przekierowanie po wyslaniu formularza - camelrafal - 22-09-2012

aby po czasie przeniesc na inna strone mozesz skorzystac z javascript lub
Kod:
header( "refresh:5;url=index.php" );
5 oznacza 5sekund

ps masz zle ustawione $_post['cudzyslow']


RE: Przekierowanie po wyslaniu formularza - Kartofelek - 23-09-2012

Kod:
echo '<script type="text/javascript">setTimeout(function(){location.replace=".........";}, 5000);</script>';



RE: Przekierowanie po wyslaniu formularza - marti - 23-09-2012

Dziekuje za informacje. Mam jeszcze jedno pytanie: czy header( "refresh:5;url=index.php" ); powinien byc w pliku odpowiadającym za wysyłkę maila? czy w formularzu html? w formularzu raczej nie.
Czy header( "refresh:5;url=index.php" ); dziala na dowolny typ tzn moge dac
header( "refresh:5;url=index.html" );? Gdzie dokladnie w kodzie powinienem go umiescic?

Z tego co wyczytalem to jezeli wysyla sie jakis komunikat do przegladarki to wowczas nie zadziala...
[EDIT]
powinien byc w pliku odpowiadającym za wysyłkę maila? - tak p

Gdzie dokladnie w kodzie powinienem go umiescic? - np na koncu Smile


RE: Przekierowanie po wyslaniu formularza - camelrafal - 23-09-2012

tam powinien być gdzie kod wysyłający
musisz umieścić header zanim wyświetlisz na stronie jakąkolwiek zawartość/jakikolwiek znak (włączając spacje)
czyli najlepiej zaraz na samej górze
Kod:
<?php
header( "refresh:5;url=index.php" );
... coś tam coś tam i obsługa maila ...
?>



RE: Przekierowanie po wyslaniu formularza - marti - 23-09-2012

Dziekuje działa idealnie Smile

W tej chwili po wypelnieniu formularza i kliknieciu wysli pojawia sie pusta strona z komunikatem echo '<p>Wiadomość została wysłana</p>' ; a potem nastepuje przekierowanie na strone docelową ustawioną w header location.

Co zrobic aby uniknąć "pustej strony"?


RE: Przekierowanie po wyslaniu formularza - camelrafal - 23-09-2012

no trzeba dodać treść jakąś tak samo jak na innych stronach
Kod:
<?php
header( "refresh:5;url=index.php" );
?>
tutaj html strony
<?php
tutaj obsługa mail oraz komunikat
?>
a tutaj znowu html strony