Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]brak polskich znaków w wiadomości ze strony www
Forum PHP.pl > Forum > Przedszkole
djarkadius
Witam

Rozpoczynam moją przygodę z tworzeniem stron www. Napotkałem niedawno na problem dotyczący braku polskich znaków w wiadomości z mojej strony. Tak wygląda mój plik php
  1. <?php
  2. $subject = "Wiadomość ze strony xxx";
  3. if (isset($_POST['name']))
  4. $message = "Imię i nazwisko: ".$_POST['name'].".";
  5.  
  6. if (isset($_POST['temat']))
  7. $message .= "Temat pytania: ".$_POST['temat'].".";
  8.  
  9. if (isset($_POST['telefon']))
  10. $message .= "Telefon: ".$_POST['telefon'].".";
  11.  
  12. if (isset($_POST['mail']))
  13. $message .= "Adres e-mail: ".$_POST['mail'].".";
  14.  
  15. if (isset($_POST['ask']))
  16. $message .= "Treść pytania: ".$_POST['ask'].".";
  17.  
  18. $mail= "xxx@xxx.pl";
  19. if (mail($mail, $subject, $message))
  20. echo true;
  21.  
  22. ?>


a tak skrypt sprawdzający

[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>
  2. <script type="text/javascript">
  3. $(document).ready(function(){
  4. $('form').submit(function(){
  5. $('*').removeClass('err');
  6. z=0;
  7. if($('#telefon').val()==''){
  8. $('#telefon').addClass('err');
  9. alert('Nie podałeś telefonu');
  10. z++
  11. }
  12. if($('#mail').val()==''){
  13. $('#mail').addClass('err');
  14. alert('Nie podałeś adresu e-mail');
  15. z++
  16. }
  17. if($('#ask').val()==''){
  18. $('#ask').addClass('err');
  19. alert('Nie wpisałeś treści pytania');
  20. z++
  21. }
  22. if(z>0) return false;
  23. $.ajax({
  24. type:"POST",
  25. url:"sendemail.php",
  26. data:$(this).serialize(),
  27. dataType:"json",
  28. success:function(msg){
  29. if(msg==true) alert('Wiadomość wysłana!');
  30. }
  31. });
  32. return false;
  33. });
  34. });
  35. </script>
[JAVASCRIPT] pobierz, plaintext



a tak sam formularz

  1. <form method="post" action="">
  2. <label>Imię i nazwisko / Nazwa firmy</label>
  3. <input type="text" name="name" />
  4. <label>Temat pytania</label>
  5. <input type="text" name="temat" />
  6. <label>Telefon <span>*</span></label>
  7. <input type="text" name="telefon" id="telefon" />
  8. <label>Adres e-mail <span>*</span></label>
  9. <input type="text" name="mail" id="mail" />
  10. <label>Treść pytania <span>*</span></label>
  11. <textarea name="ask" rows="4" cols="1" id="ask" ></textarea>
  12. <input type="submit" value="WYŚLIJ" id="submit" />
  13. <input type="reset" value="RESET" id="reset" />
  14. </form>


kodowanie strony to utf-8
kodowanie pliku php zmieniałem na wszystkie opcje i nic (używam notepad++) - dalej to samo - pewnie trzeba zmodyfikować kod w pliku php ale nie mam pomysłu jak. Ma ktoś jakiś pomysłquestionmark.gif nie chce wymieniać tego formularza bo mi się podoba jego działanie
thek
Ustawienia kodowania w pliku i na stronie w przypadku maili to nie wszystko. Musisz w nagłówkach funkcji mail ustawić także kodowanie. W manualu masz je jako 3 parametr. Tam powinieneś ustawić kodowanie. W necie przykładów masz od zatrzęsienia, więc nie będę wyręczał Cię w tym.
modern-web
  1. <?php
  2. if (count($_POST))
  3. {
  4. ////////// USTAWIENIA //////////
  5. $email = 'adres e-mail gdzie wysłać formularz';
  6. $subject = 'temat';
  7. $message = 'Dziękujemy za wysłanie formularza';
  8. $error = 'Wystąpił błąd podczas wysyłania formularza';
  9. $charset = 'iso-8859-2';
  10. //////////////////////////////
  11.  
  12. $head =
  13. "MIME-Version: 1.0\r\n" .
  14. "Content-Type: text/plain; charset=$charset\r\n" .
  15. "Content-Transfer-Encoding: 8bit";
  16. $body = '';
  17. foreach ($_POST as $name => $value)
  18. {
  19. if (is_array($value))
  20. {
  21. for ($i = 0; $i < count($value); $i++)
  22. {
  23. $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n";
  24. }
  25. }
  26. else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n";
  27. }
  28. echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
  29. }
  30. else
  31. {
  32. ?>
  33. <form action="?" method="post">
  34.  
  35. Tutaj formularz...
  36.  
  37. </form>
  38. <?php
  39. }
  40. ?>



Gotowiec winksmiley.jpg
blooregard
@modern-web, nie dajemy gotowców, proszę na przyszłość nie wyręczać kogoś w myśleniu.
Zamykam, na forum były już takie tematy, wystarczy poszukać.
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.