اتصال به وب سرویس با زبون php
لینک کوتاه

سایت های خدماتی برای ارئه ی بهتر خدمات به کاربراشون از سرویسی به اسم وب سرویس ( web service ) استفاده می کنن . شما با وب سرویس می تونید از خدمات یک سایت توی سایت خودتون استفاده کنید .  مثلن وقتی شما از یک بانک تقاضای درگاه پرداخت اینترنتی برای سایتتون می کنید اون بانک با ارائه ی یک وب سرویس به شما کاری می کنه که اتصال سایتتون با بانک برقرار بشه .

وب سرویس در اصل یک آدرس اینترنتیست که قابلیت دریافت و ارسال یه سری اطلاعات رو داره . برنامه نویس های وب وقتی آدرس وب سرویس و اطلاعات ارسالی و دریافتی اون رو داشته باشن می تونن سایتشون رو با اون وب سرویس پیوند بزنن و از خدمات اون سایت توی سایت خودشون استفاده کنن . اتصال به وب سرویس با زبون asp.net نسبت به php کار راحتتریه و خیلی سخت نیست . من می خوام توی این مطلبم روش اتصال به وب سرویس با استفاده از زبون php رو بهتون یاد بدم .

قبل از شروع باید بگم از طریق ۲ تا کتابخونه می شه وب سرویس با زبون php نوشت ، هم با کتابخونه nusoap و هم با کتابخونه soap . این دو تا کتابخونه فرق زیادی با هم ندارن ، فقط اگر سرورتون soap فعال نباشه باید از nusoap استفاده کنید ! یعنی اینکه در کنار کدتون کتابخونه رو هم باید قرار بدین ، در صورتی که اگر soap سرور فعال باشه کتابخونه داخل سرور موجوده و نیازی به قرار دادن کتابخونه نیست . من طرز نوشتنش با کتابخونه soap رو می خوام بهتون توضیح بدم و به nusoap نمی پردازم . همونطور هم که گفتم قبل از خرید هاست حتمن مطمئن بشید soap روی اون سرور فعال هست چون اگر نباشه وب سرویس کار نمی کنه و باید با nusoap بنویسید .

  • اما بریم سراغ آموزش :

فرض کنید من می خوام از وب سرویس یک سایت خدمات پیامک استفاده کنم و به وسیله ی اون وب سرویس ، از سایت خودم اس ام اس ارسال کنم . اول از همه باید آدرس وب سرویس سایت خدمات دهنده ی پیامک رو داشته باشم که فرض می کنم آدرسش http://sms.com/webservice.asmx هست . چیز دیگه ای که نیاز داریم متغیرهای ارسال و دریافت هست که این متغیرها هم توسط شرکت ارائه دهنده باید به شما داده بشه . مثلن توی این مثال من متغیرهایی که دارم اینهاست :

  • username : نام کاربری شما در سایت خدمات دهنده
  • password : رمز عبور شما در سایت خدمات دهنده
  • from : شماره ای که می خواید اس ام اس با اون ارسال بشه
  • to : شماره گیرنده اس ام اس
  • message : متن پیام

این متغیرهاییه که باید به وب سرویس ارسال بشه . توی توضیحاتی که سایت ارائه دهنده ، از وب سرویسش بهتون می ده حتمن گفته شده که این متغیرها باید با چه متدی ارسال بشن ، در اینجا فرض می کنیم این متغیرها با متد ssendsms باید ارسال بشن . ولی از اون طرف هم متغیرهایی از جانب وب سرویس ارسال می شه و در این مثال فرض می کنیم بعد از ارسال متغیرهای بالا متغیرهای پایین با متد smsresult به سایت ما ارسال می شه  :

  • success : در صورتی که پیام با موفقیت ارسال شود
  • erroruser : مشکلی در نام کاربری وجود دارد
  • errorpass : مشکلی در رمز عبور وجود دارد
  • errorfrom : مشکلی در شماره فرستنده وجود دارد
  • errorto : مشکلی در شماره گیرنده وجود دارد
  • errormessage : مشکلی در متن پیام وجود دارد

خب حالا همه ی اطلاعات استفاده از این وب سرویس فرضی رو داریم و باید برنامش رو بنویسم . دستورات زیر رو برای این سرویس می نویسیم :

<?php

