2014-10-31 146 views
0

我在這裏是新來的,而不是在PHP的專業人士,但需要一個小小的幫助。事實上,我的服務產品已被我的代碼上傳到我的主機上。但是當我將代碼上傳到我的託管帳戶時,它並不能正常工作,並且在聯繫支持人員後,我被告知要在某些部分使用php curl代碼來使其運行。任何人都可以請幫我解決這個問題。PHP curl不能正常工作

原始代碼:

<?php 

$MobileNumber=substr($_REQUEST['VerifiedNumber'],-10); 

$APIKey="<Your Dial2verify API Key Here>"; 
$SenderID="<6 ALPHABETIC CHARACTERS ONLY>"; 
$Message="<Your SMS Text Here>"; 

echo `curl -XPOST "http://host/SMS/SEND/$APIKey/$SenderID/$MobileNumber" -d "Msg=$Message"`; 

?> 

我不知道如何使上述代碼轉換成捲曲代碼,使其工作。

謝謝:)

+0

您正在使用命令行卷曲你的代碼。支持告訴你curl,但它們的意思是CURL for PHP;)請參閱doc php.net/curl知道如何使用php的擴展。 – 2014-10-31 08:05:15

+2

@Akuti,請先檢查CURL是否安裝! <?php phpinfo(); ?&也是你編寫的命令行代碼。 – 2014-10-31 08:05:27

+0

向我們顯示您的錯誤/警告? – Umair 2014-10-31 08:06:17

回答

0

它不工作的原因是,你在哪裏試圖調用捲曲的命令行版本(也做呼叫錯誤)。

最好的方法是使用php cURL模塊進行此調用。確認:第一,它是由與內容

<?php phpinfo(); 

如果捲曲出現在該網頁上,你是好去創建一個info.php的文件進行安裝。

很顯然,我還沒有測試此代碼,但像這樣的東西的能力應該工作

$msisdn = substr($_REQUEST['VerifiedNumber'],-10); 
$apiKey = "<Your Dial2verify API Key Here>"; 
$senderId = "<6 ALPHABETIC CHARACTERS ONLY>"; 
$message = "<Your SMS Text Here>"; 

$url = "http://host/SMS/SEND/$apiKey/$senderId/$msisdn"; 

$ch = curl_init(); 

    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, array('Msg' => $message)); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

    $result = curl_exec($ch); 

curl_close($ch); 

echo 'Response from server:'; 
print_r($result); 
+0

嗨,先生, 我試過使用上面的代碼,但它給出了一個錯誤「錯誤523光線ID」 – 2014-10-31 08:29:21

+0

這是[錯誤從CloudFlare](https://support.cloudflare.com/hc/en-us/articles/200171946-錯誤-523)。您嘗試訪問的服務器受其保護。從錯誤信息看,它看起來像原始服務器有問題。 – codeaken 2014-10-31 08:31:38

+0

但先生,當我使用默認代碼它說:「{」APIStatus「:」錯誤:收件人號碼應該是10位數的印度電話號碼「}」但是當我用你給我的代碼錯誤是錯誤523 – 2014-10-31 08:39:11

0

通過使用',你正在使用通過命令行卷曲。

1,檢查CURL extension for php是否在你的環境下正確安裝。打印時檢查CURL是否可用<?php phpinfo();?>

第二,如果安裝了CURL,請檢查php.net/curl以瞭解如何使用CURL。

這裏一個簡單的例子來調用Web服務的:

<?php 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,"http://www.host.com/SMS/SEND/$APIKey/$SenderID/$MobileNumber"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS,"Msg=This+is+my+text+message"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

$reply = curl_exec ($ch); 

curl_close ($ch); 


echo $reply; 
?> 
+0

感謝您的快速回復先生,我已經檢查curl是否啓用了PHP。 我還沒有得到這些選項 $ MobileNumber = substr($ _ REQUEST ['VerifiedNumber'], - 10); $ APIKey =「<您的Dial2verify API密鑰在此>」; $ SenderID =「<6僅限字母字符>」; – 2014-10-31 08:15:39