Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Kodowanie UTF-8
Forum PHP.pl > Forum > Przedszkole
menol8
cześć wszystkim, powiedzcie mi taką rzecz..jest formularz do wysyłki na stronie napisany w php, strona jest kodowana w UTF-8, wysyłana wiadomość na poczcie przez www (o2) ma krzaczki zamiast polskich literek a ten sam mail odebrany przez np thunderbirda wyświetlany jest poprawnie. dlaczego? jak macie jakiś pomysł to piszcie bo mi się pomysły wyczerpały :/

odebrany mail z poczty przez www:
miÄ™ i Nazwisko: ajaj
Ulica: ddośćó
Miasto: doeośe
Województwo: łudxzs
Kod pocztowy: dedf rf
Kraj: Burundi
Telefon: 48999999999
Email: fdsfs(malpa)wdfp.pl
Data przyjazdu: 2011/06/9
Data wyjazdu: 2011/06/16
Ilość osób: 1
Uwagi: kjfoewj eojśssśćęęę

  1. <?php
  2. treść skrypyu...
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  5. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  6. <head>
  7. <title></title>
  8. <meta http-equiv="Content-Style-Type" content="text/css" />
  9. <meta http-equiv="Content-Type" content="text/html charset=utf-8" />
  10. <meta http-equiv="Content-Language" content="pl" />
  11. <link rel="stylesheet" type="text/css" href="view.css" media="all">
  12. <link href="style.css" type="text/css" rel="stylesheet" />
  13. <script src="rollover.js" type="text/javascript"></script>
  14. <script type="text/javascript"> </script>
  15. <script type="text/javascript" src="view.js"></script>
  16. <script type="text/javascript" src="calendar.js"></script>
  17.  
  18. </head>
  19. ...
  20. <div class="form_description">
  21. <?php
  22. if(strlen($errorMessage) > 0)
  23. {
  24. print("<div id='errorMessageArea'><span>".$errorMessage."</span></div>");
  25. }
  26. if(strlen($mailSendingMessage) > 0)
  27. {
  28. print("<div id='mailSendingMessageArea'><span>".$mailSendingMessage."</span></div>");
  29. }
  30. ?>
  31. </div>
  32. <ul >
  33. <li id="li_1" >
  34. <label class="description" for="nick">Imię i Nazwisko </label>
  35. <span>
  36. <input id="nick" name= "nick" class="element text medium" maxlength="255" size="35" value="<?php print($name)?>"/>
  37. </span>
  38. </li> <li id="li_2" >
  39. <label class="description" for="adres">Adres </label>
  40.  
  41. <div>
  42. <input id="adres" name="adres" class="element text medium" value="<?php print($street)?>" type="text">
  43. <label for="ulica">Ulica</label>
  44. </div>
  45.  
  46. <div class="left">
  47. <input id="miasto" name="miasto" class="element text medium" value="<?php print($city)?>" type="text">
  48. <label for="miasto">Miasto</label>
  49. </div>
  50.  
  51. <div class="right">
  52. <input id="woj" name="woj" class="element text medium" value="<?php print($voi)?>" type="text">
  53. <label for="woj">Województwo</label>
  54. </div>
  55.  
  56. <div class="left">
  57. <input id="kod" name="kod" class="element text medium" maxlength="15" value="<?php print($postcode)?>" type="text">
  58. <label for="kod">Kod pocztowy</label>
  59. </div>
  60. ...
  61. <li id="li_3" >
  62. <label class="description" for="tel">Telefon </label>
  63. <span>
  64. <input id="tel" name="tel" class="element text" size="15" maxlength="15" value="<?php print($tel)?>" type="text">
  65. <label for="tel">(+kierunkowy)</label>
  66. </span>
  67. </li> <li id="li_4" >
  68. <label class="description" for="mail">Email </label>
  69. <div>
  70. <input id="mail" name="mail" class="element text medium" type="text" maxlength="255" value="<?php print($email)?>"/>
  71. </div>
  72. </li> <li id="li_5" >
  73. <label class="description" for="element_5">Data przyjazdu </label>
  74. <span>
  75. <input id="element_5_1" name="element_5_1" class="element text" size="2" maxlength="2" value="<?php print($fromMonth)?>" type="text"> /
  76. <label for="element_5_1">MM</label>
  77. </span>
  78. <span>
  79. <input id="element_5_2" name="element_5_2" class="element text" size="2" maxlength="2" value="<?php print($fromDay)?>" type="text"> /
  80. <label for="element_5_2">DD</label>
  81. </span>
  82. <span>
  83. <input id="element_5_3" name="element_5_3" class="element text" size="4" maxlength="4" value="<?php print($fromYear)?>" type="text">
  84. <label for="element_5_3">YYYY</label>
  85. </span>
  86.  
  87. <span id="calendar_5">
  88. <img id="cal_img_5" class="datepicker" src="images/calendar.gif" alt="Pick a date.">
  89. </span>
  90. <script type="text/javascript">
  91. Calendar.setup({
  92. inputField : "element_5_3",
  93. baseField : "element_5",
  94. displayArea : "calendar_5",
  95. button : "cal_img_5",
  96. ifFormat : "%B %e, %Y",
  97. onSelect : selectDate
  98. });
  99. </script>
  100.  
  101. </li> <li id="li_6" >
  102. <label class="description" for="element_6">Data wyjazdu </label>
  103. <span>
  104. <input id="element_6_1" name="element_6_1" class="element text" size="2" maxlength="2" value="<?php print($toMonth)?>" type="text"> /
  105. <label for="element_6_1">MM</label>
  106. </span>
  107. <span>
  108. <input id="element_6_2" name="element_6_2" class="element text" size="2" maxlength="2" value="<?php print($toDay)?>" type="text"> /
  109. <label for="element_6_2">DD</label>
  110. </span>
  111. <span>
  112. <input id="element_6_3" name="element_6_3" class="element text" size="4" maxlength="4" value="<?php print($toYear)?>" type="text">
  113. <label for="element_6_3">YYYY</label>
  114. </span>
  115.  
  116. <span id="calendar_6">
  117. <img id="cal_img_6" class="datepicker" src="images/calendar.gif" alt="Pick a date.">
  118. </span>
  119. <script type="text/javascript">
  120. Calendar.setup({
  121. inputField : "element_6_3",
  122. baseField : "element_6",
  123. displayArea : "calendar_6",
  124. button : "cal_img_6",
  125. ifFormat : "%B %e, %Y",
  126. onSelect : selectDate
  127. });
  128. </script>
  129.  
  130. </li> <li id="li_7" >
  131. <label class="description" for="ileos">Liczba osób </label>
  132. <div>
  133. <input id="ileos" name="ileos" class="element text small" type="text" maxlength="255" value="<?php print($peopleCount)?>"/>
  134. </div>
  135. </li> <li id="li_8" >
  136. <label class="description" for="uwagi">Uwagi dotyczące rezerwacji </label>
  137. <div>
  138. <textarea id="uwagi" name="uwagi" class="element textarea medium" value=""><?php print($remark)?></textarea>
  139. </div>
  140. </li>
  141.  
  142. <li class="buttons">
  143. <input type="hidden" name="form_id" value="170219" />
  144.  
  145. <input id="saveForm" class="button_text" type="submit" name="submit" value="Wyślij" />
  146. </li>
  147. </ul>
  148. </form>
  149. </div>
  150. ...


