Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz kontaktowy
Forum PHP.pl > Forum > PHP
luniek88
Witam,

zamieściłem na swojej stronie formularz kontaktowuy. Udało mi ustawić treść tak żeby były polskie znaki. Mam teraz jeszcze dwie niewadome:
1. Gdy przychodzi do mnie mail wyświetla mi się, że otrzymuję go z własnego hosta. Proszę napiszcie, co zmienić żeby wyświetlało mi się Imię i nazwisko albo mail wpisany przez klienta.
2. Mam polskie znaki w treści. Co zrobić żeby polskie znaki były także w nazwie wysyłającego maila?

  1. //--- pocz�tek formularza ---
  2. if(empty($_POST['submit'])) {
  3. ?>
  4.  
  5. <table>
  6. <form action="" method="post">
  7. <tr>
  8. <td>Imię i Nazwisko:</td>
  9. <td><input class="pole" type="text" name="formName"/></td>
  10. </tr>
  11. <tr>
  12. <td>E-Mail:</td>
  13. <td><input class="pole" type="text" name="formEmail"/></td>
  14. </tr>
  15. <tr>
  16. <td>Treść wiadomości:</td>
  17. <td ><textarea name="formText"></textarea></td>
  18. </tr>
  19. <tr>
  20. <td>&nbsp;</td>
  21. <td><input type="submit" name="submit" value="Wyślij formularz"/></td>
  22. </tr>
  23. </form>
  24. </table>
  25. <?php
  26. } else {
  27. //twoje dane
  28. $email = 'grzegorzluniewski@teatrmantra.pl';
  29. //dane z formularza
  30. $formName = $_POST['formName'];
  31. $formEmail = $_POST['formEmail'];
  32. $formText = $_POST['formText'];
  33. if(!empty($formName) && !empty($formEmail) && !empty($formText)) {
  34. //--- pocz�tek funkcji weryfikuj�cej adres e-mail ---
  35. function checkMail($checkmail) {
  36. if(filter_var($checkmail, FILTER_VALIDATE_EMAIL)) {
  37. if(checkdnsrr(array_pop(explode("@",$checkmail)),"MX")){
  38. return true;
  39. }else{
  40. return false;
  41. }
  42. } else {
  43. return false;
  44. }
  45. }
  46. //--- koniec funkcji ---
  47. if(checkMail($formEmail)) {
  48. //dodatkowe informacje: ip i host u�ytkownika
  49. $ip = $_SERVER['REMOTE_ADDR'];
  50. $host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  51. //tworzymy szkielet wiadomo�ci
  52. //tre�� wiadomo�ci
  53. $mailText = "Treść wiadomości:\n$formText\nOd: $formName, $formEmail ($ip, $host)";
  54. //adres zwrotny
  55. $mailHeader = "Content-type: text/plain; charset=iso-8859-2";
  56. //funkcja odpowiedzialna za wys�anie e-maila
  57. @mail($email, 'Formularz kontaktowy', $mailText, $mailHeader) or die('Błąd: wiadomość nie została wysłana');
  58. //komunikat o poprawnym wys�aniu wiadomo�ci
  59. echo 'Wiadomość została wysłana';
  60. } else {
  61. echo 'Adres e-mail jest niepoprawny';
  62. }
  63. } else {
  64. //komunikat w przypadku nie powodzenia
  65. echo 'Wypełnij wszystkie pola formularza';
  66. }
  67. //--- koniec formularza ---
  68. }
  69. ?>
  70.  
  71. </div></div>
com
http://pl.wikibooks.org/wiki/PHP/Wysy%C5%82anie_e-maili

zmień nagłówek sobie na utf-8 i plik na utf-8 bez BOM smile.gif jak nie wiesz jak to : http://comstudio.fwl.pl/blog/2013/03/utf-8-bez-bom/ wink.gif
luniek88
Dzięki za szybki odzew, ja jednak zrobiłem to inaczej, dodałem:

  1. //adres zwrotny
  2. $mailHeader = "From: $formName <$formEmail>\r\n";
  3. $mailHeader .= "Content-type: text/plain; charset=iso-8859-2\r\n";


Teraz maile dostaję z polskimi znakami. Pozostał jeden problem: jak dostaję maila to wyświetla mi się na skrzynce imię i nazwisko, no i tutaj niestety polskich znaków już nie mam. Jak to zmienić?
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.