PDA

View Full Version : مشکل در curl_exec



reza_pnu_ney
چهارشنبه 15 آذر 1391, 16:15 عصر
با سلام خدمت دوستان
من دارم کد اتصال به یک سرویس دهنده پیامک رو می نویسم. اما یک مشکل عجیب دارم.
کد رو توی لوکال هاست نوشتم داره درست کار میکنه و پیامک ارسال میشه

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


error_reporting(E_ALL);
ini_set('display_errors', '1');

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,ADDR);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 500);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $txt );

curl_setopt($ch, CURLOPT_FAILONERROR, 0);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER,array("authorization:Basic ".rahyab_Base64Encode(USERNAME.":".PASSWORD)));
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_COOKIEFILE, 1);

$result = curl_exec($ch);
curl_close($ch);

print_r( $result) ;
echo $result;

که ADDR آدرس سرویس دهنده پیامک هست.USERNAME و PASSWORD هم که مشخصه . $txt هم متن پیامک و شماره هاست که قراره ارسال بشه

نکاتی که لازمه بگم
1- این کد توی لوکال داره کار میکنه
2- هاست من لینوکسه و CURL و SSL توش فعاله
3- هاست اشتراکی و خارج از کشوره
4- سرویس دهنده ASP هست
5-بررسی که کردم IP هاست توی سرور سرویس دهنده بلاک نبود

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

mamali-mohammad
چهارشنبه 15 آذر 1391, 20:08 عصر
باز زبان فارسی مشکل داره احتمالا
جای $txt از رشته انگلیسی استفاده کن ببین چی میگه

reza_pnu_ney
پنج شنبه 16 آذر 1391, 12:51 عصر
از این مورد نیست چون توی لوکال وقتی تکست رو اشتباه میزنی یا یوزر پسورد رو اشتباه میزنی پیغام خطا میده
اما اینجا اصلا هیچ پیغامی نمیاد فقط بعد از مدت زیادی تایم اوت میشه
تایم اوت رو بالا بردم بازم هیچ اتفاقی نمیافته
اطلاعات curl رو با


print_r(curl_getinfo($ch));
گرفتم که این اطلاعات رو میده

Array ( [url] => http://url.iransmsserver.com:2055/CPSMSService/Access [content_type] => [http_code] => 0 [header_size] => 0 [request_size] => 0 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 30.029054 [namelookup_time] => 0.000762 [connect_time] => 0 [pretransfer_time] => 0 [size_upload] => 0 [size_download] => 0 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => -1 [starttransfer_time] => 0 [redirect_time] => 0 ) Errors: 28 connect() timed out!

mamali-mohammad
پنج شنبه 16 آذر 1391, 13:31 عصر
به نظرم به مدیر هاستتون بگید
شاید چیزی غیرفعال باشه

reza_pnu_ney
پنج شنبه 16 آذر 1391, 15:41 عصر
با مدیر هاست صحبت کردم گفت که همه چیز فعاله

mamali-mohammad
پنج شنبه 16 آذر 1391, 15:45 عصر
روی هاست دیگه تست کن ببین جواب میده یا نه

reza_pnu_ney
پنج شنبه 16 آذر 1391, 15:47 عصر
یه هاست لینوکس از یه شرکت دیگه هم گرفتم کد رو روش نصب کردم . بازم مشکل حل نشد
جالبه که کد روی لوکال هاستم کار میکنه
xampp + ویندوز 7

reza_pnu_ney
پنج شنبه 16 آذر 1391, 18:44 عصر
این کد php رو مشاهده بفرمایید



<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
define( 'ADDR', 'http://url.iransmsserver.com:2055/CPSMSService/Access' );

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,ADDR);
$result = curl_exec($ch);

echo '<pre>';
print_r(curl_getinfo($ch));
echo '</pre>';

echo 'Errors: ' . curl_errno($ch) . ' ' . curl_error($ch) . '<br><br>';

curl_close ($ch);

echo $result . 'EOF';
?>

وقتی توی لوکال اجرا می کنم این خروجی رو میده

CPAS Service is Running. Array ( [url] => http://url.iransmsserver.com:2055/CPSMSService/Access [content_type] => [http_code] => 200 [header_size] => 103 [request_size] => 84 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.125 [namelookup_time] => 0 [connect_time] => 0.047 [pretransfer_time] => 0.047 [size_upload] => 0 [size_download] => 26 [speed_download] => 208 [speed_upload] => 0 [download_content_length] => 26 [upload_content_length] => -1 [starttransfer_time] => 0.125 [redirect_time] => 0 ) Errors: 0
1EOF

اما توی هاست که میذارم و اجرا می کنم تایم اوت میشه

reza_pnu_ney
جمعه 17 آذر 1391, 14:54 عصر
یه نفر میتونه این کد رو توی هاستش اجرا کنه ببینه آیا همین پاسخ رو میده تا تایم اوت میشه؟
اگه توی هاست شما جواب بده میشه به یه نتایجی رسید.
ممنون میشم