Pomoc w poprawie kodu php

Witam.

Mam taki prosty kod php, który służy do wyświetlania formularza kontaktowego na www. Wszystko działa, ale jest jeden problem. Chodzi o kodowanie polskich znaków. Pojawiają się krzaczki. Kiedy dodam sekcję meta, wiadomości są OK, zero krzaczków, ale pojawia się błąd na stronie:

Warning: Cannot modify header information - headers already sent by (output started at /homez.111/zapaleni/www/wyslij.php:5) in /homez.111/zapaleni/www/wyslij.php on line 11

<?php

if (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) {

    $message = "Treść wiadomości:\n$_POST[tresc]\nWysłał: $_POST[imie]\ne-mail: $_POST[email]";

    $header = "From: $_POST[imie] <$_POST[email]>";

    @mail("xxx@gmail.com","Wiadomosc ze strony xxx.pl","$message","$header")

    or die('Nie udało się wysłać wiadomości');

   header('location:http://xxx.pl');

}

else echo "Wypełnij wszystkie pola formularza!";

?>
[/code]

Możecie pomóc mi poprawić ten kod?

Komunikat wyraźnie mówi że próbujesz ponownie wysłać nagłówek gdy jest on już wysłany co jest niemożliwe, pewnie includujesz plik wyślij.php w innym pliku php który już zawiera nagłówek.

Najprostsze rozwiązanie: usuń nagłówek z pliku wyślij.php i ustaw poprawny charset w nagłówku w pliku w którym includujesz ten plik.

Bardziej zaawansowane rozwiązanie: oprócz powyższego dodaj do pliku wyślij.php sprawdzanie czy nagłówek został już wysłany i wysyłanie nowego nagłówka zawierającego charset tylko gdy nagłówek nie był wysłany.

Opis jak to zrobić znajdziesz w manualu do php.

wysyłaj najpierw nagłówki, potem kod strony

Możliwe, że zapisujesz plik w formacie UTF-8 z tzw. BOM. W Notepad++ da się edytować tryb kodowania i zapisać jako UTF-8 bez BOM, co spowoduje, że nie będzie problemów ze znakami zapisanymi jako UTF-8 (które pewnie masz, dlatego z tym masz “krzaczki”).

Ewentualnie, możesz prawidłowo zakodować swoje znaki w ISO-8859-2, tak jak deklarujesz. Najnowsza wersja Notepad++ chyba też już ma taką możliwość.

Sztuczka z kodowaniem w Notepad++ podziałała. Kiedyś już jej używałem, ale o tym zapomniałem :stuck_out_tongue: Dzięki za rady.