3

寄付ページのコードを書いていて、ページを更新せずに CC 情報を送信し、オーバーレイを使用して結果を表示したいと考えています。jQueryを使用してオーバーレイが正しく機能し、php ifステートメントを使用して、現在のページにポストバックし、CCトランザクションのcurlブロックの変数を正しく取得できます。しかし、私は結果を得ることはありません。ページの POST/更新を許可すると正常に動作しますが、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は初めてですが、コーディング全般について少し知っています。

ありがとう。

4

2 に答える 2

1

私が見ることができることから、あなたのコードはワードプレス関数を呼び出していないため、依存関係はありません。cURL 呼び出しが正常に完了していないようです。これをデバッグする必要があります。PHP エラー レポートがオンになっており、php.ini で E_All に設定されていることを確認します。また、curl オプション FAILONERROR を true に設定し、curl エラー関数を使用してすべてのエラーをキャッチしてください。

これに失敗すると、サーバーから受信した内容を確認するために HTTP ヘッダーを分析する必要がある場合があります。CURLOPT_FOLLOWLOCATION を true に設定して、リダイレクトを試してみてください。

于 2012-10-23T13:43:13.303 に答える
0

さて、それはディレクトリの問題であることが判明しました。Wordpress は Web サイトのルート ディレクトリに設定しますが、通常の html はファイルの場所に相対的なディレクトリを持ちます。そのため、証明書を取得できませんでした。

于 2012-11-08T17:55:29.340 に答える