$sms_username = ‘jentelman’;
$sms_password = ‘123456’;
$sms_from = ‘3000123’;
$to = ‘09121111111’;
$message = ‘پیام تستی’;
$client = new SoapClient(“http://sms.com/webservice.asmx?WSDL”);
$params = array(
‘username’ => $sms_username,
‘password’ => $sms_password,
‘from’ => $sms_from,
‘to’ => $to,
‘message’ => $message
);
$results = $client->sendsms( $params );
if ($results->smsresult == ‘success’ )
echo ‘ارسال پیام با موفقیت انجام شد’;
else
echo $results->smsresult;

?>

۵ خط اول کد بالا تعریف کردن متغیرهاست . من گفتم که نام کاربریم توی سایت ارائه دهنده jentelman و پسوردم ۱۲۳۴۵۶ هست . همچنین گفتم که پیامی که می خوام ارسال کنم با عنوان “پیام تستی” هست و از شماره ی ۳۰۰۰۱۲۳ به شماره ی ۰۹۱۲۱۱۱۱۱۱۱ قصد ارسال دارم .

برنامه از خط ششم به بعدش مراحل اتصال به وب سرویس رو می گذرونه . توی خط ششم آدرس وب سرویس رو دادم و گفتم می خوام از این وب سرویس استفاده کنم . متغیر $client رو هم به وب سرویس دادم که ازش برای ارتباط استفاده کنم .

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

بعد از تموم شدن آرایه و مقدار دهی ، توی خط ۱۴ اومدم و متغیری به اسم $results تعریف کردم و مقابلش نوشتم که اطلاعات آرایه با متد sendsms به وب سرویس ارسال بشه . حالا همه ی متغیرها با متدی که وب سرویس قبول می کنه ارسال شدن .

از اون طرف وب سرویس هم کار خودش رو انجام می ده و پیامی رو به متغیر smsresult که توضیح دادم می فرسته . توی خط ۱۵ گفتم که اگر اون پیام عبارت success بود عنوان “ارسال پیام با موفقیت انجام شد” رو نمایش بده و بعد توی خط ۱۷ گفتم اگر اینچنین نبود عنوان پیام دریافتی رو نمایش بده تا بفهمیم مشکل کجاست . البته توی مثال دیدید که متغیرهایی که وبسرویس ارسال می کنه رو آوردم ، می تونیم برای هر کدومشون مثل success یک پیام خطا تعریف کنیم . یعنی اینکه بگیم مثلا اگر erroruser توسط وبسرویس دریافت شد عبارت “خطا در نام کاربری” نمایش داده بشه که من توی کد بالا برای کوتاه شدن کد فقط برای success یک پیام تعریف کردم و بقیه ی مقادیر دریافتی رو گفتم که مستقیم نشون بده .

اگه خوشتون اومد این ها رو هم بخونید :
ایمیل فیس بوک من راه افتاد !
یه کلاس خوب php برای ارسال ایمیل
سامانه پیامک مفت و مجانی !
رقیب جدید جیمیل در راه است
ارسال ایمیل گروهی به صورت مخفی
نوشته بعدی
نوشته قبلی
به اشتراک بگذارید
جواد گفت :
سه شنبه ۳۰ خرداد ۱۳۹۱ و ساعت ۹:۰۰ ب.ظ

سلام . ممنون از مطلب خوبتون.
عالی بود.
فقط میشه آموزش اینکه چطور با soap به وبسرویس متصل بشم را بگید ؟
خیلی گشتم ولی چیزی نفهمیدم….
لطفا به آدرس ایمیلم بفرستید
ممنون

پاسخ یه این نظر

جواد در پاسخ گفت :
چهارشنبه ۳۱ خرداد ۱۳۹۱ و ساعت ۱۲:۰۷ ق.ظ

دقیقن این روشی که گفتم برای soap بود و سرورهایی که soap فعال دارن ! اگه سروری nusoap باشه نیاز به کتابخونه ها soap داره که می تونید از اینجا دانلود کنید : http://sourceforge.net/projects/nusoap

پاسخ یه این نظر

mahmood گفت :
شنبه ۳۱ تیر ۱۳۹۱ و ساعت ۴:۰۲ ب.ظ

ممنون

پاسخ یه این نظر

مجتبی گفت :
یکشنبه ۸ مرداد ۱۳۹۱ و ساعت ۱۲:۴۴ ب.ظ

سلام.
فقط میتونم بگم دمت گرم داداش عالی بود.
فقط اگه میشه همینو با nusoap هم آموزش بدی.
خیلی خیلی ممنون.

پاسخ یه این نظر

مجتبي گفت :
یکشنبه ۸ مرداد ۱۳۹۱ و ساعت ۵:۰۹ ب.ظ

سلام.
عالی بود احسنت اما میشه با nusoap هم توضیح بدید همین مثالو.
بعد اینکه کاش یه آدرس میدادید که کار میکرد یه وبسرویس فعال منظورمه تا ما جواب بگیریم.
ممنون.

پاسخ یه این نظر

جواد در پاسخ گفت :
یکشنبه ۸ مرداد ۱۳۹۱ و ساعت ۱۱:۵۵ ب.ظ

با nusoap هم مثل همین روشه فقط قبل از کدها باید nusoap رو باز کنی . کتابخونه nusoap رو از اینجا می تونی دانلود کنی : http://sourceforge.net/projects/nusoap
وب سرویس معمولن توی سایت های خدماتی وجود داره ولی برای استفاده ازشون باید عضو سایت بشی . می تونی برای تمرین از وبسرویس سایت زرین پال استفاده کنی ، نمونه های آماده هم داره .

پاسخ یه این نظر

مجتبي گفت :
دوشنبه ۹ مرداد ۱۳۹۱ و ساعت ۱:۵۰ ب.ظ

دمت گرم داداش خیلی گلی.
موفق باشی.

پاسخ یه این نظر

مجتبي گفت :
سه شنبه ۱۰ مرداد ۱۳۹۱ و ساعت ۶:۲۲ ب.ظ

سلام دوباره به دوستان و جواد عزیز ببخشید که پست پیاپی میدم.
۱- خواستم بگم آیا میشه که همین اتصال رو با یک برنامه تحت ویندوز انجام بدیم مثلا با دلفی بتونیم به سایت زرین بال وصل شیم و سرویس بگیریم؟

۲- یک وبسرویس اگه بخایم بنویسیم مثلا php سرور ما باشه و delphi کلاینت ما باشه و از طریق دلفی متنی رو به وبسرویس خودمون بفرستیم و اون پاسخی به ما بده،این میشه؟ لطفا کمکم کنید آقا جواد.
یا اگه کتابی در مورد ساخت وبسرویس در php میشناسید معرفی کنید.
ممنون بسیار ممنون…

پاسخ یه این نظر

جواد در پاسخ گفت :
چهارشنبه ۱۱ مرداد ۱۳۹۱ و ساعت ۴:۲۴ ق.ظ

آره می شه همچین کاری کرد . توی #C یه قسمتی هست که می شه وب سرویس رو اضافه کرد و ازش استفاده کرد . این مقاله رو بخونی می فهمی .
توی دلفی هم باید همچین قسمتی باشه . متاسفانه من به این زبون آشنایی ندارم ، ولی مطمئنن یه قسمتی برای اضافه کردن وب سرویس و استفاده ازش توی محیط برنامه هست . شاید این تاپیک کمکت کنه .

پاسخ یه این نظر

مجتبی گفت :
چهارشنبه ۱۱ مرداد ۱۳۹۱ و ساعت ۵:۳۲ ب.ظ

دمت گرم جواد جون عالی بود.

پاسخ یه این نظر

من یک مسافرم گفت :
دوشنبه ۱۹ فروردین ۱۳۹۲ و ساعت ۲:۱۰ ب.ظ

دستت درد نکنه، مفید بود
البته چند تا لینک هم بگذارید بهتر میشه و خواننده مجبور نیست جستجو کنه
مثل این لینک: http://php.net/manual/en/soapclient.soapclient.php

پاسخ یه این نظر

شهرام گفت :
یکشنبه ۲۵ فروردین ۱۳۹۲ و ساعت ۳:۲۵ ب.ظ

سلام خسته نباشید ممنون از سایت خوبتون
می خواستم بدونم چه جوری میشه با این کدی که نوشتید برای چند نفر مختلف پیامک ارسال کرد؟
ممنون

پاسخ یه این نظر

جواد در پاسخ گفت :
یکشنبه ۲۵ فروردین ۱۳۹۲ و ساعت ۵:۲۰ ب.ظ

این بستگی به وبسرویسی داره که ازش استفاده می کنید ، اگر توی این کد فرض کنیم متغیر $to رو می شه به صورت آرایه ای به وبسرویس ارسال کرد باید شماره ها رو به صورت یه آرایه ارسال کنیم . البته وبسرویس هایی که برای پیامک ساخته شدن حتمن متغیری برای ارسال آرایه ی شماره ها دارن . با فرض اینکه توی این مثال $to یه آرایه باشه باید اینجوری شماره ها رو ارسال کرد :
$fvar = array(‘09123456789′,’09121111111′,’09191111111′,’09193456789’);
$to = $fvar;

پاسخ یه این نظر

mohammadshirzadeh گفت :
سه شنبه ۳۱ اردیبهشت ۱۳۹۲ و ساعت ۷:۱۶ ب.ظ

سلام من وقتی نام تابعی که تو وب سرویس هست رو $client->sendsms( $params ); به جای این میزنم میگه undefind یعنی این تابع تو کلاس soap نیست
مگه اینجا نباید نام تابع وارد کرد.

پاسخ یه این نظر

جواد در پاسخ گفت :
پنج شنبه ۲ خرداد ۱۳۹۲ و ساعت ۲:۰۴ ق.ظ

توی این مثالی که زدم $params تابع نیست ! بلکه یه آرایه از اطلاعات وبسرویسه و بستگی به نوع وبسرویس داره … اگه طبق مثالم آرایه رو باید ارسال کنی مثل من باید یه آرایه بسازی و بفرستی . ولی متغیرهای آرایه باید طبق وبسرویس چیده بشن
پشنهاد می کنم راهنمای وبسرویس رو حتمن ببینی شاید نوع چینششون با مثال من فرق داشته باشه .

پاسخ یه این نظر

شهرام گفت :
جمعه ۳۱ خرداد ۱۳۹۲ و ساعت ۴:۲۷ ب.ظ

سلام یه سوال داشتم
من با وب سرویس یه شرکت کار می کنم متغیرهایی که از جانب وب سرویس ارسال می شه یه پارامتر ورودی داره .من چه جوری باید پارامتر ورودی رو تو کد بالا لحاظ کنم
ممنون

پاسخ یه این نظر

جواد در پاسخ گفت :
دوشنبه ۳ تیر ۱۳۹۲ و ساعت ۹:۰۹ ق.ظ

توی کد بالا پارامترای ورودی رو من توی این چند خط تعریف کردم :
$sms_username = ‘jentelman’;
$sms_password = ’۱۲۳۴۵۶′;
$sms_from = ’۳۰۰۰۱۲۳′;
$to = ’۰۹۱۲۱۱۱۱۱۱۱′;
$message = ‘پیام تستی’;
وبسرویسی که استفاده می کنی باید ببینی چه پارامترایی رو دریافت می کنه و متناسب با اون ورودی ها رو بسازی

پاسخ یه این نظر

SAEED گفت :
شنبه ۲۶ مرداد ۱۳۹۲ و ساعت ۸:۱۴ ب.ظ

سلالم جواد جان چطور میشه این کد رو در ۲ فایل جداگانه اسفاده کد
یا به عبارت دیکر فیلدهایی باشد که متن و شماره مقصد رو بنویسیم
ممنون

پاسخ یه این نظر

جواد در پاسخ گفت :
یکشنبه ۲۷ مرداد ۱۳۹۲ و ساعت ۱۱:۰۹ ق.ظ

خب کافیه یه فرم بسازی که توش بشه متن و شماره رو وارد کرد . بعد باید مقابل $to و $message به جای مقدار ثابت دو تا متغیر POST تعریف کنی و به فرم بگی مقادیر وارد شده رو به این تابع POST کنه . تابع هم اطلاعات رو می گیره و به جای اون دو تا مقدار ، مقادیر پست شده رو جایگزین می کنه و می فرسته :)

