Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Brak polskich znaków
Forum PHP.pl > Forum > Przedszkole
pimek
Witam

Mam formularz kontaktowy ale nie wysyła polskich znaków. Proszę o pomoc.

  1. <?php
  2. // sprawdzamy, czy zmienna $submit jest pusta
  3. if (empty($_POST['submit'])) {
  4. // wyświetlamy formularz
  5. echo "<table border=\"0\"><form method=\"post\">
  6. <tr>
  7. <td>Treść wiadomości</td>
  8. <td><textarea name=\"tresc\" style=\"width: 250px; height: 100px\"></textarea></td>
  9. </tr>
  10. <tr>
  11. <td>Imię, nazwisko lub nick</td>
  12. <td><input type=\"text\" name=\"imie\" style=\"width: 250px\"></td>
  13. </tr>
  14. <tr>
  15. <td>Adres e-mail</td>
  16. <td><input type=\"text\" name=\"email\" style=\"width: 250px\"></td>
  17. </tr>
  18. <tr>
  19. <td>&nbsp;</td>
  20. <td><input type=\"submit\" name=\"submit\" value=\"Wyślij\">&nbsp;
  21. <input type=\"reset\" value=\"Od nowa\"></td></form>
  22. </tr>
  23. </table>";
  24. }
  25. // sprawdzamy, czy zmienne przesłane z formularza nie są puste
  26. elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) {
  27.  
  28.  
  29.  
  30. // jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
  31. // zmienna $message zawiera treść wiadomości
  32. $message = "Treść wiadomości:\n$_POST[tresc]\nWysłał: $_POST[imie]\ne-mail: $_POST[email]";
  33.  
  34.  
  35. // zmienna $header zawiera przede wszystkim adres zwrotny
  36. $header = "From: $_POST[imie] <$_POST[email]>";
  37.  
  38. // funkcja mail() za pomocą której wiadomość zostanie wysłana
  39. @mail("admin@pasja-exploracja.pl","Wiadomosc ze strony WWW","$message","$header")
  40. or die('Nie udało się wysłać wiadomości');
  41.  
  42. // wyświetlenie komunikatu w przypadku powodzenia
  43. echo "<div align=\"center\"><strong>Wiadomość została wysłana poprawnie!</strong></div>";
  44. }
  45. // lub w przypadku nie wypełnienia formularza do końca
  46. else echo "<span style=\"color: #FF0000; text-align: center;\">Wypełnij wszystkie pola formularza!</span>";
  47.  
  48. ?>


neuroine
Proponowałbym
<? header("Content-Type: text/html; charset=UTF-8"); na początek i oczywiście zapisać plik również w utf-8.
maxil
jaki masz ustawiony charset?

bo na przykład dla utf8 jest znak ą,
a dla ISO-8859-2 jest znak ±
pimek
Niestety zależy mi aby było to w iso bo strona jest połączona z innymi w iso. Da radę tak zrobić ?


Pozdrawiam
neuroine
<? header("Content-Type: text/html; charset=ISO-8859-2"); na początek i oczywiście zapisać plik również w ISO-8859-2.
i po problemie .

pimek
Dzięki ale dalej nie mam PL znaków. Może to wina poczty na własnej domenie ? RundCube.

Oto kod po modyfikacji:

Kod
<?php
header("Content-Type: text/html; charset=ISO-8859-2");
// sprawdzamy, czy zmienna $submit jest pusta
if (empty($_POST['submit'])) {
    // wyświetlamy formularz
    echo "<table border=\"0\"><form method=\"post\">
<tr>
<td>Treść wiadomości</td>
<td><textarea name=\"tresc\" style=\"width: 250px; height: 100px\"></textarea></td>
</tr>
<tr>
<td>Imię, nazwisko lub nick</td>
<td><input type=\"text\" name=\"imie\" style=\"width: 250px\"></td>
</tr>
<tr>
<td>Adres e-mail</td>
<td><input type=\"text\" name=\"email\" style=\"width: 250px\"></td>
</tr>
<tr>
<td> </td>
<td><input type=\"submit\" name=\"submit\" value=\"Wyślij\"> 
<input type=\"reset\" value=\"Od nowa\"></td></form>
</tr>
</table>";
}


// sprawdzamy, czy zmienne przesłane z formularza nie są puste
elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) {


    
    // jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
    // zmienna $message zawiera treść wiadomości
    $message = "Treść wiadomości:\n$_POST[tresc]\nWysłał: $_POST[imie]\ne-mail: $_POST[email]";

    
        // zmienna $header zawiera przede wszystkim adres zwrotny
    $header = "From: $_POST[imie] <$_POST[email]>";
    
        // funkcja mail() za pomocą której wiadomość zostanie wysłana
    @mail("admin@pasja-exploracja.pl","Wiadomosc ze strony WWW","$message","$header")
    or die('Nie udało się wysłać wiadomości');
  
     // wyświetlenie komunikatu w przypadku powodzenia
    echo "<div align=\"center\"><strong>Wiadomość została wysłana poprawnie!</strong></div>";
}
// lub w przypadku nie wypełnienia formularza do końca
else echo "<span style=\"color: #FF0000; text-align: center;\">Wypełnij wszystkie pola formularza!</span>";

?>
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.