PDA

View Full Version : مشکل با soap



mehdi4467
سه شنبه 09 خرداد 1391, 14:50 عصر
سلام
من یک تکه کد نوشتم که با وب سرویس شرکت ایران مارکت ارتباط برقرار کنم. منتها خطای زیر داده می شود:

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://www.webimc.info/Webservice/wsdl.php' : Start tag expected, '<' not found in /home/myplcir1/public_html/orders1.php:3 Stack trace: #0 /home/myplcir1/public_html/orders1.php(3): SoapClient->SoapClient('http://www.webi...', Array) #1 {main} thrown in /home/myplcir1/public_html/orders1.php on line 3

ولی وقتی همین اسکریپت رو روی یک هاست دیگه اجرا می کنم مشکلی ندارد. با مسولین هاست هم صحبت کردم می گویند این مشکل برای ما ناشناخته است.
کد من به صورت زیر است:


<?php
$option=array('login'=> "*********",'password'=> "*********8");
$client = new SoapClient("http://www.webimc.info/Webservice/wsdl.php",$option);

try
{
$response = $client->GetSendPrice(90000,750,21,6,0);
echo $response;
}
catch (SoapFault $sf)
{
echo $sf->faultcode."\n";
echo $sf->faultstring."\n";
}
?>

ضمنا من در یک سایت هم دیدم همین مشکل برطرف شده و ظاهرا این فرد هم با تعویض سرور توانسته مشکل رو حل کنه. منتها من می خواهم مشکل رو پیدا کنم. آدرسی که شبیه ای مشکل در آن مطرح شده:
http://forums.devshed.com/php-development-5/uncaught-soapfault-exception-wsdl-soap-error-parsing-wsdl-640068.html

با تشکر

رضا قربانی
سه شنبه 09 خرداد 1391, 15:26 عصر
لاین 3 کد شما new SoapClient رو به new nusoap_client یا new nuSoapClient تغییر بدید و تست کنید و جواب رو بگید

mehdi4467
سه شنبه 09 خرداد 1391, 15:45 عصر
سلام وقتی nusoap_client و یا nuSoapClient را استفاده می کنم خطای زیر را می دهد:

Fatal error: Class 'nusoap_client' not found in /home/myplcir1/public_html/orders1.php on line 4
و وفتی هم که کتابخانه soap اینکلود می کنم خطای زیر را می دهد که می گوید کلاس GetSendPrice وجود ندارد.

Fatal error: Call to undefined method nusoap_client::GetSendPrice() in /home/myplcir1/public_html/orders1.php on line 11

با تشکر

us1234
سه شنبه 09 خرداد 1391, 16:38 عصر
لاین 3 کد شما new SoapClient رو به new nusoap_client یا new nuSoapClient تغییر بدید و تست کنید و جواب رو بگید

این کار مال وقتی است که از کلاس nusoap استفاده کرده بود .

این خطا از رعایت نکردن تایپت ها (نوع ها داده ای) به وجود می آید باید چک کنید مبلغ و بقیه متغیر ها درست تعریف شده باشد .

mehdi4467
سه شنبه 09 خرداد 1391, 16:43 عصر
این کار مال وقتی است که از کلاس nusoap استفاده کرده بود .

این خطا از رعایت نکردن تایپت ها (نوع ها داده ای) به وجود می آید باید چک کنید مبلغ و بقیه متغیر ها درست تعریف شده باشد .

سلام
با تشکر
من همون چند خطی را که در تاپیک اول گفتم نوشته ام. منظورتان از بقیه متغیرها چیست؟ ضمن اینکه همین چند خط را در آدرس http://azmoonarshad.ir/orders1.php نوشته ام و دارد جواب می دهد. به نظر می رسد مشکل از تنظیمات سرور باشد که من نمی دانم چیست.

us1234
سه شنبه 09 خرداد 1391, 16:51 عصر
احتمال دیگر نبودن سواپ روی هاست است از کلاس nusoap استفاده کنید فقط یادتون باشه که تعریف کردن wsdl و صدا زدن متد تو nusoap متفاوته !