پاسخ یه این نظر

مرتضي گفت :
دوشنبه ۲۸ مرداد ۱۳۹۲ و ساعت ۱۲:۴۸ ب.ظ

جواد جان سلام

اخیرا سایت سازمان بورس بانک اطلاعاتی رو به صورت نمونه در اختیار گذاشته تا شما بتونی آخرین اطلاعات رو تویه سایت یا نرم افزار خودت داشته باشی

http://old.tsetmc.com/Site.aspx?ParTree=111A12

سوالم اینه که چطور می تونم این بانک رو با اکسل لینک کنم تا بتونم از طریق ابزارهای اکسل دیتاها رو تحلیل کنم

باتشکر

پاسخ یه این نظر

جواد در پاسخ گفت :
سه شنبه ۲۹ مرداد ۱۳۹۲ و ساعت ۱:۵۲ ق.ظ

از وبسرویس مستقیم نمی شه توی اکسل استفاده کرد ولی می شه یه کلاسی نوشت که اطلاعات رو از وبسرویس بگیره و توی دیتابیس ذخیره کنه ( البه اگه وبسرویس اجازه بده اطلاعات رو تفکیک شده دریافت کرد ) بعد می شه از دیتابیس خروجی اکسل گرفت و اونجا همه ی اطلاعات رو دید :)

