Polski znaki w formularzu


(Michal Nowak99) #1

Witam

 

Mam formularz kontaktowy który działa bardzo dobrze lecz ma jedną duża wadę, a mianowicie wiadomość przychodzi bez polskich znaków. Bardzo zależy mi żeby rozwiązać mój problem ale nie mam pojęcia jak dlatego liczę na Waszą pomoc :frowning:

 

Oto fragment Mojego kodu:

<?php
} else {
    //twoje dane
    $email = 'Mój e-mail';
    
    //dane z formularza
    $formName = $_POST['formName'];
    $formEmail = $_POST['formEmail'];
		$formTopic = $_POST['formName'];
		$formText = $_POST['formText'];
	
    
    if(!empty($formName) && !empty($formEmail) && !empty($formTopic) && !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 = " $formText\n\n $formName, $formEmail\n($ip)\n ";
         
          //adres zwrotny
          $mailHeader = "From: $formName <$formEmail>";
         
          //funkcja odpowiedzialna za wysĹ?anie e-maila
          @mail($email, '[Zapytanie]', $mailText, $mailHeader) or die('<font size="5" style="color: #490b2b;"> <br /> <br /> <br /> Bł±d: wiadomo¶ć nie została wysłana </font>');
         
          //komunikat o poprawnym wysĹ?aniu wiadomoĹ?ci
          echo '<font size="5" style="color: #490b2b;"> <br /> <br /> <br /> Wiadomo¶ć została wysłana <br /> <b> Dziękujemy </b> </font>';
        } else {
            echo '<font size="5" style="color: #490b2b;"> <br /> <br /> <br /> Adres e-mail <br /> jest <br /> <b> niepoprawny </b> </font>';
        }
    }
    else {
      //komunikat w przypadku nie powodzenia
      echo '<font size="5" style="color: #490b2b;"> <br /> <br /> <br /> Wypełnij wszystkie pola formularza </font>';
    }
}
?>

Pozdrawiam Michał 

 


(Jim1961) #2

Spróbuj z takimi nagłówkami:

$mailHeader = "From: $formName <$formEmail>\n".
"Content-type: text/plain; charset=utf-8\r\n";

(slepciu) #3

Sprawdź kodowanie pliku, w którym jest zapisany skrypt


(rycerz2000) #4

Tak jak piszą przedmówcy to sprawa kodowania znaków w pliku. Kodowanie można ustawić w edytorze w którym piszesz lub przez dodanie odpowiedniej linijki na początku pliku.