Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][PHP]Oscommerce kodowanie wiadomości meil
Forum PHP.pl > Forum > Przedszkole
Berton11
Witam,

To mój pierwszy post , zdecydowałem się zarejestrować i napisać ponieważ walczę już jakiś czas z tym kodowanie i nic.
Mam nadzieje ,że pomożecie mi smile.gif

Do rzeczy:
Tworze sklep oparty na silniku oscommerce 2.3.1 , wgrałem spolszczenie i na początku miałem problem ponieważ na stronie wyświetlały się krzaki zamiast Polskich liter ale ten problem już rozwiązałem.

Pozostał już tylko a właściwie aż jeden problem.
Mianowicie kiedy ktoś złoży zamówienie , otrzymuje potwierdzenie złożenia zamówienia meilem i w tym meilu zamiast polskich znaków są krzaki... co wybitnie psuje wszystko ponieważ np. dane do wysyłki zawierają nazwę miejscowości Pułtusk oraz dane właściciela zawieraja Polskie znaki i wygląda to marnie.
Próbowałem zmienić kodowanie w pliku /includes/classes/email.php
mianowicie:

  1. $this->image_types = array('gif' => 'image/gif',
  2. 'jpg' => 'image/jpeg',
  3. 'jpeg' => 'image/jpeg',
  4. 'jpe' => 'image/jpeg',
  5. 'bmp' => 'image/bmp',
  6. 'png' => 'image/png',
  7. 'tif' => 'image/tiff',
  8. 'tiff' => 'image/tiff',
  9. 'swf' => 'application/x-shockwave-flash');
  10.  
  11. $this->build_params['html_encoding'] = 'quoted-printable';
  12. $this->build_params['text_encoding'] = '7bit';
  13. $this->build_params['html_charset'] = constant('CHARSET');
  14. $this->build_params['text_charset'] = constant('CHARSET');
  15. $this->build_params['text_wrap'] = 998;


Zmieniłem na :
  1. $this->image_types = array('gif' => 'image/gif',
  2. 'jpg' => 'image/jpeg',
  3. 'jpeg' => 'image/jpeg',
  4. 'jpe' => 'image/jpeg',
  5. 'bmp' => 'image/bmp',
  6. 'png' => 'image/png',
  7. 'tif' => 'image/tiff',
  8. 'tiff' => 'image/tiff',
  9. 'swf' => 'application/x-shockwave-flash');
  10.  
  11. $this->build_params['html_encoding'] = 'quoted-printable';
  12. $this->build_params['text_encoding'] = '7bit';
  13. $this->build_params['html_charset'] = constant('utf-8');
  14. $this->build_params['text_charset'] = constant('utf-8');
  15. $this->build_params['text_wrap'] = 998;


I wtedy jak chce wysłać meila wyskakuje:

"Warning: constant() [function.constant]: Couldn't find constant utf-8 in /includes/classes/email.php on line 61

Warning: constant() [function.constant]: Couldn't find constant utf-8 in /includes/classes/email.php on line 62

Warning: Cannot modify header information - headers already sent by (output started at /includes/classes/email.php:61) in /includes/functions/general.php on line 45"



Plik general.php jego fragment:

  1. // Get the installed version number
  2. function tep_get_version() {
  3. static $v;
  4.  
  5. if (!isset($v)) {
  6. $v = trim(implode('', file(DIR_FS_CATALOG . 'includes/version.php')));
  7. }
  8.  
  9. return $v;
  10. }
  11.  
  12. ////
  13. // Stop from parsing any further PHP code
  14. function tep_exit() {
  15. tep_session_close();
  16. exit();
  17. }
  18.  
  19. ////
  20. // Redirect to another page or site
  21. function tep_redirect($url) {
  22. if ( (strstr($url, "\n") != false) || (strstr($url, "\r") != false) ) {
  23. tep_redirect(tep_href_link(FILENAME_DEFAULT, '', 'NONSSL', false));
  24. }
  25.  
  26. if ( (ENABLE_SSL == true) && (getenv('HTTPS') == 'on') ) { // We are loading an SSL page
  27. if (substr($url, 0, strlen(HTTP_SERVER)) == HTTP_SERVER) { // NONSSL url
  28. $url = HTTPS_SERVER . substr($url, strlen(HTTP_SERVER)); // Change it to SSL
  29. }
  30. }
  31.  
  32. header('Location: ' . $url);
  33.  
  34. tep_exit();
  35. }
  36.  
  37. ////
  38. // Parse the data used in the html tags to ensure the tags will not break
  39. function tep_parse_input_field_data($data, $parse) {
  40. return strtr(trim($data), $parse);
  41. }
  42.  
  43. function tep_output_string($string, $translate = false, $protected = false) {
  44. if ($protected == true) {
  45. return htmlspecialchars($string);
  46. } else {
  47. if ($translate == false) {
  48. return tep_parse_input_field_data($string, array('"' => '"'));
  49. } else {
  50. return tep_parse_input_field_data($string, $translate);
  51. }
  52. }
  53. }


Linijka 45 to :
" header('Location: ' . $url); "

Dodam jeszcze ,że ten sam tekst (dane sklepu) które są wysyłane meilem i źle się wyświetlają w meilu dobrze wyświetlają się na stronie.

Doradźcie coś, albo powiedzcie czego spróbować , moim zdaniem trzeba gdzieś narzucić kodowanie meilom ale nie wiem gdzie.Aha próbowałem też wpisać iso-8859-2 i wyskakuje ten sam błąd.Z tym ,że po zmianie z CHARSET na iso... lub utf... wysyła meile ze znakami zapytania a jak jest CHARSET to wysyła z różnymi znaczkami zamiast polski liter.


Pozdrawiam

Czy ktoś ma pomysł co z tym zrobić?
Darti
poszukaj pliku
Kod
[admin/]includes/languages/<twoj_jezyk>.php
a tam ustawienia CHARSET, w email.php zmień na to co było oryginalnie
PiterEL
Ja mam podobny problem... Tzn na stronie sklepu polskie litery sa ok, w tresci maila wysylanego ze sklepu litery tez sa ok jednak tylko w Temacie Maila nie ma polskich znakow... Co jest grane ? Tak samo jesli w nazwie sklepu mam polskie znaki to jak dostaje maila ze sklepu to tez w polu OD sa krzaczki zamiast polskich liter. Kotowanie bazy danych mam UTF-8 unicode ci , w pliku includes/language/polisch mam CHARSET UTF-8. Nie wiem co dalej zrobic.... Prosze o pomoc...

BERTON11 czy poradziles sobie z tym problem ?
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.