Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]formularz kontaktowy - zmiana kodowania
Forum PHP.pl > Forum > Przedszkole
kidler
Witam. Mam taki formularz:
  1. <?php
  2. header('Content-type: text/html; charset=ISO-8859-2');
  3.  
  4. // sprawdzamy, czy zmienna $submit jest pusta
  5. if (empty($_POST['submit'])) {
  6. // wyświetlamy formularz
  7. echo " <table border="0"><form method="post">
  8. <tr>
  9. <td>Nick:</td>
  10. <td><input type="text" name="imie" style="width: 250px"></td>
  11. </tr>
  12. <tr>
  13. <td>Twój e-mail:</td>
  14. <td><input type="text" name="email" style="width: 250px"></td>
  15. </tr>
  16. <tr>
  17. <td>Tamat:</td>
  18. <td><select size="1" name="temat">
  19. <option>Problem</option>
  20. <option>Opinia</option>
  21. <option>Reklama</option>
  22. <option>Przypomnienie hasła</option>
  23. <option>Inne</option>
  24. </select></td>
  25. </tr>
  26. <tr>
  27. <td>Treść wiadomości:</td>
  28. <td><textarea name="tresc" style="width: 250px; height: 100px"  ></textarea></td>
  29. </tr>
  30. <tr>
  31. <td>&nbsp;</td>
  32. <td><input type="submit" name="submit" value="Wyślij">&nbsp;
  33. <input type="reset" value="Wyczyść"></td></form>
  34. </tr>
  35. </table>";
  36. }
  37. // sprawdzamy, czy zmienne przes?ane z formularza nie są puste
  38. elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['temat']) && !empty($_POST['email'])) {
  39. // je?eli powy?szy warunek jest spe?niony tworzona jest wiadomoś?
  40. // zmienna $message zawiera treś? wiadomości
  41. $message = "n$_POST[tresc]";
  42. // zmienna $header zawiera przede wszystkim adres zwrotny
  43. $header = "From: $_POST[imie] <$_POST[email]>";
  44. // funkcja mail() za pomocą której wiadomoś? zostanie wys?ana
  45. @mail("onet@onet.pl","$_POST[temat]","$message","$header")
  46. or die('Nie udało się wysłać wiadomości');
  47. // wyświetlenie komunikatu w przypadku powodzenia
  48. echo "<div align="center"><strong>Wiadomość została wysłana poprawnie!</strong></div>";
  49. }
  50. // lub w przypadku nie wypełnienia formularza do końca
  51. else echo "Wypełnij wszystkie pola formularza!";
  52.  
  53. ?>


Jak zrobić by formularz wysyłał treść w utf-8 a tekst an stronie wyświetlał się normalnie w ISO-8859-2? Z góry dzięki za odp.
LonelyKnight
Dodaj nagłówek do maila:

  1. <?php
  2. $header = "Content-Type: text/plain; charset=UTF-8n";
  3. ?>


więcej http://pl.php.net/manual/pl/ref.mail.php
kidler
To jest an samej górze ale jak zmienię tam na utf 8 to i wszystkie znaki na stronie będą w utf 8, a ja chcę żeby an stronie pozostały znaki w iso
LonelyKnight
Patrzyłeś chociaż na ten link, który podałem? smile.gif

Nie o ten header chodzi. Na górze zostaw tak jak masz a do maila dołącz taki jak podałem. W manualu masz przykłady. Szybciej będzie zerknąć niż pytać i czekać aż ktoś odp.
kidler
patrzyłem i tak zrobiłem:
  1. <?php
  2. // sprawdzamy, czy zmienne przes?ane z formularza nie są puste
  3. elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['temat']) && !empty($_POST['email'])) {
  4. // je?eli powy?szy warunek jest spe?niony tworzona jest wiadomoś?
  5. // zmienna $message zawiera treś? wiadomości
  6. $header = "Content-Type: text/plain; charset=UTF-8n";
  7. $message = "n$_POST[tresc]";
  8. // zmienna $header zawiera przede wszystkim adres zwrotny
  9. $header = "From: $_POST[imie] <$_POST[email]> ";
  10. // funkcja mail() za pomocą której wiadomoś? zostanie wys?ana
  11. @mail("redakcja@efotek.pl","$_POST[temat]","$message","$header")
  12. or die('Nie udało się wysłać wiadomości');
  13. // wyświetlenie komunikatu w przypadku powodzenia
  14. echo "<div align="center"><strong>Wiadomość została wysłana poprawnie!</strong></div>";
  15. }
  16. ?>
i nic nie pomaga
LonelyKnight
Nadpisujesz header, zamiast:

  1. <?php
  2. $header = "Content-Type: text/plain; charset=UTF-8n";
  3. $header = "From: $_POST[imie] <$_POST[email]> ";
  4. ?>


daj:

  1. <?php
  2. $header = "Content-Type: text/plain; charset=UTF-8n";
  3. $header .= "From: $_POST[imie] <$_POST[email]> ";
  4. ?>
kidler
nie pomogło
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.