پاسخ یه این نظر

مهدی گفت :
جمعه ۲۲ شهریور ۱۳۹۲ و ساعت ۱۱:۰۷ ب.ظ

سلام.چطوری باید اس ام اس دریافت کنیم؟

پاسخ یه این نظر

جواد در پاسخ گفت :
یکشنبه ۲۴ شهریور ۱۳۹۲ و ساعت ۱:۵۸ ب.ظ

برای دریافت توی پنل ها معمولن قسمتی هست به اسم ارسال به URL که پیام های دریافتی با متد POST معمولن به یه آدرسی ارسال می شن ، توی اون قسمت می تونید آدرس یک فایل PHP یا ASP یا هر چیز دیگه رو بدید که پیام های دریافتی به اون فایل پست بشن و توی اون فایل هم با متد پست تعریف کنید با اطلاعات دریافتی چی کار کنه :)

پاسخ یه این نظر

SAEED گفت :
یکشنبه ۲۴ شهریور ۱۳۹۲ و ساعت ۳:۱۳ ب.ظ

با سلام و خسته نباشید
۱٫اگر امکان دارد تکه کدی را معرفی کنید که بتواند پوشه های( فقط پوشه) داخل یک پوشه مشخص را داخل تگ select نمایش بدهد لطفا
۲٫چکونه میتوانم آدرس یک include را به وسیله echo تعین کنم ؟
include “echo x

پاسخ یه این نظر

جواد در پاسخ گفت :
سه شنبه ۲۶ شهریور ۱۳۹۲ و ساعت ۴:۴۴ ق.ظ

کد اولی که می خوای این هست :

<?php
$Mydir = '';
foreach(glob($Mydir.'*', GLOB_ONLYDIR) as $dir)
{
$dir = str_replace($Mydir, '', $dir);
echo ''.$dir.'';
}
?>


در مورد سوال دوم نفهمیدم دقیقن منظورت چیه !
آدرس رو مقابل include می نویسی دیگه ! echo برای چی ؟ :/

پاسخ یه این نظر

SAEED گفت :
چهارشنبه ۲۷ شهریور ۱۳۹۲ و ساعت ۱۱:۴۹ ق.ظ

سلام ممنونم ببخشید که دوباره مزاحم میشم سوالم رو کاملتر میکنم
مثلا میخوام پوشه های داخل پوشه پلاگین رو توی تگ سلکت نمایش بده
من با انتخاب یک آپشن که نام یک پوشه هست رو که به آدرس اینکلود اضافه میکنم درحقیقت آدرس روکامل میکنم و آدرسم این باشه
a include “plagin/$poshe/action.php”; a
هر پوشه عملکرد متفاوتی رو تعین میکنه
اگه میشه قسمت اول سوالم رو کاملتر جواب بده و نام پوشه رو وارد کد بکن
خیلی خیلی ممنونم که جواب دادی

پاسخ یه این نظر

SAEED گفت :
چهارشنبه ۲۷ شهریور ۱۳۹۲ و ساعت ۱۱:۵۸ ق.ظ

منظورم از کاملتر اینه که هم نام پوشه پلاگین رو وارد کنی و هم داخل تگ سلکت یا به حالت رادیو باکس پوشه هارو نشون بده واگر امکانش باشه از داخل هر پوشه عکسی رو با نام screenshot.png کنارش نشون بده
باز هم معذرت میخوام که وقت گرانبهای شمارو میگیرم
با تشکر سعید اصغری

پاسخ یه این نظر

جواد در پاسخ گفت :
پنج شنبه ۲۸ شهریور ۱۳۹۲ و ساعت ۴:۰۸ ق.ظ

