Formularz email - brak polskich znaków


(Brossi1) #1

Mam oto taki formularz kontaktowy działa idealnie poza wysyłanie polskich znaków(krzaczki). Co mam zrobić żeby polskie znaki się wyświetlały?

<?php
} else {
    //twoje dane
    $email = 'brossi1@o2.pl';
    
    //dane z formularza
    $formName = $_POST['formName'];
    $formEmail = $_POST['formEmail'];
    $formText = $_POST['formText'];
    
    if(!empty($formName) && !empty($formEmail) && !empty($formText)) {
        //--- początek funkcji weryfikującej adres e-mail ---
        function checkMail($checkmail) {
          if(filter_var($checkmail, FILTER_VALIDATE_EMAIL)) {
            if(checkdnsrr(array_pop(explode("@",$checkmail)),"MX")){
                return true;
              }else{
                return false;
              }
          } else {
            return false;
          }
        }
        //--- koniec funkcji ---
        
        if(checkMail($formEmail)) {
          //dodatkowe informacje: ip i host użytkownika
          $ip = $_SERVER['REMOTE_ADDR'];
          $host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
          $protocol = strpos(strtolower($_SERVER['SERVER_PROTOCOL']),'https') 
                        === FALSE ? 'http' : 'https';
            $host = $_SERVER['HTTP_HOST'];
            $script = $_SERVER['SCRIPT_NAME'];
            $params = $_SERVER['QUERY_STRING'];
			
             
            $currentUrl = $protocol . '://' . $host . $script . '?' . $params;
         
          //tworzymy szkielet wiadomości
          //treść wiadomości
          $mailText = "Treść wiadomości:/n$formText/nOd: $formName, $formEmail ($ip, $host)/nLink: $currentUrl";
         
          //adres zwrotny
          $mailHeader = "From: $formName <$formEmail>";
         
          //funkcja odpowiedzialna za wysłanie e-maila
          @mail($email, '[Zapytanie]', $mailText, $mailHeader) or die('Błąd: wiadomość nie została wysłana');
         
          //komunikat o poprawnym wysłaniu wiadomości
          echo 'Wiadomość została wysłana';
        } else {
            echo 'Adres e-mail jest niepoprawny';
        }
    }
    else {
      //komunikat w przypadku nie powodzenia
      echo 'Wypełnij wszystkie pola formularza';
    }
}
?>

(Grzesie K) #2

Próbowałeś dodać do nagłówka informacje o kodowaniu znaków?


(Brossi1) #3

Tak próbowałem i nic to nie daje


(jacko1998) #4

A jak próbowałeś ?


(Jim1961) #5

Spróbuj coś takiego:

$mainHeader = "From: $formName <$formEmail>\r\n".
    "Reply-To: $formName <$formEmail>\r\n".
    "Content-type: text/plain; charset=utf-8\r\n".
    "MIME-Version: 1.0";