Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Formularz pocztowy
--efan--
post
Post #1





Goście







Witam. Mam problem z formularzem pocztowym:
1. Kodowanie nagłówka wiadomości oraz treści wiadomości - albo jedno albo drugie jest dobrze, nigdy razem
2. Treść wiadomości dostaję w jednej lini choć mam znaczniki \n
3. Ten znacznik powoduje błąd: or die('Nie udało się wysłać wiadomo¶ci!');

  1. <?php
  2. // generowanie naglowka wiadomosci
  3.  
  4. $header = "From: $_POST[imie] <$_POST[email]>r\n";
  5. $header .= "Reply-to: $_POST[imie] <$_POST[email]>r\n";
  6. $header .= "MIME-Version: 1.0r\n"; 
  7. $header .= "Content-type: text/html; charset=UTF-8r\n";
  8.  
  9. // $header .= "Content-Transfer-Encoding: base64\n";
  10.  
  11. // generowanie wiadomosci
  12.  
  13. $message = "Imię, Nazwisko: $_POST[imie]\n";
  14. $message .= "Adres e-mail: $_POST[email]\n";
  15. $message .= "...........................\n";
  16. $message .= "$_POST[tresc]\n";
  17. $message .= "...........................\n";
  18.  
  19. // wysylanie maila
  20.  
  21. mail("$email_admin", "$email_temat", "$message", "$header");
  22.  
  23. // or die('Nie udało się wysłać wiadomości!');
  24.  
  25. echo '<p class="alert">Wiadomość została wysłana poprawnie!</p>';
  26. ?>
Go to the top of the page
+Quote Post
ferrero2
post
Post #2





Grupa: Zarejestrowani
Postów: 171
Pomógł: 32
Dołączył: 5.08.2008
Skąd: Lublin

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


proponuje zapoznać się z tym tematem :

http://forum.php.pl/index.php?showtopic=101978&hl=
Go to the top of the page
+Quote Post
barthpl
post
Post #3





Grupa: Zarejestrowani
Postów: 142
Pomógł: 35
Dołączył: 5.12.2006
Skąd: Wrocław

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


Wprowadź taką zmianę:
  1. <?php
  2. $title = sprintf( "=?utf-8?B?%s?=", base64_encode(email_temat) );
  3. mail("$email_admin", $title, "$message", "$header");
  4. ?>


Testowałem wysyłanie na gmail i działa.

p.s.: swoją drogą to czemu piszesz "$email_admin" zamiast $email_admin ??
Go to the top of the page
+Quote Post
--Efan--
post
Post #4





Goście







Poszperałem jeszcze i znalazłem coś takiego i ku mojemu zdumieniu poprawnie konwertuje temat wiadomości, jednak nadal mam problem z nagłówkiem. Jest problem jak ktoś będzie nazywał się "Łukasz Pięść" bo wyjdą krzaczki.

  1. <?php
  2. $temat = stripslashes($email_temat);
  3. $temat = strtr($email_temat, "xA5x8Cx8FxB9x9Cx9F", "xA1xA6xACxB1xB6xBC");
  4.  
  5.  mail($email_admin, $temat, $wiadomosc, $naglowek);
  6. ?>
Go to the top of the page
+Quote Post
barthpl
post
Post #5





Grupa: Zarejestrowani
Postów: 142
Pomógł: 35
Dołączył: 5.12.2006
Skąd: Wrocław

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


Linijkę 4 zastąp takim kodem:
  1. <?php
  2. $imie = sprintf( "=?utf-8?B?%s?=", base64_encode($_POST['imie']) );
  3. $header = "Fro: $imie <$_POST[email]>r\n";
  4. ?>

dalej tak jak poprzednio (pamiętaj o przedytowaniu również tytułu) i wiadomości od Pana Łukasz Pięść będą przechodziły ładnie zakodowane, przynajmniej na google. Oczywiście taką zmianę będzie trzeba przeprowadzić we wszystkich polach które mogą zawierać dziwne (polskie) znaczki.
Go to the top of the page
+Quote Post
tiraeth
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


Chcesz wiedzieć, dlaczego wszystko wyświetla Ci się w jednej linii? Bo wiadomość wysyłasz jako HTML. A w HTML, żeby nową linię dać, to albo <br />, albo <p>. W funkcji mail" title="Zobacz w manualu PHP" target="_manual, zamiast "$message" daj nl2br($message) - to tak prowizorycznie rozwiąże problem.
Go to the top of the page
+Quote Post
Efan
post
Post #7





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 25.01.2007

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


Nie do końca działa. Kod źródłowy mam taki:
  1. <?php
  2. $wiadomosc = "ImiÄ™, Nazwisko: $_POST[imie]\n";
  3.        $wiadomosc .= "Adres e-mail: $_POST[email]\n";
  4.        $wiadomosc .= "...........................\n";
  5.        $wiadomosc .= "$_POST[tresc]\n");
  6.        $wiadomosc .= "...........................\n";
  7. ?>


Po zmianie dalej nie dziala:
  1. <?php
  2. $wiadomosc = "ImiÄ™, Nazwisko: $_POST[imie]\n";
  3.        $wiadomosc .= "Adres e-mail: $_POST[email]\n";
  4.        $wiadomosc .= "...........................\n";
  5.        $wiadomosc .= "$_POST[tresc]\n");
  6.        $wiadomosc .= "...........................\n";
  7.  
  8. nl2br($wiadomosc);
  9. ?>


Nie działa również:
  1. <?php
  2. $wiadomosc = "ImiÄ™, Nazwisko: $_POST[imie]\n");
  3.        nl2br($wiadomosc .= "Adres e-mail: $_POST[email]\n");
  4.        nl2br($wiadomosc .= "...........................\n");
  5.        nl2br($wiadomosc .= "$_POST[tresc]\n");
  6.        nl2br($wiadomosc .= "...........................\n)";
  7. ?>


Gdzie tkwi błąd?
Go to the top of the page
+Quote Post
tiraeth
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


U Ciebie tkwi błąd. Ja nie wiem czy ludzie już tak głupi się rodzą, czy gdzieś to się nabywa...

  1. <?php
  2. $temat = 'Temat wiadomości';
  3. $email = 'email@example.com';
  4.  
  5. $temat = sprintf( "=?utf-8?B?%s?=", base64_encode($temat) );
  6. $imie = sprintf( "=?utf-8?B?%s?=", base64_encode($_POST['imie']) );
  7.  
  8. $header = "Fro: $imie <$_POST['email']>r\n";
  9. $header .= "Reply-to: $imie <$_POST['email']>r\n";
  10. $header .= "MIME-Versio: 1.0r\n";
  11. $header .= "Content-ty: text/html; charset=UTF-8r\n";
  12.  
  13. $message = "Imię, Nazwisko: $_POST['imie']\n";
  14. $message .= "Adres e-mail: $_POST['email']\n";
  15. $message .= "...........................\n";
  16. $message .= "$_POST['tresc']\n";
  17. $message .= "...........................\n";
  18.  
  19. $message = nl2br($message);
  20.  
  21. mail($email_admin, $title, $message, $header);
  22. ?>


I zacznij chłopie myśleć, bo to nie boli.

Ten post edytował tiraeth 19.09.2008, 12:02:50
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 16:07