Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Przekierowanie po wyslaniu formularza
#1
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
Odpowiedz
#2
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']
Odpowiedz
#3
Kod:
echo '<script type="text/javascript">setTimeout(function(){location.replace=".........";}, 5000);</script>';
Odpowiedz
#4
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
Odpowiedz
#5
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 ...
?>
Odpowiedz
#6
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"?
Odpowiedz
#7
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
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Prosze o pomoc - kolor formularza kontaktowego puchallowen 3 4,015 08-11-2014, 14:40
Ostatni post: Kartofelek
  przekierowanie na mobilną wersję strony oraz z mobilnej na full zaxxx 5 5,207 15-04-2013, 04:03
Ostatni post: zaxxx
  Przekierowanie z zachowaniem nowej domeny lomek 5 4,790 06-01-2013, 15:30
Ostatni post: andrzejhi
  Przekierowanie domeny lomek 6 5,458 20-12-2012, 20:06
Ostatni post: lomek
  przekierowanie na index.php wsp 1 1,517 11-11-2012, 17:36
Ostatni post: kornell

Skocz do:


Użytkownicy przeglądający ten wątek:
Sponsorzy i przyjaciele
SeoHost.pl