2012-10-18 45 views
3

我正在編寫捐贈頁面的代碼並希望提交CC信息而不刷新頁面,並使用疊加層顯示結果。我使用jQuery使用正確的覆蓋工作,並使用php if語句,我可以回發到我正在訪問的頁面,並正確獲取CC事務的curl塊的變量。但是我從來沒有得到任何結果。如果我允許頁面POST /刷新它工作正常,但似乎Wordpress不會允許我從不直接在環境中運行的頁面運行curl。PHP/Curl/Wordpress發佈數據時不刷新頁面,捲曲不起作用

有什麼建議嗎?

jQuery.post('sameurl', jQuery("#donateform").serialize(), function(data) { 
    jQuery('#overlay_msg').html(data); 

 $ch = curl_init(); 

     curl_setopt ($ch, CURLOPT_URL,$hoststring); 
     curl_setopt ($ch, CURLOPT_POST, 1); 
     curl_setopt ($ch, CURLOPT_POSTFIELDS, $xml); # the string we built above 
     curl_setopt ($ch, CURLOPT_SSLCERT, $cert); 
     curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); 
     curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); 
     curl_setopt ($ch, CURLOPT_VERBOSE, 1); 

     $result = curl_exec ($ch); 

我硬編碼的$ XML字符串,以及設法得到它的工作。我是php/curl/ajax的新手,但通常對編碼有所瞭解。

謝謝。

+0

我也將工作代碼放在wordpress之外,它停止工作,所以它必須是某種依賴關係,但我真的不知道在哪裏尋找。 – xeschylus

回答

1

從我可以看到你的代碼沒有調用任何wordpress函數,所以沒有依賴關係。這聽起來像cURL調用沒有成功完成,你將需要調試。確保php錯誤報告已打開,並在php.ini中設置爲E_All,並將捲曲選項FAILONERROR設置爲true,並確保使用捲曲錯誤函數捕捉任何錯誤。

如果失敗,您可能需要分析HTTP標頭以查看從服務器接收到的內容。您可能只需將重定向嘗試設置CURLOPT_FOLLOWLOCATION設置爲true即可。

+0

感謝您的嘗試,我不得不刷新頁面併發回自己,只做數據驗證/謝謝你的模式/覆蓋。 – xeschylus

0

嗯,事實證明這是一個目錄問題。 WordPress的設置你的網站根目錄,而普通的HTML有你的目錄相對於文件的位置。所以我無法獲得我的證書。