Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Formularz kontaktowy
suchy1
post 4.01.2009, 12:02:09
Post #1





Grupa: Zarejestrowani
Postów: 246
Pomógł: 8
Dołączył: 2.04.2006
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


Witam,

Chciałbym żeby po kliknięciu na przycisk wyslij dane z formularza zostały wysłane. Normalnie mechanizm działa ale jak odswieze strone @ jest wysyłany. Dlatego dodałem instrukcje warunkową IF, jednak teraz formularz nie wysyła wiadomości.

Plik: kontakt.php
  1. <div id = "contentWrapRight">
  2.                        <form action="kontakt.php" method="post">
  3.                            <fieldset>
  4.                                <legend>Formularz kontaktowy</legend>
  5.                                     <dl>
  6.                                        <dt><label for="imie_nazwisko">Imię i nazwisko:</label></dt>
  7.                                        <dd><input type="text" name="imie_i_nazwisko" size="32" maxlength="128" /></dd>
  8.                                    </dl>
  9.                                    <dl>
  10.                                        <dt><label for="email">Email:</label></dt>
  11.                                        <dd><input type="text" name="email" size="32" maxlength="128" /></dd>
  12.                                    </dl>
  13.                                    <dl>
  14.                                        <dt><label for="email">Telefon:</label></dt>
  15.                                        <dd><input type="text" name="telefon" size="32" maxlength="128" /></dd>
  16.                                    </dl>
  17.                                    <dl>
  18.                                        <dt><label for="comments">Wiadomość:</label></dt>
  19.                                        <dd><textarea name="wiadomosc" rows="5" cols="60"></textarea></dd>
  20.                                    </dl>
  21.                            </fieldset>
  22.                            <fieldset>
  23.                                <input type="submit" name="wyslij" value="Wyślij" />
  24.                            </fieldset>
  25.                     </form>
  26.                  </div>
  27.                </div>
  28.                <div id = "contentFooter"></div>
  29.            </div>
  30.        </div>
  31.      
  32.        <?php
  33.            $wyslij=$_POST['wyslij'];
  34.            if($_POST['wyslij'] == true)
  35.                {
  36.                  
  37.                        $site_name = "moja nazwa";
  38.                        $site_email = "mail@google.pl";
  39.                        $imie_i_nazwisko=$_POST['imie_i_nazwisko'];                        
  40.                      
  41.                        mail("$site_email", "$site_name - Formularz kontaktowy",
  42.                        "Wysłany przez: $imie_i_nazwisko \n\n
  43.                        Email: $email\n\n
  44.                        Telefon: $telefon\n\n
  45.                        Wiadomość: \n\n
  46.                        $wiadomosc ");
  47.                        echo "<B>Wiadomość została wysłana !</B>";                  
  48.                }
  49.        ?>


Jak zrobic aby wiadomość była wysyłana w momencie kliknięcia na przycisk wyślij a nie po odswiezeniu storny ?

Ten post edytował suchy1 4.01.2009, 12:04:14
Go to the top of the page
+Quote Post
zulus
post 4.01.2009, 12:09:33
Post #2





Grupa: Zarejestrowani
Postów: 225
Pomógł: 18
Dołączył: 30.06.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


po wysłaniu maila wykonaj

header('Location: adres_strony_z_formularzem');

wtedy przeglądarka "zapomni" dane wpisane


--------------------
Go to the top of the page
+Quote Post
suchy1
post 4.01.2009, 12:11:15
Post #3





Grupa: Zarejestrowani
Postów: 246
Pomógł: 8
Dołączył: 2.04.2006
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


rozumiem, jak zmodyfikować powyzszy kod zeby sie nie wysyłał za kazdym razem po odswiezeniu storny ?
Go to the top of the page
+Quote Post
Mlodycompany
post 4.01.2009, 12:26:06
Post #4





Grupa: Zarejestrowani
Postów: 910
Pomógł: 44
Dołączył: 20.02.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


Kolega Zulus już napisał jak zrobić. Header(); Funkcja ta przenosi na stronę z formularzem jednocześnie tracąc dane, więc użytkownik strony będzie sobie mógł odświeżać stronę ile się mu zachce a forumularz nie zostanie powtórzony. biggrin.gif
Go to the top of the page
+Quote Post
suchy1
post 4.01.2009, 12:41:55
Post #5





Grupa: Zarejestrowani
Postów: 246
Pomógł: 8
Dołączył: 2.04.2006
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


  1. <?php
  2.            $wyslij=$_POST['wyslij'];
  3.            if (!empty ($_POST['wyslij']))
  4.                {                  
  5.                        $site_name = "www.net";
  6.                        $site_email = "mail@gmail.com";
  7.                        $imie_i_nazwisko=$_POST['imie_i_nazwisko'];
  8.  
  9.                        mail("$site_email", "$site_name - Formularz kontaktowy",
  10.                        "Wysłany przez: $imie_i_nazwisko \n\n
  11.                        Email: $email\n\n
  12.                        Telefon: $telefon\n\n
  13.                        Wiadomość: \n\n
  14.                        $wiadomosc ");
  15.                        header('Location: <a href=\"http://www.adres.pl/kontakt.php');&#092;" target=\"_blank\">http://www.adres.pl/kontakt.php');</a>
  16.                }
  17.        ?>


Wyświetla się blad: Warning: Cannot modify header information - headers already sent by (output started at /web/www/strona_test/kontakt.php:84) in /web/www/strona_test/kontakt.php on line 131

Gdyby nie ten blad to wszystko działa.
Go to the top of the page
+Quote Post
phpion
post 4.01.2009, 12:43:58
Post #6





Grupa: Moderatorzy
Postów: 6 070
Pomógł: 860
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(suchy1 @ 4.01.2009, 14:41:55 ) *
Wyświetla się blad: Warning: Cannot modify header information - headers already sent by (output started at /web/www/strona_test/kontakt.php:84) in /web/www/strona_test/kontakt.php on line 131

Gdyby nie ten blad to wszystko działa.

Oj chyba zaraz dostaniesz ochrzan smile.gif Problem bardzo często poruszany na forum - wystarczy poszukać. Generalnie przed header() nie możesz wysłać do przeglądarki żadnego kodu HTML. Poszukaj, poczytaj.
Go to the top of the page
+Quote Post
suchy1
post 4.01.2009, 12:57:13
Post #7





Grupa: Zarejestrowani
Postów: 246
Pomógł: 8
Dołączył: 2.04.2006
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


faktycznie nawet kiedys o tym czytałem. Dzięki za pomoc.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 31.05.2024 - 15:28