nie mogę wkleić całego skryptu więc jak potrzeba to podeśle plik na maila:/ proszę o pomoc bo nie mam już pomysłów

Pozdrawiam
Marcin
Hpsi
a kodowanie ustawiłeś w mailu na utf8 ?
menol8
Zabiłeś mnie pytaniem.. nie potrafię Ci odpowiedzieć ale wklejam treść skryptu php zerknij proszę. Myślałem, ze wystarczy ustawić kodowanie w <META>

  1. <?php
  2. //funkcje pomocnicze
  3. function AddNewLineIfNecessary( $text )
  4. {
  5. $newLine = '<br />';
  6. if(strlen($text) > 0)
  7. {
  8. $text .= $newLine;
  9. }
  10. return $text;
  11. }
  12. $name = "";//imię i nazwisko
  13. $street = "";//ulica
  14. $city = "";//miasto
  15. $voi = "";//województwo
  16. $postcode = "";//kod pocztowy
  17. $country = "";//kraj
  18. $tel = "";//telefon
  19. $email = "";//email
  20. $peopleCount = "";//ilość osób
  21. $remark = "";//uwagi
  22. $fromDay = "";//dzień przyjazdu
  23. $fromMonth = "";//miesiąc przyjazdu
  24. $fromYear = "";//rok przyjazdu
  25. $toDay = "";//dzień odjazdu
  26. $toMonth = "";//miesiąc odjazdu
  27. $toYear = "";//rok odjazdu
  28.  
  29. $errorMessage = "";
  30. $mailSendingMessage = "";
  31.  
  32. //wykonaj tylko w przypadku gdy został wciśnięty przycisk wysyłający formularz
  33. if (isset($_POST["submit"]))
  34. {
  35. //1. Pobierz dane z formularza
  36. $name = $_POST["nick"];
  37. $street = $_POST["adres"];
  38. $city = $_POST["miasto"];
  39. $voi = $_POST["woj"];
  40. $postcode = $_POST["kod"];
  41. $country = $_POST["kraj"];
  42. $tel = $_POST["tel"];
  43. $email = $_POST["mail"];
  44. $peopleCount = $_POST["ileos"];
  45. $remark = $_POST["uwagi"];
  46. $fromDay = $_POST["element_5_2"];//dzień przyjazdu
  47. $fromMonth = $_POST["element_5_1"];//miesiąc przyjazdu
  48. $fromYear = $_POST["element_5_3"];//rok przyjazdu
  49. $toDay = $_POST["element_6_2"];//dzień wyjazdu
  50. $toMonth = $_POST["element_6_1"];//miesiąc wyjazdu
  51. $toYear = $_POST["element_6_3"];//rok wyjazdu
  52.  
  53. //2. Sprawdź poprawność danych
  54. if(strlen($name) < 1)
  55. {
  56. $errorMessage .= "Proszę podać imię i nazwisko";
  57. }
  58. if(strlen($street) < 1)
  59. {
  60. $errorMessage = AddNewLineIfNecessary($errorMessage);
  61. $errorMessage .= "Proszę podać ulicę";
  62. }
  63. if(strlen($city) < 1)
  64. {
  65. $errorMessage = AddNewLineIfNecessary($errorMessage);
  66. $errorMessage .= "Proszę podać miejscowość";
  67. }
  68. if(strlen($voi) < 1)
  69. {
  70. $errorMessage = AddNewLineIfNecessary($errorMessage);
  71. $errorMessage .= "Proszę podać województwo";
  72. }
  73. if(strlen($postcode) < 1)
  74. {
  75. $errorMessage = AddNewLineIfNecessary($errorMessage);
  76. $errorMessage .= "Proszę podać kod pocztowy";
  77. }
  78. if(strlen($country) < 1)
  79. {
  80. $errorMessage = AddNewLineIfNecessary($errorMessage);
  81. $errorMessage .= "Proszę wybrać kraj";
  82. }
  83. if(strlen($tel) < 1)
  84. {
  85. $errorMessage = AddNewLineIfNecessary($errorMessage);
  86. $errorMessage .= "Proszę podać numer telefonu";
  87. }
  88. if(strlen($email) < 1)
  89. {
  90. $errorMessage = AddNewLineIfNecessary($errorMessage);
  91. $errorMessage .= "Proszę podać adres email";
  92. }
  93. else
  94. {
  95. $pattern = "/^([a-zA-Z0-9])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+/";
  96. if(preg_match($pattern, $email) == 0)
  97. {
  98. $errorMessage = AddNewLineIfNecessary($errorMessage);
  99. $errorMessage .= "Niepoprawny format adresu email";
  100. }
  101. }
  102. if(strlen($fromDay) < 1 || strlen($fromMonth) < 1 || strlen($fromYear) < 1)
  103. {
  104. $errorMessage = AddNewLineIfNecessary($errorMessage);
  105. $errorMessage .= "Proszę podać datę przyjazdu";
  106. }
  107. else
  108. {
  109. if(!checkdate ( $fromMonth , $fromDay , $fromYear ))
  110. {
  111. $errorMessage = AddNewLineIfNecessary($errorMessage);
  112. $errorMessage .= "Niepoprawny format daty przyjazdu";
  113. }
  114. else
  115. {
  116. $now = strtotime(date("Y/m/d"));
  117. $fromDate = strtotime($fromYear."/".$fromMonth."/".$fromDay);
  118. if($fromDate < $now)
  119. {
  120. $errorMessage = AddNewLineIfNecessary($errorMessage);
  121. $errorMessage .= "Data przyjazdu już minęła";
  122. }
  123. }
  124. }
  125. if(strlen($toDay) < 1 || strlen($toMonth) < 1 || strlen($toYear) < 1)
  126. {
  127. $errorMessage = AddNewLineIfNecessary($errorMessage);
  128. $errorMessage .= "Proszę podać datę wyjazdu";
  129. }
  130. else
  131. {
  132. if(!checkdate ( $toMonth , $toDay , $toYear ))
  133. {
  134. $errorMessage = AddNewLineIfNecessary($errorMessage);
  135. $errorMessage .= "Niepoprawny format daty wyjazdu";
  136. }
  137. else
  138. {
  139. $now = strtotime(date("Y/m/d"));
  140. $toDate = strtotime($toYear."/".$toMonth."/".$toDay);
  141. if($toDate < $now)
  142. {
  143. $errorMessage = AddNewLineIfNecessary($errorMessage);
  144. $errorMessage .= "Data wyjazdu już minęła";
  145. }
  146. else
  147. {
  148. $fromDate = strtotime($fromYear."/".$fromMonth."/".$fromDay);
  149. if($fromDate > $toDate)
  150. {
  151. $errorMessage = AddNewLineIfNecessary($errorMessage);
  152. $errorMessage .= "Data wyjazdu nie może być wcześniejsza niż data przyjazdu";
  153. }
  154. }
  155. }
  156. }
  157. if(strlen($peopleCount) < 1)
  158. {
  159. $errorMessage = AddNewLineIfNecessary($errorMessage);
  160. $errorMessage .= "Proszę podać ilość osób";
  161. }
  162. else
  163. {
  164. if(!is_numeric($peopleCount))
  165. {
  166. $errorMessage = AddNewLineIfNecessary($errorMessage);
  167. $errorMessage .= "Ilość osób musi być wartością numeryczną";
  168. }
  169. }
  170.  
  171. //3. Jeśli wszystko ok to wyślij maila
  172. if(strlen($errorMessage) == 0)
  173. {
  174. $title = "Rezerwacja";
  175. $to = "sloneczny@o2.pl";
  176. $fromDate = $fromYear."/".$fromMonth."/".$fromDay;
  177. $toDate = $toYear."/".$toMonth."/".$toDay;
  178. $body =
  179. "Imię i Nazwisko: ".$name."
  180. Ulica: ".$street."
  181. Miasto: ".$city."
  182. Województwo: ".$voi."
  183. Kod pocztowy: ".$postcode."
  184. Kraj: ".$country."
  185. Telefon: ".$tel."
  186. Email: ".$email."
  187. Data przyjazdu: ".$fromDate."
  188. Data wyjazdu: ".$toDate."
  189. Ilość osób: ".$peopleCount."
  190. Uwagi: ".$remark;
  191.  
  192. if(!mail($to, $title, $body))
  193. {
  194. $errorMessage = "Wystąpił problem z wysłaniem wiadomości<br />
  195. Proszę spróbować ponownie lub dokonać rezerwacji telefonicznie.";
  196. }
  197. else
  198. {
  199. $mailSendingMessage = "Dziękujemy za dokonanie rezerwacji.";
  200. }
  201. }
  202. }
  203. ?>
  204.  
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.