arman_Delta2002
چهارشنبه 22 آذر 1391, 19:29 عصر
سلام خدمت بچه های گل برنامه نویس
من چند روزی درگیر نوشتن یه برنامه به زبان VB.net جهت ارسال ایمیل توست سرور php هستم و همه چیش درست و کار میکنه فقط مشکلم اینه که متن فارسی که از vb به فانکشن php میفرستم و اون تابع با دستور mail ایمیل رو ارسال میکنه اما به صورت ؟؟؟؟ ؟؟؟ ؟؟؟؟ ؟؟؟ و نا خوانا
به هر دری زدم تمام کد های کلاس nuSOAP که ارتباط دهنده php به Viual stadio هست رو زیر و رو کردم هر جا رو دیدم utf-8 کردم پارامترای کد هاشو ولی نشد.
با یک تابع دیگه قبل از ارسال داده ها رو یکبار از هر فرمتی به utf برگردوندم و بعد ارسال کردم بازم نشد
خواستم صفحه ایندکس رو با کد هدر html فارسی کنم ولی سرویس دهنده nuSOAP خطا میده و نمیزاره از حالت text/html استفاده کنم کسایی که با این سرویس کار کردن میدونن که حالتش text/xml هست.
من اومدم تو کد کلاس های nuSOAP هرجا تگ xml باز میشد رو هم اینکد utf اضافه کردم ولی فقط پاسخ ارسال فارسی میاد .
جالب اینجاست که به جای پارامتری که از vb میفرستم اگه تو خود همون صفحه فارسی بنویسم فارسی ارسال میشه بدون مشکل.
کد صفحه ایندکس
<?php
require_once("nuSOAP/lib/nusoap.php");
function encodingToUtf8(&$string){
if(!is_null($string)){
mb_convert_encoding($string, "UTF-8");
$ar = iconv(mb_detect_encoding($string), "UTF-8", $string);
}
return $ar;
}
function SendMailD($to ,$subject ,$message ,$from ,$headers)
{
//$body ="<HTML dir=\"rtl\"><meta http-equiv=\"Content-Type\" CONTENT=\"text/html\"; charset=\"utf-8\"><BODY dir=\"rtl\">" . $message ."</BODY></HTML>" ;
$headers_internal .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$to = "armandelta2002@gmail.com"; // Reciver Email
$subject = "امیل گژ تست"; // The Subject Of Your Mail
// $body =encodingToUtf8( $message) ;
$body = $message ;
$from = "info@whhweb.com"; // The Sender Mail
$headers = "From: $from "; // Just Write This We Complete this later
mail($to, $subject, $body, $headers);
}
$namespace = "http://eqbalpc.com/DMail";
// create a new soap server
$server = new soap_server();
// configure our WSDL
$server->configureWSDL("MailService");
$server ->defencoding = 'utf-8';
$server ->soap_defencoding = 'utf-8';
// set our namespace
$server->wsdl->schemaTargetNamespace = $namespace;
$server->register(
// method name:
'SendMailD',
// parameter list:
array('to' => 'xsd:string', 'subject' => 'xsd:string','message' => 'xsd:string', 'from' => 'xsd:string', 'headers' => 'xsd:string'),
// return value(s):
array('return'=>'xsd:string'),
// namespace:
$namespace,
// soapaction: (use default)
false,
// style: rpc or document
'rpc',
// use: encoded or literal
'literal',
// description: documentation for the method
'A simple World Mail Sender web method');
// Get our posted data if the service is being consumed
// otherwise leave this data blank.
$POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA'])
? $GLOBALS['HTTP_RAW_POST_DATA'] : '';
// pass our posted data (or nothing) to the soap service
$server->service($POST_DATA);
exit();
?>
کمکی از دستتون بر میاد لطفا دریق نکنین بد فرم با یه asp کار کل انداختیم و الان کم اوردم :قهقهه:
اینم یه مثال ساده همراه با خود nuSOAP اگه کسی بتونه کاری کنه که فارسی رو ساپرت کنه کمک بزرگی به فارسی زبانا کرده.
96546
من چند روزی درگیر نوشتن یه برنامه به زبان VB.net جهت ارسال ایمیل توست سرور php هستم و همه چیش درست و کار میکنه فقط مشکلم اینه که متن فارسی که از vb به فانکشن php میفرستم و اون تابع با دستور mail ایمیل رو ارسال میکنه اما به صورت ؟؟؟؟ ؟؟؟ ؟؟؟؟ ؟؟؟ و نا خوانا
به هر دری زدم تمام کد های کلاس nuSOAP که ارتباط دهنده php به Viual stadio هست رو زیر و رو کردم هر جا رو دیدم utf-8 کردم پارامترای کد هاشو ولی نشد.
با یک تابع دیگه قبل از ارسال داده ها رو یکبار از هر فرمتی به utf برگردوندم و بعد ارسال کردم بازم نشد
خواستم صفحه ایندکس رو با کد هدر html فارسی کنم ولی سرویس دهنده nuSOAP خطا میده و نمیزاره از حالت text/html استفاده کنم کسایی که با این سرویس کار کردن میدونن که حالتش text/xml هست.
من اومدم تو کد کلاس های nuSOAP هرجا تگ xml باز میشد رو هم اینکد utf اضافه کردم ولی فقط پاسخ ارسال فارسی میاد .
جالب اینجاست که به جای پارامتری که از vb میفرستم اگه تو خود همون صفحه فارسی بنویسم فارسی ارسال میشه بدون مشکل.
کد صفحه ایندکس
<?php
require_once("nuSOAP/lib/nusoap.php");
function encodingToUtf8(&$string){
if(!is_null($string)){
mb_convert_encoding($string, "UTF-8");
$ar = iconv(mb_detect_encoding($string), "UTF-8", $string);
}
return $ar;
}
function SendMailD($to ,$subject ,$message ,$from ,$headers)
{
//$body ="<HTML dir=\"rtl\"><meta http-equiv=\"Content-Type\" CONTENT=\"text/html\"; charset=\"utf-8\"><BODY dir=\"rtl\">" . $message ."</BODY></HTML>" ;
$headers_internal .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$to = "armandelta2002@gmail.com"; // Reciver Email
$subject = "امیل گژ تست"; // The Subject Of Your Mail
// $body =encodingToUtf8( $message) ;
$body = $message ;
$from = "info@whhweb.com"; // The Sender Mail
$headers = "From: $from "; // Just Write This We Complete this later
mail($to, $subject, $body, $headers);
}
$namespace = "http://eqbalpc.com/DMail";
// create a new soap server
$server = new soap_server();
// configure our WSDL
$server->configureWSDL("MailService");
$server ->defencoding = 'utf-8';
$server ->soap_defencoding = 'utf-8';
// set our namespace
$server->wsdl->schemaTargetNamespace = $namespace;
$server->register(
// method name:
'SendMailD',
// parameter list:
array('to' => 'xsd:string', 'subject' => 'xsd:string','message' => 'xsd:string', 'from' => 'xsd:string', 'headers' => 'xsd:string'),
// return value(s):
array('return'=>'xsd:string'),
// namespace:
$namespace,
// soapaction: (use default)
false,
// style: rpc or document
'rpc',
// use: encoded or literal
'literal',
// description: documentation for the method
'A simple World Mail Sender web method');
// Get our posted data if the service is being consumed
// otherwise leave this data blank.
$POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA'])
? $GLOBALS['HTTP_RAW_POST_DATA'] : '';
// pass our posted data (or nothing) to the soap service
$server->service($POST_DATA);
exit();
?>
کمکی از دستتون بر میاد لطفا دریق نکنین بد فرم با یه asp کار کل انداختیم و الان کم اوردم :قهقهه:
اینم یه مثال ساده همراه با خود nuSOAP اگه کسی بتونه کاری کنه که فارسی رو ساپرت کنه کمک بزرگی به فارسی زبانا کرده.
96546