PDA

View Full Version : سوال: فوري مشکل با اینکدینگ



leghleghe
جمعه 23 مهر 1389, 17:49 عصر
با سلام خدمت اساتيد محترم
یه فرم برای ارسال نظر به ایمیل طراحی شده که یه فایل php اونو ارسال میکنه در زمان ارسال فونتهای فارسی که توی فایل mail.php هست (مثلا سوال: )در ایمیل به هم می ریزه در ضمن توی header پی اچ پی از فونت windows-1256 استفاده شده. چه طور میتونم این مشکل رو حل کنم.
اگه امکان داره سریعا جواب بدید.

funpatogh
جمعه 23 مهر 1389, 18:25 عصر
این یک مثال برای شما


<?php
if(isset($_POST['submit'])){
$send=mail($_POST['to'],$_POST['subject'],$_POST['message'],"From:<".$_POST['from'].">\r\n Mime-Version:1.0\r\n Content-Type:text/html; charset=utf-8");
if($send)
echo "Sened !";
else
echo "Not Send";
}

?>
<form method="post" >
to :<input type="text" name="to"><br>
from :<input type="text" name="from"><br>
subject <input type="text" name="subject"><br>
message: <textarea cols="10" rows="5" name="message"></textarea><br>
<input type="submit" name="submit" value="send">
</form>

binyaft
جمعه 23 مهر 1389, 19:06 عصر
$headers .= 'To:<me@gmail.com>' . "\r\n";
$headers .= 'From: <'.$mail.'>' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf8;' . "\r\n";
$headers .= "X-Mailer: PHP/".phpversion()."\n";
$headers .= "MIME-Version: 1.0\n";

$mail=mail('user@gmail.com','new mail',$text,$headers);
اگر متن درست نمایش داده نمیشه مربوط به هدر هاست

leghleghe
جمعه 23 مهر 1389, 20:21 عصر
mail.php من به اين شكله

<?
if(!isEMail($_POST['email']) || trim($_POST['name'])=='' || trim($_POST['country'])=='' || trim($_POST['city'])=='' || trim($_POST['age'])=='' || trim($_POST['subject'])=='' || trim($_POST['question'])==''){
header("Location: ".$_POST['missing_fields_redirect']);
}else{
$to=$_POST['recipient'];

$mailBody="
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"rtl\">
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1256\" />
</head>
<style>
a{
font: 11px tahoma;
color: black;
text-decoration: none;
}
a.hover{
color: red;
}

</style>
<body style='font: 11px tahoma; line-height: 25px;' dir='rtl'>
<center>
<br>
<br>
<div style=\"width: 90%; background-color: #EFEFEF; border: 1px solid silver; margin-bottom: 20px; margin-top: 20px; padding: 20px;\" align=\"right\">
<br>
<strong>ÇáÅÓã:</strong> ".$_POST['name']."<br>
<strong>ÇáÏæáÉ:</strong> ".$_POST['country']." - ".$_POST['city']."<br>
<strong>ÇáÚãÑ:</strong> ".$_POST['age']."<br>
<strong>ÇáÓÄÇá:</strong> <br>
<div style=\"padding: 10px; border: 1px solid silver; background-color: #FFFFFF;\">
".nl2br($_POST['question'])."
</div>
<br>
</div>
</center>
</body>
</html>
";

$headers='MIME-Version: 1.0'."\r\n";
$headers.='Content-type: text/html; charset=windows-1256'."\r\n";

$headers.= 'From: '.$_POST['email']."\r\n";

mail($to,$_POST['subject'],$mailBody,$headers);

header("Location: ".$_POST['redirect']);

}

function IsEMail($e){
if(eregi("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$", $e)) {
return true;
}
return false;
}

?>

و فرم من

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title></title></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<meta http-equiv="Content-Language" content="ar">
<meta Name="description" Content="تست">
<meta Name="keywords" Content="تست">
<meta name="updated" content="20030407">
</head>
<body style="DIRECTION: rtl; TEXT-ALIGN: justify" bgcolor="#E9F3FF">

