Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Formularz e-mail
Forum PHP.pl > Forum > Przedszkole
tormentor
Witam,
Mam taki formularz:
kontakt.php
  1. <?php
  2. $ipi = getenv("REMOTE_ADDR");
  3. $httprefi = getenv ("HTTP_REFERER");
  4. $httpagenti = getenv ("HTTP_USER_AGENT");
  5. ?>
  6.  
  7. <input type="hidden" name="ip" value="<?php echo $ipi ?>" />
  8. <input type="hidden" name="httpref" value="<?php echo $httprefi ?>" />
  9. <input type="hidden" name="httpagent" value="<?php echo $httpagenti ?>" />
  10.  
  11. <br />
  12. Imię i nazwisko: <br />
  13. <input type="text" name="visitor" size="35" />
  14. <br />
  15. E-mail:<br />
  16. <input type="text" name="visitormail" size="35" />
  17. <br />
  18. Temat:<br />
  19. <input type="text" name="subject" size="35" />
  20. <br />
  21. Wiadomość:
  22. <br />
  23. <textarea name="notes" rows="5" cols="40"></textarea>
  24. <br /><br />
  25. <input type="submit" value="Wyslij" />
  26. <br />
  27. </form>
  28. </div>


oraz sendeail.php
  1. <?php
  2.  
  3. $ip = $_POST['ip'];
  4. $httpagent = $_POST['httpagent'];
  5. $visitor = $_POST['visitor'];
  6. $subject = $_POST['subject'];
  7. $visitormail = $_POST['visitormail'];
  8. $notes = $_POST['notes'];
  9.  
  10.  
  11. if (eregi('http:', $notes)) {
  12. echo "Nie wpisuj adresów www!";
  13. }
  14. else if(!$visitormail == "" && (!strstr($visitormail,"@") || !strstr($visitormail,".")))
  15. {
  16. echo "Wpisz poprawny adres e-mail\n";
  17. $badinput = "Wiadomość nie została wysłana\n";
  18. echo $badinput;
  19. }
  20. else if(empty($visitor) || empty($visitormail) || empty($subject) || empty($notes )) {
  21. echo "Wypełnij wszystkie pola!";
  22. } else {
  23.  
  24. $todayis = date("d.m.Y, G:i:s") ;
  25.  
  26.  
  27. $subject = $subject;
  28.  
  29. $notes = stripcslashes($notes);
  30.  
  31. $message = " $todayis [EST] \n
  32. Od: $visitor ($visitormail)\n
  33. Temat: $subject \n
  34. Treść wiadomo�ci: $notes \n
  35. Pozostałe informacje : \n
  36. IP = $ip \n
  37. Przeglądarka: $httpagent \n
  38. ";
  39.  
  40. $from = "From: $visitormail\r\n";
  41.  
  42.  
  43. mail("test@wp.pl", $subject, $message, $from);
  44. ?>
  45.  
  46. <p align="center">
  47. Data: <?php echo $todayis ?>
  48. <br />
  49. Od: <?php echo $visitor ?> ( <?php echo $visitormail ?> )
  50. <br />
  51. Temat: <?php echo $visitor ?>
  52. <br />
  53.  
  54. Wiadomość:<br />
  55. <?php $notesout = str_replace("\r", "<br/>", $notes);
  56. echo $notesout; ?>
  57. <br />
  58. <?php echo $ip ?>
  59. <?}?>
  60.  
  61. <br /><br />
  62. <a href="kontakt.php"> Powrót </a>
  63. </p>
  64. <br />
  65. <br />
  66. <br />
  67. <br />
  68. <br />
  69.  
  70. </form>
  71. </div>


Niestety maile dochodzą bez polskich znaków. Domyślam się, że to kwestia kodowania. Gdyby ktoś mógł poratować korektą tego kodu - będę szalenie wdzięczny.
peter13135
  1. mail($do_kogo, 'tytuł' , $tresc, 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/html; charset=UTF-8' . "\r\n" . 'From: ' . $mail_nadawcy . "\r\n" . 'Reply-To: ' . $mail_nadawcy . "\r\n");


Dokument zakoduj w UTF-8 i powinno być git
tormentor
Próbowałem w ten sposób, także jako plain, ale coś pochrzaniłem najwidoczniej bo zero zmian, mógłbyś na moim przykładzie dać kodowanie?
peter13135
a kodowanie strony masz w utf-8 ?
tormentor
Tak
  1. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
adek-
Nie sugeruj się tym wpisem, sprawdź to np Ked'em F4, albo czymś innym. Ja miałem tak, że skopiowałem jakiś plik i w nim zacząłem pisać, łącznie z tym co ty wkleiłeś, a okazuje się, że ważne jest też tworzenie pliku... tamten akurat został stworzony w innej stronie kodowej i samo wpisanie znacznika nie pomogło. Tak tylko na marginesie piszę, abyś się upewnił, czy czasem nie masz w programie zaznaczone defaultowo tworzenie nowych plików stron w innym formacie.
tormentor
Dzieki za odpowiedz.
Używam Dreamweaver i sprawdziłem we właściwościach, kodowanie jest na utf.
Co do kogowania - w którym miejscu w moim kodzie i co dokładnie wpisać aby mailem dochodziły polskie znaki?
Na stronie są.
peter13135
@adek-
Jeżeli w nagłówku jest linijka :
Kod
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

to wszystko co będzie wpisane do formularza, będzie zakodowane w utf-8. Kodowanie pliku też powinno być utf-8, ale w tym przypadku nie ma nic do rzeczy.

Twój kod nie będzie zawierał polskich znaków, bo nie ma w nim informacji na temat kodowania znaków.

Dałem Ci fragment skryptu odpowiadający za wysłania maila, z poprawnym (przynajmniej u mnie działa) nagłówkiem utf-8. Jeśli mówisz, że u Ciebie mój kod nie działa, to pokaż w jaki sposób go zastosowałeś (domyślam się, że nie skopiowałeś tego "żywcem") i wtedy poszukamy błędów. To, że Twój kod nie robi polskich znaków to dla nas żadne odkrycie.
tormentor
  1. mail("test@wp.pl", $subject, $message, $from, 'Content-type: text/html; charset=UTF-8');


Tak wpisałem, teraz wogóle maile nie dochodzą sad.gif
peter13135
zapomniałeś o pierwszym parametrze (mime)
tormentor
  1. mail("test@wp.pl", $subject, $message, $from,'MIME-Version: 1.0' . 'Content-type: text/html; charset=UTF-8');


Dalej nie dochodzą... Co może być nie tak? sad.gif
peter13135
funkcja mail nie przyjmuje 5 parametrów wink.gif
tormentor
W takim razie mógłbyś poprawić mi ta linijkę? Bede wdzieczny.
peter13135
  1. mail('test@wp.pl', $subject, $message, 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/html; charset=UTF-8' . "\r\n" . 'From: ' . $from . "\r\n" . 'Reply-To: ' . $from . "\r\n");
tormentor
Dziala, serdeczne dzieki, już klikam "pomogl" smile.gif
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.