Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Funkcja mail - brak polskich znaków w treści wiadomości
Forum PHP.pl > Forum > Przedszkole
Nes.
Witam,

Moja strona jest postawiona na cmsie Joomla i ostatnio wgrałem do niej pewny moduł nazywa się mod J Dcontact.
Niestety za chiny ludowe nie umiem ustawić polskich znaków w samej TREŚCI wiadomości.

Tytuł oraz info o użytkowniku posiada polskie znaki, natomiast sama treść już nie.
Cała strona posiada kodowanie utf-8

Link do modułu: http://www.j-download.com/component/attach...ownload/12.html

Kod głównego pliku odpowiadającego za wysłanie wiadomości

  1.  
  2. <?php
  3.  
  4. defined('_JEXEC') or die;
  5.  
  6. class modJdcontactHelper
  7. {
  8. static function preLoadprocess(&$params)
  9. {
  10. if($_POST){
  11. $javascript_enabled = trim($_REQUEST['browser_check']);
  12. $department = trim($_REQUEST['dept']);
  13. $name = trim($_REQUEST['name']);
  14. $email = trim($_REQUEST['email']);
  15. $phno = trim($_REQUEST['phno']);
  16. $subject = trim($_REQUEST['subject']);
  17. $msg = trim($_REQUEST['msg']);
  18. $sales_address = $params->get( 'sales_address', 'sales@yourdomain.com' );
  19. $support_address = $params->get( 'support_address', 'support@yourdomain.com' );
  20. $billing_address = $params->get( 'billing_address', 'billing@yourdomain.com' );
  21. $selfcopy = isset($_REQUEST['selfcopy']) ? $_REQUEST['selfcopy'] : "";
  22. $humantest = $_REQUEST['human_test'];
  23. $sum_test = $_REQUEST['sum_test'];
  24. $humantestpram = $params->get( 'humantestpram', '1' );
  25. $headers = 'MIME-Version: 1.0rn';
  26. $headers .= 'Content-type: text/html; charset=iso-8859-2'."\r\n";
  27. $headers .= 'Wiadomość od: '.$name.' <'.$email.'>'."\r\n";
  28.  
  29.  
  30. $message = "Imię: $name\nE-mail: $email\nTelefon: $phno\n\nWiadomość: $msg";
  31.  
  32. if ( $department == "sales") $to = $sales_address;
  33. elseif ( $department == "support") $to = $support_address;
  34. elseif ( $department == "billing") $to = $billing_address;
  35. else $to = $sales_address;
  36.  
  37. if ( $name == "" )
  38. {
  39. $result = "".JText::_('MOD_JDCONTACT_VLDNAME')."";
  40. }
  41. elseif (!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/", $email))
  42. {
  43. $result = "".JText::_('MOD_JDCONTACT_VALIDEMAIL')."";
  44. }
  45. else if($phno=="")
  46. {
  47. $result = "".JText::_('MOD_JDCONTACT_PHONENUMB')."";
  48. }
  49. elseif ( $subject == "" )
  50. {
  51. $result = "".JText::_('MOD_JDCONTACT_MSGSUBJECT')."";
  52. }
  53. elseif ( strlen($msg) < 10 )
  54. {
  55. $result = "".JText::_('MOD_JDCONTACT_MORETENWRD')."";
  56. }
  57. else if($humantestpram=='1' && $humantest!=$sum_test){
  58. $result = "".JText::_('MOD_JDCONTACT_CORRECTNUM')."";
  59. }
  60. else
  61. {
  62. if(@mail($to, $subject, $message, $headers)){
  63. $sucs=1;
  64. }
  65. if( $selfcopy == "yes" ){
  66. if(@mail($email, $subject, $message, $headers)){
  67. $sucs=1;
  68. }
  69. }
  70. if($sucs==1){
  71. $result = "".JText::_('MOD_JDCONTACT_SUCCESSMSG')."";
  72. }
  73. else{
  74. $result = "".JText::_('MOD_JDCONTACT_MAILSERVPROB')."";
  75. }
  76. }
  77.  
  78. if($javascript_enabled == "true") {
  79. echo $result;
  80. die();
  81. }
  82. }
  83. }
  84. }
  85.  
  86. ?>
  87.  
nospor
maila wysylasz w ISO, strone masz w utf8.... hmm... ciekawe czemu nie dziala wink.gif
Nes.
Wiem, ale to kodowanie zostało podane tylko jako przykład.
Po zmianie charset w pliku na utf8 oraz kodowanie całego pliku na utf8 pokazują się takie znaki:

Wiadomość: nowść i gżegżóła

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.