2011-11-30 90 views
0

嘿所以我有這個網頁,即時通訊CURL張貼一些信息到我的另一個網站,但我有一個錯誤,通常擅長於PHP,但我無法找到任何錯誤。CURL意外T_STRING

錯誤:

解析錯誤:語法錯誤,在/home/aaran/public_html/tests/will/1.php意想不到T_STRING上線13

(這就是與CURLOPT_POSTFIELDS就行了。

繼承人的網址看到劇本http://hm.vc/tests/will/1.php

腳本:

<?php 
foreach($_GET as $key => $value){ 
    $input[$key] = urldecode(strip_tags($value)); 
} 

$secureurl = "http://hm.vc/tests/will/2.php"; 

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, $secureurl); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_POST, 1); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $input); 
                
$hello = curl_exec($curl); 

curl_close($curl); 


echo "Hi " . $input['name'] . ", Thanks for blah blah blah blah"; 
?> 

希望你能幫助..謝謝!

+0

您的腳本適合我。 - 編輯 - 沒關係。你可以在$ secureurl設置之前轉儲$ input嗎? – favoretti

+0

爲了讓腳本很好地理解,看看$ input是持有的,只需使用POSTFIELDS註釋setopt即可。 – favoretti

+0

語法錯誤意味着代碼不能被標記。它與你編寫它的方式有關,而不是它如何運行。 – alex

回答

2

由於我不知道$_GET陣列中使用了什麼數據,我只能猜測,但如前所述,在創建它之後,請執行print_r($input)以準確查看您傳遞的數據。

看起來,使用CURLOPT_POSTFIELDS的數組要求所有值都是標量。如果其中一個$_GET變量是一個數組,則可能會遇到問題。請參閱http://php.net/manual/en/function.curl-setopt.php,特別是2010年7月28日的評論,其中指出:

「使用數組設置CURLOPT_POSTFIELDS設置時要小心。用於設置POST字段的數組必須只包含標量值多維數組或對象缺少__toString實現將導致Curl錯誤

如果需要使用POST請求發送非標量值,請考慮在傳輸之前序列化它們。

難道是這樣嗎?

+1

好吧...我必須知道運行時解決方案如何解決編譯時問題。 OP請讓我們知道發生了什麼? –

相關問題