PDA

View Full Version : مبتدی: محل قرارگیری کد utf-8 در این صفحه



persianm
سه شنبه 20 خرداد 1393, 02:15 صبح
سلام
مطالب زیادی درباره بهم ریختگی ایمیل در انجمن دیدم و فهمیدم که برای رفع مشکل بهم ریختگی ایمیل ارسالی، باید این کد رو در فایل قرار بدم:

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

اما محل قرارگیری کد رو دقیقا نمیدونم و با سعی و خطا هم به جایی نرسیدم.

کد اصلی اینه، ممنون میشم راهنمایی کنید کد رو کجا باید قرار بدم؟


<?php
$ajax = $_POST['ajax'];
foreach($_POST as $k=>$v)
{
/* if magic_quotes is enabled, strip the post array */
if(ini_get('magic_quotes_gpc'))
$_POST[$k]=stripslashes($_POST[$k]);
$_POST[$k]=htmlspecialchars(strip_tags($_POST[$k]));
/* escape the special chars */
}
require "phpmailer/class.phpmailer.php";
$emailAddress = 'info@domainmaster.ir';


if ( $ajax == 1) {
if( !empty($_POST['name']) && !empty($_POST['email']) && !empty($_POST['message']) ) {

/* the email body */
$msg='Name: '.$_POST['name'].'<br />Email: '.$_POST['email'].'<br />IP: '.$_SERVER['REMOTE_ADDR'].'<br /><br />
Message:<br /><br />'.nl2br($_POST['message']).'';

$mail = new PHPMailer(); /* using PHPMailer */
$mail->IsMail();
$mail->AddReplyTo($_POST['email'], $_POST['name']);
$mail->AddAddress($emailAddress);
$mail->SetFrom($_POST['email'], $_POST['name']);
$mail->Subject = "A new mail from ".$_POST['name']." | contact form feedback";

$mail->MsgHTML($msg);

if(!$mail->Send())
{
echo '<p id="response">متاسفانه مشکلی در ارسال ایمیل پیش آمد. لطفا مجددا تلاش کنید</p>';
}
else
{
echo '<p id="ok">ایمیل شما ارسال شد. از تماس شما متشکریم</p>';
}
}
else {
echo '<p id="error">لطفا همه فیلدها را پر کنید</p>';
}
}
else {

if( !empty($_POST['name']) && !empty($_POST['email']) && !empty($_POST['message']) ) {

/* the email body */
$msg='Name: '.$_POST['name'].'<br />Email: '.$_POST['email'].'<br />IP: '.$_SERVER['REMOTE_ADDR'].'<br /><br />
Message:<br /><br />'.nl2br($_POST['message']).'';

$mail = new PHPMailer(); /* using PHPMailer */
$mail->IsMail();
$mail->AddReplyTo($_POST['email'], $_POST['name']);
$mail->AddAddress($emailAddress);
$mail->SetFrom($_POST['email'], $_POST['name']);
$mail->Subject = "A new email from ".$_POST['name']." | contact form feedback";

$mail->MsgHTML($msg);


if(!$mail->Send())
{
echo 'متاسفانه مشکلی در ارسال ایمیل به وجود آمده است. لطفا مجددا تلاش کنید';
}
else
{
echo 'ایمیل شما ارسال شد. از تماس شما متشکریم';
}
}
else {


echo 'لطفا همه فیلدها را پر کنید';

}

} ?>

lord_viper
سه شنبه 20 خرداد 1393, 07:54 صبح
میتونین از متد زیر استفاده کنید


$mail->CharSet = "UTF-8";

یا از این


$mail->FromName = utf8_decode($_POST['name']);

persianm
سه شنبه 20 خرداد 1393, 20:28 عصر
ممنون از شما میشه دقیقا بگید کدی که گذاشتید رو در کدوم خط قرار بدم؟

lord_viper
چهارشنبه 21 خرداد 1393, 08:13 صبح
بعد از ایجاد کلاس



$mail = new PHPMailer();

persianm
چهارشنبه 21 خرداد 1393, 19:46 عصر
بعد از ایجاد کلاس



$mail = new PHPMailer();


به خوبی کار کرد.
ممنون