خب من مقابل متغیر $Mydir رو خالی گذاشتم و این ینی پوشه روت رو بررسی می کنه !
هر پوشه ای که بخوای باز بشه و پوشه های داخل اون پوشه رو نشون بده ، باید مقابل این متغیر اسم پوشتو بزنی
لازم هم نیست از echo یا چیز دیگه ای استفاده کنی !
اگه پوشه هات ثابت هستن می تونی اسماشون رو توی یک آرایه یا جدول ( دیتابیس ) تعریف کنی و از اونجا به متغیر $Mydir مقدار بدی .
اگه پوشه هات ثابت نیستن و هی اضافه یا حذف می شن باید از حلقه استفاده کنی .
یه حلقه باید بزنی و این کد رو توش بزاری که پوشه هارو توی حلقه انتخاب و مقداراشونو به $Mydir بده .
نمی دونم تونستم کامل توضیح بدم یا نه ولی فکر کنم منظورت همین بود :)

پاسخ یه این نظر

محمد گفت :
پنج شنبه ۱۱ مهر ۱۳۹۲ و ساعت ۱۱:۴۶ ق.ظ

عالی بود ساده روان و کاربردی حرف نداشت

پاسخ یه این نظر

امیری گفت :
دوشنبه ۲۹ مهر ۱۳۹۲ و ساعت ۸:۳۴ ب.ظ

سلام
آقا جواد این کد php که دادی رو باید کجا بزاریم؟
چطوری بخوایم مثلا در آدرس xxx.com/testsms قرار بگیره؟
اگه از این کد استفاده بشه از طریق سورس صفحه و… یوزر و پسورد ما رو کسی نمیبینه؟؟
ممنون میشم جواب رو به ایمیلم ارسال کنید و اینجا بزارید تا بدرد بقیه هم بخوره
khademolhojaj5@yahoo.com
با تشکر

پاسخ یه این نظر

جواد در پاسخ گفت :
چهارشنبه ۱ آبان ۱۳۹۲ و ساعت ۱۲:۴۲ ق.ظ

این کد رو توی یه فایل پی اچ پی قرار می دید و از طریق یه فرم اطلاعات رو بهش ارسال می کنید تا کارش رو انجام بده .
اگر کلن برنامه نویسی php و html بلد نباشی خیلی سخت می شه توضیحش ! ولی باید اول فرم رو با html طراحی کنی بعد اطلاعات رو به این کد پست کنی .
کدهای php کاملن سمت سرورن و اگه قرار بود کسی اون ها رو ببینه که طرز کار و الگوریتم تمام سایت هایی که با php نوشته شدن لو می رفت ! ولی برای امنیت بیشتر می شه یوزر پسورد رو روی دیتابیس ذخیره کرد از اونجا خوند . حتا می شه یه الگوریتم رمز نگاری نوشت و اونا رو روی دیتابیس رمز گذاری کرد که دیگه امنیتش بیشتر شه :)

پاسخ یه این نظر

محمد افصحی گفت :
یکشنبه ۱۰ آذر ۱۳۹۲ و ساعت ۱۲:۳۴ ق.ظ

با سلام با جستجوی زیاد به مطالب مفید شما دست یافتیم
یه سئوال داشتم
من سایت خبری دارم و میخواهم بدانم چطوری میشه از طریق همین کدهایی که شما گفتید اخباری که روی سایت میزاریم تیتر انها به مخاطبین ما به صورت اتوماتیک بدون دخالت ما ارسال شود به گروه هایی که ما میخواهیم
این هم مهم است که سایت ما دات نت است

پاسخ یه این نظر

جواد در پاسخ گفت :
چهارشنبه ۱۳ آذر ۱۳۹۲ و ساعت ۲:۳۸ ب.ظ

اگه سایت RSS داشته باشه مشکلی نیست !
می تونی یه کلاس PHP بنویسی هر وقت فید سایت بروز شد عنوان خبر و لینکش به صورت SMS برا شماره های تعریف شده ارسال بشن :)

پاسخ یه این نظر

s_sh گفت :
سه شنبه ۱۹ آذر ۱۳۹۲ و ساعت ۱۲:۴۵ ب.ظ

با سلام
میشه لطفا آموزش ساخت وب سرویس رو بذارید با soap یا nusoap فرقی نمیکنه

پاسخ یه این نظر

جواد در پاسخ گفت :
سه شنبه ۱۹ آذر ۱۳۹۲ و ساعت ۸:۱۷ ب.ظ

وبسرویس یا api مجموعه ای از یه سری تابع هست که یه ورودی رو دریافت و روش پردازشی انجام می دن و نتیجه رو هم به صورت خروجی می فرستن
برای نوشتن یک api باید اول ببینیم برای چه چیزی می خوایم این کارو کنیم و قراره چه ورودی هایی دریافت و چه خروجی هایی ارسال شه
به چند صورت هم می شه نوشتشون و نمی شه یه حالت تقریبن عمومی براشون در نظر گرفت
اگه ایده ی ساده ای برای وبسرویس دارید که یک عملیات ساده رو انجام بده و به نوعی هم کاربردی باشه خوشحال می شم بگید من یه نمونه می نویسم و توی آزمایشگاه وبلاگم می زارم :)

پاسخ یه این نظر

جاوید گفت :
جمعه ۲۹ آذر ۱۳۹۲ و ساعت ۶:۳۵ ب.ظ

