проблем с енкодинг

root321

Registered
когато в някое поле има символи на кирилица, като изпратя съобщението до се появявава като неразчитаеми знаци

PHP:
<?php 
$contact_email = $_POST['EmailAddress']; 
$to = $_POST['DoEmail'];
$contact_message = $_POST['Message']; 
$mydate = date ('Y-m-d H:i:s'); 
$subject = "еpay.BG";
if(empty($to) || empty($contact_email) || empty($contact_message)) {
echo '<p>Използвайте тази контактна форма и натиснете <b>\'Изпрати\'</b>!</p> 
<form method="post"> 
<table id="Form-Details"> 
<tr><td>Email на приятел:</td><td><input type="text" name="DoEmail" size="20" /></td><br> 
<tr><td>Вашият е-mail:</td><td colspan="3"><input type="text" name="EmailAddress" size="20" /></td></tr><br> 
<td>Тема:</td><td><input type="text" name="Subject" size="20" /></td></tr> 
<tr><td colspan="4">Съобщение:</td></tr> 
<tr><td colspan="4"><textarea rows="6" name="Message" cols="47" class="input"></textarea></td></tr> 
<tr><td colspan="4" class="right1"><input type="submit" name="Send" value="Изпрати" /><input type="reset" value="Изчисти" /></td></tr> 
</table> 
</form>'; 
}else { 
$message = ""


."<b></b> $contact_message<br><br>" ; 

$headers = "From: $contact_email <$contact_email>\r\n" 
."Reply-To: $contact_email\r\n"
."Content-Type:text/html; charset=UTF-8 \r\n"
."X-Mailer: PHP/".phpversion(); 
mail( $to, $subject, $message, $headers ); 
echo "<h3>izprateno</h3>"; 
} 

?>
 
PHP:
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
<?php 
$contact_email = $_POST['EmailAddress']; 
$to = $_POST['DoEmail'];
$contact_message = $_POST['Message']; 
$mydate = date ('Y-m-d H:i:s'); 
$subject = "еpay.BG";
if(empty($to) || empty($contact_email) || empty($contact_message)) {
echo '<p>Използвайте тази контактна форма и натиснете <b>\'Изпрати\'</b>!</p> 
<form method="post"> 
<table id="Form-Details"> 
<tr><td>Email на приятел:</td><td><input type="text" name="DoEmail" size="20" /></td><br> 
<tr><td>Вашият е-mail:</td><td colspan="3"><input type="text" name="EmailAddress" size="20" /></td></tr><br> 
<td>Тема:</td><td><input type="text" name="Subject" size="20" /></td></tr> 
<tr><td colspan="4">Съобщение:</td></tr> 
<tr><td colspan="4"><textarea rows="6" name="Message" cols="47" class="input"></textarea></td></tr> 
<tr><td colspan="4" class="right1"><input type="submit" name="Send" value="Изпрати" /><input type="reset" value="Изчисти" /></td></tr> 
</table> 
</form>'; 
}else { 
$message = ""
."<b></b> $contact_message<br><br>" ; 
$headers = "From: $contact_email <$contact_email>\r\n" 
."Reply-To: $contact_email\r\n"
."Content-Type:text/html; charset=UTF-8 \r\n"
."X-Mailer: PHP/".phpversion(); 
mail( $to, $subject, $message, $headers ); 
echo "<h3>izprateno</h3>"; 
} 
?>

Така ?
 
Така? :idea:
PHP:
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
<?php 
$contact_email = $_POST['EmailAddress']; 
$to = $_POST['DoEmail'];
$contact_message = $_POST['Message']; 
$mydate = date ('Y-m-d H:i:s'); 
$subject = "еpay.BG";
if(empty($to) || empty($contact_email) || empty($contact_message)) {
echo '<p>Използвайте тази контактна форма и натиснете <b>\'Изпрати\'</b>!</p> 
<form method="post"> 
<table id="Form-Details"> 
<tr><td>Email на приятел:</td><td><input type="text" name="DoEmail" size="20" /></td><br> 
<tr><td>Вашият е-mail:</td><td colspan="3"><input type="text" name="EmailAddress" size="20" /></td></tr><br> 
<td>Тема:</td><td><input type="text" name="Subject" size="20" /></td></tr> 
<tr><td colspan="4">Съобщение:</td></tr> 
<tr><td colspan="4"><textarea rows="6" name="Message" cols="47" class="input"></textarea></td></tr> 
<tr><td colspan="4" class="right1"><input type="submit" name="Send" value="Изпрати" /><input type="reset" value="Изчисти" /></td></tr> 
</table> 
</form>'; 
}else { 
$message = ""
."<b></b> $contact_message<br><br>" ; 
$headers = "From: $contact_email <$contact_email>\r\n" 
."Reply-To: $contact_email\r\n"
."Content-Type:text/html; charset=UTF8 \r\n"
."X-Mailer: PHP/".phpversion(); 
mail( $to, $subject, $message, $headers ); 
echo "<h3>izprateno</h3>"; 
} 
?>
 
на tedo96 стана, но искам да попитам още нещо.

Може ли да се направи да се изписва коректно моя мейл на кирилица ? сега ако си напиша моя на кирилица и хо изпратя не се появяват буквите които са на български
 
PHP:
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<?php 
$contact_email = $_POST['EmailAddress']; 
$to = $_POST['DoEmail'];
$contact_message = $_POST['Message']; 
$mydate = date ('Y-m-d H:i:s'); 
$subject = "еpay.BG";
if(empty($to) || empty($contact_email) || empty($contact_message)) {
echo '<p>Използвайте тази контактна форма и натиснете <b>\'Изпрати\'</b>!</p> 
<form method="post"> 
<table id="Form-Details"> 
<tr><td>Email на приятел:</td><td><input type="text" name="DoEmail" size="20" /></td><br> 
<tr><td>Вашият е-mail:</td><td colspan="3"><input type="text" name="EmailAddress" size="20" /></td></tr><br> 
<td>Тема:</td><td><input type="text" name="Subject" size="20" /></td></tr> 
<tr><td colspan="4">Съобщение:</td></tr> 
<tr><td colspan="4"><textarea rows="6" name="Message" cols="47" class="input"></textarea></td></tr> 
<tr><td colspan="4" class="right1"><input type="submit" name="Send" value="Изпрати" /><input type="reset" value="Изчисти" /></td></tr> 
</table> 
</form>'; 
}else { 
$message = ""
."<b></b> $contact_message<br><br>" ; 
$headers = "From: $contact_email <$contact_email>\r\n" 
."Reply-To: $contact_email\r\n"
."Content-Type:text/html; charset=UTF8 \r\n"
."X-Mailer: PHP/".phpversion(); 
mail( $to, $subject, $message, $headers ); 
echo "<h3>izprateno</h3>"; 
} 
?>
 
root321 каза:
не става

function mail_utf8($to, $subject = '(No subject)', $message = '', $header = '') {
$header_ = 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/plain; charset=UTF-8' . "\r\n";
mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header_ . $header);
}

пробвай така, да сетнеш майла да изпрати msg-to с utf-8 тоест добави

PHP:
$header_ = 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/plain; charset=UTF-8' . "\r\n";
 
не става, или поне както аз го направих...

къде по-точно трябва да седи този код ?
 
root321 каза:
не става, или поне както аз го направих...

къде по-точно трябва да седи този код ?
ако имаш вече хедър добави го с
$header.= 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/plain; charset=UTF-8' . "\r\n";

идеята е да сетнеш самото съобщение да е на утф8 тъй като както гледам отива на widows-1251
 

Back
Горе