[PHP] Polskie znaki w formularzu


(Mezir95) #1

Witam, mam pewien problem o tuż po odebraniu maila z formularza nie wyświetla mi polskich znaków, a nie wiem jak to zrobić. Mój kod wygląda tak:

<?php
	$owner_email = $_POST["owner_email"];
	$headers = 'From:' . $_POST["email"];
	$subject = 'Wiadomość od ' . $_POST["name"];
	$messageBody = "";
	
	if($_POST['name']!='nope'){
		$messageBody .= '<p>Pan/Pani: ' . $_POST["name"] . '</p>' . "\n";
		$messageBody .= '<br>' . "\n";
	}
	if($_POST['email']!='nope'){
		$messageBody .= '<p>Adres e-mail: ' . $_POST['email'] . '</p>' . "\n";
		$messageBody .= '<br>' . "\n";
	}else{
		$headers = '';
	}
	if($_POST['state']!='nope'){		
		$messageBody .= '<p>State: ' . $_POST['state'] . '</p>' . "\n";
		$messageBody .= '<br>' . "\n";
	}
	if($_POST['phone']!='nope'){		
		$messageBody .= '<p>Numer telefonu: ' . $_POST['phone'] . '</p>' . "\n";
		$messageBody .= '<br>' . "\n";
	}	
	if($_POST['fax']!='nope'){		
		$messageBody .= '<p>Fax Number: ' . $_POST['fax'] . '</p>' . "\n";
		$messageBody .= '<br>' . "\n";
	}
	if($_POST['message']!='nope'){
		$messageBody .= '<p>Wiadomość: ' . $_POST['message'] . '</p>' . "\n";
		$messageBody .= '<p>Wysłano z adresu IP: ' . $_SERVER['REMOTE_ADDR'] . '</p>' . "\n";
	}
	
	if($_POST["stripHTML"] == 'true'){
		$messageBody = strip_tags($messageBody);
	}
	
	try{
		if(!mail($owner_email, $subject, $messageBody, $headers)){
			throw new Exception('mail failed');
		}else{
			echo 'mail sent';
		}
	}catch(Exception $e){
		echo $e->getMessage() ."\n";
	}
?>

Powie mi ktoś jak zrobić, by te polski znaki były wyświetlane?

 

Pozdrawiam. :slight_smile:


(Grzelix) #2
$headers = 'From:' . $_POST ["email"].'\r\n';
$headers.= "Content-Type: text/plain;charset=utf-8\r\n";

Zakładając, że z formularza przychodzą ci polskie znaki.

Poszukaj rozwiązania w google’u. Temat był wałkowany chyba już z miliard razy.


(kop524) #3

Witaj może o to ci chodziło(lub coś takiego) ale zmień dekodowanie znakó na UTF-8: 

http://php.net/manual/en/function.mb-convert-encoding.php

LUB EW.

 

http://php.net/manual/en/function.mb-detect-encoding.php

 

PS. właśnie chciałem zacząć się uczyć PHP jaki kurs/ksziążkę/video polecacie?? ??


(Mezir95) #4

 

Niestety nie działa. Szukałem w google i kombinowałem lecz to nic nie dało, dlatego też napisałem ten temat. Ktoś potrafi mi pomóc?


(kop524) #5

A sprawdzałeś moje linki ??


(Mezir95) #6

Jednak sam rozwiązałem problem, używając:

$header = "Content-type: text/html; charset=utf-8\r\nFrom: $headers";

Pozdrawiam.