سلام سایت بسیار روان و آموزنده ای دارید.
من برای پروژه پایانی طراحی سایت فروش شارژ دارم.از یه شرکت وب سرویس گرفتم ولی الان تو نوشتن کلاینت وب سرویسش موندم.
از طرفی تو php هم تازه کارم و از شرکت کد خواستم، یه نمونه کد دادن که از اونم سر درنمیارم چی به چیه!
فایل pdf راهنما و کد های نمونه ی شرکت و آدرس وب سرویس رو گذاشتم.
در ضمن انگار وب سرویس از IP سایت هایی که براش تعریف میکنند در دسترس هست و نه برای عموم.
ممنون میشم کمکم کنید.کلا گیج شدم. کار لنگه به خدا

پاسخ یه این نظر

جواد در پاسخ گفت :
جمعه ۲۹ آذر ۱۳۹۲ و ساعت ۱۰:۱۵ ب.ظ

دوست عزیز لینکی که دادی رو دیدم
به نظر توضیحات پی دی اف کامله و فکر نمی کنم مشکلی داشت ، اون کدهای php هم که دادی یه نگاه سریع کردم فکر کنم اونها هم مشکلی نداشتن . البته دقیق بررسی نکردم . اگه مشکلی تو اون کدا هست بگو کجاشه که ببینم .
تو کدوم قسمتش می خوای که راهنماییت کنم ؟ چون فکر کنم توی همون pdf همه چی رو گفته و کامل بود راهنماش :/

پاسخ یه این نظر

جاوید در پاسخ گفت :
شنبه ۳۰ آذر ۱۳۹۲ و ساعت ۸:۴۴ ق.ظ

سلام،ممنون
مشکل اینه که من نمیدونم کدام قسمت کد رو باید تو سایتم بذارم و چجوری.
همش رو با کلاس ها نوشتن.
از طرف دیگه خودم هم نشستم بنویسم مطابق مثالی که شما گفتی، نتونستم.
اگر امکانش هست، قسمت ۱- login رو برای من بنویسید تا مطابق اون بقیه رو ادامه بدم.

پاسخ یه این نظر

جواد در پاسخ گفت :
دوشنبه ۲ دی ۱۳۹۲ و ساعت ۱۲:۵۹ ب.ظ

طبق همین مثالی که زدم توی خطی که نوشتم $client = new SoapClient(“http://sms.com/webservice.asmx?WSDL”); یعنی وبسرویس رو باز کردم ، توی پی دی اف راهنما آدرس وبسرویس اینه که باید جاگذاری شه : http://elkapos.com:81/ghasedaknetws.asmx?wsdl
وقتی وبسرویس رو باز کردی باید از توابعی که وبسرویس داره استفاده کنی که همش توی همون راهنما هست . مثلن من توی این مثالم ، توی این خط $results = $client->sendsms( $params ); تمام اطلاعاتی که باید به تابع sendsms بفرستم رو می فرستم و گفتم اگه در جواب ، تابع $results->smsresult == ‘success’ رو بگردوند بگه پیام با موفقیت ارسال شد و در غیر اینصورت چیز دیگه ای بنویسه .
الان توی این پی دی اف توضیح داده مثلن تابع Recharge برای شارژ کردنه و مقادیری که باید به این تابع بفرستی اینهاست :
Loginid ( int ) – Tell_Number (string) – Amount ( int ) – Service_Type ( int ) – BrokerId (int32) – B_ExtTrid (long )
یعنی همونطور که من تو مثالم مقادیر username و password و … رو به صورت یه پارامتر به تابع sendsms فرستادم تو هم باید اون مقادیری که تابع نیاز داره رو مشخص کنی و به Recharge بفرستی .
بعد هم گفته اگه تابع مقدار ۱ رو بفرسته ینی با موفقیت عملیات انجام شده و اگه ۰ رو فرستاد ینی خطایی رخ داده .
یعنی باید با یه دستور if مشخص کنی اگه مقدار ۱ برگردونده شد چی بشه و اگه نشد چی بشه .
خیلی راحت می تونی کد کار با این وبسرویس رو بنویسی ، ولی اگه امکانات دیگه می خوای به پروژت اضافه کنی خارج از وبسرویس اون برنامه نویسیش جداست ، رابط کاربری و طراحی صفحه هم که html و css هست و خارج از دستورات وبسرویسه کاملن و به سلیقه خودته

پاسخ یه این نظر

جاوید در پاسخ گفت :
پنج شنبه ۵ دی ۱۳۹۲ و ساعت ۱:۳۱ ب.ظ

سلام ممنون از راهنماییت، من قبل دیدن سایت تو، همش درگیر XML بودم.فکر میکردم مستقیما با XML باید کار کنم.
خوب من الان به یه error برخورد کردم. فکر میکنم تو تنظیمات باید کاری انجام بدم،وفتی یک شی از SoapClient ایجاد میکنم، اسکریپتم متوقف میشه و error-log سیستم این خطا رو نشون میده:

PHP Fatal error: SOAP-ERROR: Parsing WSDL: Couldn’t load from ‘http://service.elkapos.com/GhasedakNetWS.asmx?wsdl’

failed to load external entity “http://service.elkapos.com/GhasedakNetWS.asmx?wsdl”

پاسخ یه این نظر

جواد در پاسخ گفت :
شنبه ۷ دی ۱۳۹۲ و ساعت ۷:۱۰ ب.ظ

احتمالن روی سرورت soap فعال نیست .
روی لوکال هاست تست کن یا اینکه به پشتیبانی سرورت ایمیل بده ببین soap فعاله یا نه و اگه نبود بگو فعالش کنن :)