mehdi4467
سه شنبه 09 خرداد 1391, 16:58 عصر
احتمال دیگر نبودن سواپ روی هاست است از کلاس nusoap استفاده کنید فقط یادتون باشه که تعریف کردن wsdl و صدا زدن متد تو nusoap متفاوته !
میشه توضیح بیشتری بدهید؟
ببینید من الان همین کدی رو که نوشته ام و دارد در آدرس http://azmoonarshad.ir/orders1.php استفاده می کنم همانطور که در کد می بینید هیچگونه فراخوانی کلاسی نکرده ام. ولی وقتی از nusoap استفاده می کنم ظاهرا باید اون رو اول فایل اینکلود کنم که در این صورت هم پس از اینکلود کردن خطای نبودن متد GetSendPrice رو می دهد.

با تشکر

رضا قربانی
چهارشنبه 10 خرداد 1391, 10:06 صبح
باید فایل رو فراخوانی کنید . من اون کد رو دادم تا بفهمم مشکلت چیه .

فولدر lib رو اینجا برامون ضمیمه کن تا ببینم چی کم و کسری داری و چی اضافه بشه ، تا واست بفرستم

mehdi4467
چهارشنبه 10 خرداد 1391, 10:28 صبح
باید فایل رو فراخوانی کنید . من اون کد رو دادم تا بفهمم مشکلت چیه .

فولدر lib رو اینجا برامون ضمیمه کن تا ببینم چی کم و کسری داری و چی اضافه بشه ، تا واست بفرستم

فولدر پیوست شد.

87659

رضا قربانی
چهارشنبه 10 خرداد 1391, 10:50 صبح
خب این درسته . اون کد هایی که من دادم رو اضافه کن و قبلش باید فراخوانی رو انجام بدی : (اسم پوشه ات رو جایگزین کن)


require_once("lib/nusoap.php");

بعدش لاین 3 رو تغییر بده :


$client = new nusoap_client("http://www.webimc.info/Webservice/wsdl.php",$option);
اینم جاش بذار new nuSoapClient
بعد تست کن و ارورهارو بگو . با هر دو تا دستور SOAP

mehdi4467
چهارشنبه 10 خرداد 1391, 10:56 صبح
سلام
وقتی کد رو به صورت زیر می نویسم:


<?php
require_once("nusoap/nusoap.php");
$option = array('login'=> "mehdialinoori",'password'=> "mehdialinoori");
$client = new nusoap_client("http://www.webimc.info/Webservice/wsdl.php",$option);
try
{
$response = $client->GetSendPrice(30000,200,51,8,0);
echo $response;
}
catch (SoapFault $sf)
{
echo $sf->faultcode."\n";
echo $sf->faultstring."\n";
}
?>


خطای زیر رو میده:


Fatal error: Call to undefined method nusoap_client::GetSendPrice() in /home/myplcir1/public_html/orders1.php on line 7

و وقتی کد رو به شکل زیر می نویسم:


<?php
require_once("nusoap/nusoap.php");
$option = array('login'=> "mehdialinoori",'password'=> "mehdialinoori");
$client = new SoapClient("http://www.webimc.info/Webservice/wsdl.php",$option);
try
{
$response = $client->GetSendPrice(30000,200,51,8,0);
echo $response;
}
catch (SoapFault $sf)
{
echo $sf->faultcode."\n";
echo $sf->faultstring."\n";
}
?>


خطای زیر رو میده:


Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://www.webimc.info/Webservice/wsdl.php' : Start tag expected, '<' not found in /home/myplcir1/public_html/orders1.php:4 Stack trace: #0 /home/myplcir1/public_html/orders1.php(4): SoapClient->SoapClient('http://www.webi...', Array) #1 {main} thrown in /home/myplcir1/public_html/orders1.php on line 4

رضا قربانی
چهارشنبه 10 خرداد 1391, 11:15 صبح
دومی که برای خودتون بوئ و ارورش رو گذاشتید . دومی من چی شد جوابش : new nuSoapClient ؟؟؟؟؟ :لبخند:

باید کل خطاها و ارورها رو با هم چک کنیم و مطمئن بشید

mehdi4467
چهارشنبه 10 خرداد 1391, 11:19 صبح
دومی که برای خودتون بوئ و ارورش رو گذاشتید . دومی من چی شد جوابش : new nuSoapClient ؟؟؟؟؟ :لبخند:

برای کد شما این خطا را می دهد:

Fatal error: Class 'nuSoapClient' not found in /home/myplcir1/public_html/orders1.php on line 4

us1234
چهارشنبه 10 خرداد 1391, 20:53 عصر
دوست عزیز من اول کار گفتم « اگر از nusoap استفاده کردید طرز فراخوانی متد ها و حتی انستنت wsdl تفاوت پیدا می کنه » ولی شما نرفتید یه سرچ تو گوگل بکنید و مشکل خودتون را حل کنید شما اگر کلا برنامه نویسی بلد نیستید کار را بدید به برنامه نویسی اگه هم بلدید پس چرا دنبال لقمه جویده شده و حضم شده میگردید !!!

ببینید اینستنت wsdl اینطوری باید باشه :

$soapclient = new nusoap_client('http://www.webimc.info/Webservice/wsdl.php','wsdl');
صدا زدن متد ها هم اینجوری

$res = $soapclient->call('>GetSendPrice', $params);


این نمونه است حالا نیاید بگید من اینا کپی کردم ارور میده !!!!!!!!!

mehdi4467
چهارشنبه 10 خرداد 1391, 21:01 عصر
دوست عزیز من اول کار گفتم « اگر از nusoap استفاده کردید طرز فراخوانی متد ها و حتی انستنت wsdl تفاوت پیدا می کنه » ولی شما نرفتید یه سرچ تو گوگل بکنید و مشکل خودتون را حل کنید شما اگر کلا برنامه نویسی بلد نیستید کار را بدید به برنامه نویسی اگه هم بلدید پس چرا دنبال لقمه جویده شده و حضم شده میگردید !!!

ببینید اینستنت wsdl اینطوری باید باشه :

$soapclient = new nusoap_client('http://www.webimc.info/Webservice/wsdl.php','wsdl');
صدا زدن متد ها هم اینجوری

$res = $soapclient->call('>GetSendPrice', $params);


این نمونه است حالا نیاید بگید من اینا کپی کردم ارور میده !!!!!!!!!

ممنون از اظهار فضلتون.
مثل اینکه شما اصلا تاپیک رو نخوندید. بهتر است قبل از پاسخگویی کمی فکر!!! کنید.
من در تاپیک اول گفتم که کد نوشته شده در یک سرور جواب می دهد ولی در سروری دیگر خیر. بنابراین اشکال از کد نیست و مورد مربوط به سرور می شوذ که من دنبال اینم که بدونم سرور چه مشکلی دارد که به مسولین هاست که نمی دانند مشکل از کجاست!!! بگویم.
افتاد؟!!!
لطفا شما دیگر به این تاپیک پاسخ ندهید.

us1234
چهارشنبه 10 خرداد 1391, 22:28 عصر
اول هاست شما مشکل ندارد فقط soap ندارد با استفاده از nusoap تمام مشکلتون حل میشه
دوم خیلی بی سوادی و تا ابد هم بی سواد میمونی
چون هنوز طرز صحبت کردن را یاد نگرفتی!!!

mehdi4467
چهارشنبه 10 خرداد 1391, 23:24 عصر
شما به نحوه صحبت کردن خودت در پست 14 نگاه کن. واقعا برنامه نویس بودن یا نبودن من به شما ارتباطی داره؟ متاسفم.


الان هم اگه می خواهی کمک کنی یک نمونه کد بده که من اجرا کنم ببینم درست میشه یا نه. اگر هم می خواهی با سوادیتو بکوبی تو سرم که کوبیدی

امیدوارم کسی بتواند من رو کمک کنه.

ممنون