0

A と B の 2 つのサイトがあります。

サイト A コード:

<?php
if ($_POST['data']) echo "Thank you";
?>

<form action="" method='POST'>
    <input type="text" name='data'>
<input type="submit">
</form>

サイト B コード:

 <?php 
  $url = 'http://site_a.com';   
  $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt( $ch, CURLOPT_POST, true ); 

    $data = curl_exec($ch);
    curl_close($ch);

    echo $data;

サイト A からのサイト B 表示フォーム。すべて問題ありませんが、サイト B のサンキュー ページも表示する必要があります。サイト A にリダイレクトされました。サイト A からのすべてのステップ (フォーム / 検証結果 / お礼のページ) をサイト B に表示するにはどうすればよいですか? なので、iFrameのように表示する必要があります。JSONP も使用できることはわかっていますが、ソース URL をコードで表示することはできません (Google のインデックス登録を防ぐためにサイト A の URL を公開したくありません)。

4

2 に答える 2

1

actionサイト A からフォームをカールすると、属性がサイト A のフォームの完全なアドレスになるため、サイト A にリダイレクトされます。

サイト B に留まりたい場合は、次のことを行う必要があります。

  • actionサイト B でフォームをエコーする前に、属性の内容を削除します。そうすれば、フォームはそれ自体 (サイト B) に投稿されます。
  • サイト B のコードにチェックを追加して、投稿が行われたかどうかを確認し、投稿された場​​合は、サイト A への curl 呼び出しに投稿パラメーターを追加します。その後、サイト A は正しい結果を返します (ありがとうございます)。

両方のサイトでフォームを別々に公開する方がおそらく簡単です...

于 2012-11-15T22:19:55.217 に答える
0

そのためにiframeまたはajaxリクエストを使用します。その後echo $data、サイトAのソースがサイトBに埋め込まれ、ブラウザで1つのサイト全体として解析されます(サイトAのフォームではありません)。

于 2012-11-15T22:07:25.817 に答える