پاسخ یه این نظر

جاوید در پاسخ گفت :
دوشنبه ۹ دی ۱۳۹۲ و ساعت ۱۰:۳۲ ب.ظ

سلان داش جواد
شرکتی که وب سرویس ارائه می داد، آی پی من رو یادشون رفته بود برای سیتمشون مجاز کنند… به همین راحتی ۱ هفته سر کارمون گذاشته بودن.
مشکل حل شد ممنون

پاسخ یه این نظر

مسعود گفت :
چهارشنبه ۱۱ دی ۱۳۹۲ و ساعت ۲:۰۷ ب.ظ

سلام. اگه میتونید یه مثال ساده بزنید که توش هم کد سمت client باشه و هم سمت سرور که ۲ تا سایت به هم اطلاعات منتقل کنن.
مثالی که زدید فقط گرفتن خدمات رو نشون میده.
من می خوام بتونم وب سرویسی ایجاد کنم و با یه سایت دیگه بهش وصل بشم.
ممنون از راهنماییتون

پاسخ یه این نظر

جواد در پاسخ گفت :
جمعه ۱۳ دی ۱۳۹۲ و ساعت ۲:۴۸ ب.ظ

وبسرویس کارش ارسال یه چیزی و در ازاش گرفتن چیز دیگست ، این مثالم هم بر همین مبناست .
وقتی اطلاعات رو می فرسته منتظر می مونه تا جواب درخواستشو بگیره و متناسب با اون جوابی که گرفته پیغامی رو نشون می ده یا کاری رو انجام می ده .
دقیقن منظورت رو متوجه نشدم !

پاسخ یه این نظر

مسعود در پاسخ گفت :
شنبه ۱۴ دی ۱۳۹۲ و ساعت ۹:۲۶ ق.ظ

راستش من دو تا سایت تو ۲ تا جای مختلف دارم. می خواستم یه درخواست از اولی به دومی بفرستم و دومی از پایگاه دادش یه اطلاعاتی رو برگردونه.
چیزی که شما گذاشته بودید فقط بخش ارسال درخواست بود.
یه سایت پیدا کردم که کار ۲ طرفو توضیح میده. دوستان استفاده کنن.
http://www.sitepoint.com/web-services-with-php-and-soap-1/

فقط باید یه سری کد رو به طرف سرور اضافه کنید (فایل nusoap.php) که از اینجا می تونید بگیرید(توضیحشو همین سایت بالایی داده):
http://sourceforge.net/projects/nusoap

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

پاسخ یه این نظر

جواد در پاسخ گفت :
شنبه ۱۴ دی ۱۳۹۲ و ساعت ۲:۳۳ ب.ظ

مرسی از کامنت خوبت :)

پاسخ یه این نظر

علیرضا گفت :
چهارشنبه ۲۵ دی ۱۳۹۲ و ساعت ۱۲:۴۰ ب.ظ

آموزش خیلی خوبی بود، دمت گرم آقا جواد

پاسخ یه این نظر

سید حسین گفت :
دوشنبه ۷ بهمن ۱۳۹۲ و ساعت ۲:۵۲ ب.ظ

آقا میتونی یک کد شبیه کدی که گذاشتی واسه این لینک بهم بدی؟
http://www.asreesfahansms.com/smsSendWebService.asmx?wsdl
آخه با کد شما تست کردم جواب نداد.

پاسخ یه این نظر

جواد در پاسخ گفت :
پنج شنبه ۱۰ بهمن ۱۳۹۲ و ساعت ۴:۱۸ ق.ظ

این فقط آدرس وبسرویسه ، باید یه راهنمایی چیزی داشته باشه که مقادیر ورودی خروجی رو تعیین کرد ! الان من نمی دونم چه مقادیری رو به اینجا باید بفرستم و چه مقادیری رو دریافت کنم !

پاسخ یه این نظر

جاوید در پاسخ گفت :
پنج شنبه ۱۰ بهمن ۱۳۹۲ و ساعت ۵:۰۲ ب.ظ

اگر در دسترسی به وب سرویس محدودیتی ایجاد نکرده باشند،مثل همین آدرس که شما دادید، راه های زیادی هست.
تو php متد __getFunctions() از کلاس Soap این کار رو برات انجام میده و لیست متد های وب سرویس رو همراه با متغیر های ورودی و خروجی بهت بر میگردونه.
از روی کدهای xml هم به راحتی میشه فهمید به شرطی این که دقت , حوصله کافی داشته باشی.من این کار رو برای یکی از متدهای وب سرویست انجام دادم:
از پایین xml شروع کن بیا بالا ، تو بخش operation میتونی دنبال متدها بگردی مثلا من این متد رو تو خط ۴۳۸ دیدم و انتخاب کردم، اسمش رو میبینی که نوشته: SendSmsUDH

الان تو کد باید دنبال اسم متد بگردی،تو ردیف ۳۶۴ میبینیم که این متد هم متغیر خروجی میده و هم متغیر ورودی میگیره:

الان تو بخش message ها باید دنبال این اسم ها بگردیم:(SendSmsUDHSoapIn،SendSmsUDHSoapOut)
تو فقط دنمبال بخش ورودی متغیر گشتم و تو خط ۲۸۵ قسمت تعریف ورودی متد رو پیدا کردیم،میبینیم که نوشته پارامترس و بعدش المنت:

الان تو بخش element دنبال المنت SendSmsUDH میگردیم،تو خط ۷۵ پیداش کردیم،لیست مقادیر ورودی رو برای این متد پیدا کردیم،که ۶ تاست و اسم و نوع مقادیر رو برامون نوشته، البته چون داخل تگ هست یعنی همه ی داده ها ساده نیستند جز سومی که type=string هست، برای داده های که نوعشون صریحا مشخصا نشده مثل SendTypeدوباره با استفاده از اسمی که جلوی type نوشته جستجو انجام میدیم و نوع تعریفش رو پیدا میکنیم.

البته این کارها زمانی مفیده که واقعا هیچ دسترسی و راهنمایی به وب سرویس نداشته باشیم یا بخواهیم چیزهای اضافه تری در مورد وب سرویس بدونیم.

پاسخ یه این نظر

سید حسین گفت :
پنج شنبه ۱۰ بهمن ۱۳۹۲ و ساعت ۱:۲۰ ب.ظ

ممنون از پاسختان!
پیدا کردم آقا، گفتم شاید بشه از روی فرمت XML درش آورد.
ممنون

پاسخ یه این نظر

ایمان گفت :
چهارشنبه ۷ اسفند ۱۳۹۲ و ساعت ۷:۱۹ ب.ظ

سلام
بسیار عالی….متشکر :*

پاسخ یه این نظر

ایمان گفت :
پنج شنبه ۸ اسفند ۱۳۹۲ و ساعت ۶:۳۸ ب.ظ

سلام
ببخشید یه سوال:
چطور میتونم یک پیام برای مثلا صد شماره ارسال کنیم الان ما برای شماره ها از ارایه زیر استفاده میکنیم:

$parameters[‘to’] = array(‘0’ => “$mobile”,’1’=>”$mobile”);

میخوام مثلا لیست صد کاربر رو از دیتابیس بگیره و تو ارایه زیر قرار بده .گرفتن شماره ها رو از دیتابیس بلد هستم فقط نمیدونم چطور باید تو این قرار بدم

ممنون میشم راهنمایی کنید.

پاسخ یه این نظر

جواد در پاسخ گفت :
شنبه ۱۰ اسفند ۱۳۹۲ و ساعت ۲:۰۵ ب.ظ

خب اطلاعات رو که از دیتابیس می گیری توی یه آرایه قرار بده و به این تابع بفرست ، کار سختی نیست که :/

پاسخ یه این نظر

موسوی گفت :
شنبه ۱۰ خرداد ۱۳۹۳ و ساعت ۱۱:۲۷ ب.ظ

توی این همه سایت یه آموزش، کاربردی تر از آموزش شما ندیده بودم.
واقعا عالی بود و ممنونم

پاسخ یه این نظر

فرزاد روزدار گفت :
شنبه ۱۴ تیر ۱۳۹۳ و ساعت ۱۲:۱۵ ب.ظ

سلام.
لینک زیر را هم مطالعه کنید بد نیست.
http://sabafile.com/file/826/%D8%B3%D9%88%D8%B1%D8%B3-%D8%A7%D8%AA%D8%B5%D8%A7%D9%84-%D8%AF%D9%84%D9%81%DB%8C-%D8%A8%D9%87-%D8%B3%D8%A7%D9%85%D8%A7%D9%86%D9%87-%D9%BE%DB%8C%D8%A7%D9%85-%DA%A9%D9%88%D8%AA%D8%A7%D9%87

پاسخ یه این نظر

طراحی سایت گفت :
چهارشنبه ۱۵ مرداد ۱۳۹۳ و ساعت ۱۱:۵۲ ق.ظ

سایت خیلی خوبی دارین موفق باشین

پاسخ یه این نظر

نوروزی گفت :
سه شنبه ۲۷ آبان ۱۳۹۳ و ساعت ۱۱:۵۷ ق.ظ

خیلی عالی و مفید بود

پاسخ یه این نظر

چاپ کاتالوگ گفت :
سه شنبه ۱۲ خرداد ۱۳۹۴ و ساعت ۱:۱۷ ب.ظ

سایت خوبی دارید
ممنونم

پاسخ یه این نظر

نظر بدهید
  • نام: ضروری
  • ایمیل: ضروری
  • وبسایت:
  • پارسی را پاس بدارید و نظراتتان را با خط زیبای پارسی بنویسید. اگر صفحه کلید پارسی ندارید از بهنویس استفاده کنید.
    اگر می خواهید تصویرتان به صورت آواتار در کنار نظرتان نمایش داده شود از گراواتار استفاده کنید.
    ایمیلتون رو توی کادر زیر وارد کنید و عضو خبرنامه ی جنتلمن بشید تا همیشه آخرین مطالب رو توی ایمیلتون بخونید :
    اگه نمی خواید از طریق ایمیل جنتلمن رو دنبال کنید راه های دیگه ای هم برای اشتراک هست !
    آرشیو ماهانه
    برچسب ها
    لینک های خوشمزه
  • برو بچه ها بلاگر
  • دوستای مجازی
    تبلیغ
  • مطالبی که می نویسم آزاد هستند و انعکاس آن از هر طریقی مشکلی ندارد!
    Jentelman.com . Made With In IRAN . 2010- 2017