0

PHPでいくつかの変数を取得し、変数を投稿変数として送信して、ユーザーをサードパーティのサイトにリダイレクトしようとしています。これはおそらく Cookie を使用すると簡単になると思いますが、サードパーティは既に投稿を処理するように設定されています。これを行う方法について何か提案はありますか?

4

5 に答える 5

2

使用できるテクニックがいくつかあります。1 つは、POST 変数を反復処理してフォームに追加し、おそらく Javascript onLoad を使用してフォームを再送信することです。

<html>
    <body onload="document.forms[0].submit()">
        <form action="new-location.php" method="post">
            <?php foreach( $_POST as $key => $val ): ?>
                <input type="hidden" name="<?php echo htmlSpecialChars( $key, ENT_COMPAT, 'UTF-8' ) ?>" value="<?php echo htmlSpecialChars( $val, ENT_COMPAT, 'UTF-8' ) ?>">
            <?php endforeach; ?>
        </form>
    </body>
</html>

もう 1 つのオプションは、PHP と cURL を使用して、データをリモート サイトに送信することです。

url_setopt($ch, CURLOPT_POSTFIELDS, $_POST);

http://www.php.net/manual/en/function.curl-setopt.php

于 2012-07-24T19:25:42.807 に答える
1

PHP ページで、cURL を使用してサードパーティの Web サイトへの接続を開き、次の関数を使用します。

curl_setopt($Curl, CURLOPT_POST, 1); 
curl_setopt($Curl, CURLOPT_POSTFIELDS, 'field1=allo&field2=fsdfsd');

サードパーティは、実際の POST リクエストでもリクエストを受け取ります。サードパーティの Web サイトから回答を読むこともできます。

于 2012-07-24T19:24:47.630 に答える
0

いくつかのグーグルは、フォームに関する恐ろしいクラッジを除いて、cURLが進むべき道であることを示唆しています。私は専門家ではありませんが、このリンクhttp://www.electrictoolbox.com/php-curl-form-post/と php cURL リファレンスが役立つはずです。

于 2012-07-24T19:25:27.160 に答える
0

十分な情報ではありませんが、javascript (jQuery) の助けを借りてフォームを使用して送信できるかもしれません

<script>
$(function(){
    $('#form').submit();
});
</script>
<form action="external.url/page.php" action="post" id="form">
<input type="hidden" name="variable" value="value" />
</form>
于 2012-07-24T19:27:13.857 に答える
0

投稿は、ユーザーのブラウザから送信する必要があります。これを行う一般的な方法は、投稿したい変数を含む非表示の入力要素を持つフォームを含む中間ページを使用し、Javascript を使用してロード時にフォームを自動的に送信することです。

于 2012-07-24T19:24:33.167 に答える