Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem ze skryptem formularz kontaktowy
Forum PHP.pl > Forum > PHP
shogunzmc
witam umieściłem na stronce następujący kod

w pliku kontakt.html:

  1. <form method="post" action="wyslij.php" name="kontakt">
  2. <div><li>
  3. <label for="nick">Imię: </label>
  4. <ul><input type="text" class="text" id="nick" name="nick" ></div>
  5. <div><li>
  6. <label for="temat">Temat: </label><ul><input type="text" name="temat" class="text" id="temat" ></div>
  7. <div><li><label for="mail">Twój adres e-mail: </label><ul><input type="text" name="mail" class="text" id="mail" ></div>
  8. <div><li>
  9. <label for="tresc">Treść: </label>
  10. <ul>
  11. <textarea name="tresc" id="tresc" rows="5" cols="50" ></textarea>
  12. </div>
  13. <div>
  14. <ul>
  15. <input type="submit" value="Wyslij" /></div>
  16. </form>


natomiast plik wyslij.php wygląda następująco

  1. <?php
  2.  
  3. if (!nick || !mail || !temat || !tresc)
  4. {
  5. echo "Nie uzupelniles wszystkich rubryk.";
  6. }
  7. $charset = 'Windows-1250';
  8. $wiadomosc =
  9. "Imie: ".$_POST['nick']."
  10.  
  11. e- mail: ".$_POST['mail']."
  12.  
  13. Tresc: ".$_POST['tresc']." ";
  14.  
  15. $tematyka = "Formularz kontaktowy".$temat;
  16.  
  17.  
  18. mail ("mojadresemail", $tematyka, $wiadomosc );
  19. echo "<script type=\"text/javascript\">window.alert('Wiadomość zostala wyslana');</script>";
  20. ?>


i wszystko działa email dochodzi jak należy z tym że wyświetla się informacja email został wysłany i biała strona a chciałbym aby powracało na strone z formularzem automatycznie ale nie za bardzo wiem jak to mam teraz zrobić


PS. z góry dziękuję za pomoc
nospor
Uzyj header i przekieruj po np. 5 sekundach spowrotem na swoj formularz
http://pl.php.net/manual/pl/function.header.php
Cytat
Several times this one is asked on the net but an answer could not be found in the docs on php.net ...

If you want to redirect an user and tell him he will be redirected, e. g. "You will be redirected in about 5 secs. If not, click here." you cannot use header( 'Location: ...' ) as you can't sent any output before the headers are sent.

So, either you have to use the HTML meta refresh thingy or you use the following:

<?php
header( "refresh:5;url=wherever.php" );
echo 'You\'ll be redirected in about 5 secs. If not, click <a href="wherever.php">here</a>.';
?>

Hth someone
shogunzmc
gdzie dokładnie mam użyć tej funkcji w którym miejscu mam ją wpisać ?
nospor
mogles sprobowac dac to w 3 losowych miejsach i podzielic się swoimi spostrzezeniami. Nie boj, jak dasz w zlym miejscu to nic nie wybuchnie smile.gif
shogunzmc
ale czy to ma być w pliku wyślij.pl czy kontakt.html bo chyba w wyslij
nospor
No oczywiscie ze w wyslij. Przeciez stamtąd chcesz przekierować smile.gif
shogunzmc
Dodaje to na końcu i za każdym razem wywala mi błąd
nospor
super, teraz napisz jaki to błąd.
Jesli to header cos tam to uzyj wyszukiwarki bo problem byl poruszany milion razy.
I nie na koncu a zaraz po wyslaniu smile.gif
shogunzmc
tak to zamieściłęm

<?php

if (!nick || !mail || !temat || !tresc)
{
echo "Nie uzupelniles wszystkich rubryk.";
exit;
}
$charset = 'Windows-1250';
$wiadomosc =
"Imie: ".$_POST['nick']."

e- mail: ".$_POST['mail']."

Tresc: ".$_POST['tresc']." ";

$tematyka = "Formularz kontaktowy".$temat;


mail ("xxx@o2.pl", $tematyka, $wiadomosc );
header( "refresh:5;url=kontakt.hyml" );
echo "<script type=\"text/javascript\">window.alert('Wiadomość zostala wyslana');</script>";
?>

i mam taki błąd

window.alert('Wiadomo�ć zostala wyslana');"; ?>
nospor
ale to zaden blad tylko Twoj komunikat smile.gif

kontakt.hyml
chyba
kontakt.html

uzywaj bbcode
shogunzmc
poprawiłem ale nadal to samo tongue.gif juz sił do tego nie mam biggrin.gif

sorka za bb
nospor
pewnie header ci nie dziala bo idą jakieś rzeczy wczesniej do przeglądarki. A nie widzisz bledu bo masz wylaczone wyswietlanie wszystkich bledów. Włacz je. Tu masz napisane jak to zrobic
Temat: Jak poprawnie zada pytanie

Przy okazji zobaczysz pare innych bledów które masz na samym początku skryptu w IF smile.gif


Co do bledu z header szukaj na forum pod hasłem: headers already sent - bylo milion razy
shogunzmc
nospor a nie da się tego kodu wrzucić do pliku html żeby nie rozdzielać tego w 2 pliki tylko w jeden questionmark.gif
nospor
alez mozesz. Tylko nie php do html a html do php smile.gif
Cały swoj formularz wstaw w
echo 'TUTAJ FORM';
i po sprawie smile.gif
Od biedy możesz też w pliku php wyjsc z php (?>) i pisac w html
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.