2012-10-13 109 views
0

我有一個問題在這裏PHP:製作一個捲曲的請求

<?php 
     include('smsconfig.php'); 
     include("SMTPconfig.php"); 
     include("dbconnect.php"); 

     define("SITE_URL", "http://gf2fyu.blah.com"); 
     $GLOBAL_REST_URL = "gf2fyu.domain.com/organization/"; 

     $headers = array(
         'X-MYDOMAIN-Secret:VuFlRQv40SUp0y1AXflMD0hWw8ZiiTu08f9ZXc0AYFc=', 
         'Content-Type: application/json; charset=UTF-8', 
         'Accept: application/json; charset=UTF-8', 
     ); 
     //$json = array2json($ages); 
     $curl_handle=curl_init(); 
     curl_setopt($curl_handle,CURLOPT_URL,$GLOBAL_REST_URL); 
     curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2); 
    // curl_setopt($curl_handle, CURLOPT_POSTFIELDS,$json); 
     curl_setopt($curl_handle, CURLOPT_HTTPHEADER, $headers); 
     curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1); 
     $buffer = curl_exec($curl_handle); 
     curl_close($curl_handle); 
     $getit = json_decode($buffer, true); 
     $smskey = substr(number_format(time() * rand(),0,'',''),0,5); 
     print_r($getit); 
?> 

上面的代碼爲我工作的罰款,如果我爲我的本地服務器和mozila REST

客戶端上運行,但每當我試圖把這個代碼放在生產版本

這段代碼沒有打到其餘的服務器。

請告訴我這裏有什麼問題?

我使用MOzila也是相同的標題是工作的罰款

我運行Nginx的

+0

許多服務器都禁止捲曲。你嘗試過'file_get_contents()'嗎? – Dutchie432

+0

是否有拋出異常? –

+0

不,它不是服務器 – user1667633

回答

1

一切真的是在的意見,但讓我們愛不釋手秩序。

1)curl可能沒有安裝在服務器上的PHP中。要找出問題,請打開錯誤報告(或檢查錯誤日誌)。或者,更強大的方法是檢查功能。以下添加到您的代碼(僅包括後)

if (!function_exists('curl_init')) { 
    die('Curl not installed'); 
} 

解決方法:你可以嘗試的file_get_contents,但在評論中所指出的,一般不建議,因爲這也將被禁用。如果您需要傳遞標題,您可以在「上下文」中執行此操作(呼叫中的第三個參數 - 請檢查手冊)。更好的選擇是安裝curl(或獲得支持來安裝它)。

2)可能啓用了防火牆。您可以通過檢查curl_getinfo()並將結果轉儲到屏幕(用於測試)來建立此目的。這會告訴你它是否被阻止或通過。有關更多信息,請參閱手冊(上面鏈接)。

3)您的代碼中可能存在導致問題的錯誤。檢查錯誤日誌,或打開error_reporting與

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

雖然,當你最後投入生產時記得刪除這些行。

+0

你已經教會了我一個很好的教訓來調試感謝,但真的我的問題與我的nginx服務器有關 – user1667633