<center>
<table bgcolor="#eeeeee" style="margin: 10 0 0 0; " cellpadding=0 cellspacing=0 width=350>
<tr><td bgcolor=#717c8f height="14px">
<img src="images/sect01.gif" align=left hspace="0" vspace="0"><b>&nbsp; <font color="White" face="Arial" style="font-size: 16px;">إكتب اقتراحك</font></b>
</td></tr>
<tr><td style="border: 1px ridge #717c8f; padding:5px 5px 5px 5px;">

<form method="post" action="http://www.alhaeri.org/mail.php">
<input type=hidden name="recipient" value="mymail@gmail.org">
<input type=hidden name="redirect" value="http://www.myname.org/redirect2.html">
<input type=hidden name="required" value="email">
<input type=hidden name="missing_fields_redirect" value="http://www.myname.org/missing-2.html">
<table style="font: 12px Tahoma;"><tr><td>
نام:</td><td>&nbsp; <input type="text" name="name" size="45" style="FONT: 11px Tahoma; COLOR: #000066"></td></tr><tr><td>
كشور:</td><td>&nbsp; <input type="text" name="country" size="45" style="FONT: 11px Tahoma; COLOR: #000066"></td></tr><tr><td>
شهر:</td><td>&nbsp; <input type="text" name="city" size="45" style="FONT: 11px Tahoma; COLOR: #000066"></td></tr><tr><td>
سن:</td><td>&nbsp; <input type="text" name="age" size="45" style="FONT: 11px Tahoma; COLOR: #000066"></td></tr><tr><td>
موضوع:</td><td>&nbsp; <input type="text" name="subject" size="45" style="FONT: 11px Tahoma; COLOR: #000066"></td></tr><tr><td>
<nobr>آدرس ایمیل:</nobr></td><td>&nbsp; <input type="text" name="email" size="45" style="FONT: 11px Tahoma; COLOR: #000066"></td></tr><tr><td style="vertical-align: top;">
متن:</td><td>

<textarea cols="45" rows="6" name="question" style="FONT: 11px Tahoma; COLOR: #000066"></textarea>

</td></tr></table>
</td></tr>
</table>
<input type="submit" name="Enter" value="إرسال" width="50" height="20" style="font: 12px Tahoma; color: black;">&nbsp; &nbsp; <input type="Reset" value="حـذف" width="50" height="20" style="font: 12px Tahoma; color: black;">
</form>
</center>
</body>
</html>

funpatogh
جمعه 23 مهر 1389, 20:50 عصر
فرمت رو با utf8 ذخیره کن
اینجا رو
charset=windows-1256
بکن این
charset=utf-8
اینجا رو هم



$headers.='Content-type: text/html; charset=windows-1256'."\r\n";
درست کن



$headers.='Content-type: text/html; charset=utf-8'."\r\n";

leghleghe
شنبه 24 مهر 1389, 11:45 صبح
funpatogh عزیز ممنون بابت کمکتون
ولی با وجود اینکه عوض کردم بازم ایمیل ها خراب سند میشه

binyaft
شنبه 24 مهر 1389, 12:51 عصر
فارسی درست نمایش داده میشه یا نه؟ چون دیگه فکر نکنم مشکلی برای نمایش فارسی وجود داشته باشه

leghleghe
شنبه 24 مهر 1389, 18:57 عصر
چطور میشه توی dw فرم رو با utf8 ذخیره کرد
من فرم رو با notepad باز کردم و با utf 8 ذخیره کردم ولی نمایش توی سایت به هم ریخت

binyaft
شنبه 24 مهر 1389, 19:09 عصر
پس مشکل از ذخیره هست ،
من از نرمافزار http://www.flos-freeware.ch/notepad2.html استفاده میکنم
یه متن رو که داخلش نوشتید مسیر زیر رو طی کنید

File>Encoding>UTF-8
با خود نوت پد ساده هم موقع ذخیره کردن یونیکد رو utf-8 قرار بدید

leghleghe
شنبه 24 مهر 1389, 22:19 عصر
:عصبانی++:نشد توی ایمیل همه چیز بهه هم میریزه

funpatogh
شنبه 24 مهر 1389, 23:39 عصر
عزیز براتون Attach کردم

leghleghe
جمعه 30 مهر 1389, 18:03 عصر
funpatogh عزیز از پیگیری تون تا حل نهایی مشکلم بسیار متشکرم