2

この時点では純粋に仮説であり、コードはまだありません。これを行うための最良の方法を見つけようとしています。私たちは「A」社であり、「B」社と「C」社の 2 つのパートナーがいます。サインアップ フォームでデータを収集し、それをパートナー "B" またはパートナー "C" に渡します。この部分は問題なく機能しています。フロント エンドに ajax を、バック エンドに cURL プロセッサを使用してこれを行っているため、誰も私たちのサイトを離れず、パートナーのフォームにデータを直接投稿するだけです。

残念ながら、パートナー "B" と "C" の必須データのため、投稿するフォームが異なり、パートナーごとに 1 つずつ、2 つの別個の HTML フォーム ファイルが必要です。問題は、パートナーごとに個別の URL ではなく、1 つの URL からすべてを行う必要があることです。

特定の URL を持つ「ハンドラー」ページを使用すると思います - http://www.example.com/parterForm.php

次に、「ハンドラー」ページで、スイッチが正しいコンテンツを提供するようにします。データの送信先を均等に分割する方法が必要です。たとえば、非常に詳細な MS レベルで切り替えを行いたいと思います。

時間 = 0 ~ 500 ミリ秒の場合 - パートナー B ページを提供します。

時間 = 501 ~ 1000 ミリ秒の場合 - パートナー C ページを提供します。

すべて「ハンドラー」ページ内で行われます-phpが含まれているようにフォームを呼び出しますか?

これは特定のコードに関する質問ではないことを認識しており、お詫び申し上げます。これは私がこれまでに行ったことのないことであり、これを行う方法を理解しようとしています。私はコーディングを担当するクリエイティブ ディレクターですが、他にリソースはありません。ありがとう。

4

2 に答える 2

2

うーん、はい、できます。実際、それはかなりうまくいくでしょう。重要なことは、フォームが適切なパートナーに届くようにすることです。そのために使用$_SESSIONするか、送信されたフィールドを確認して、どのパートナーが選択されたかを推測できます。

例えば:

if( fmod(microtime(),1) < 0.5) include("forms/partner1.php");
else include("forms/partner2.php");

次に、提出時に:

$partner1fields = array("name","email","country","dateofbirth");
$partner2fields = array("name","address","postcode","ethnicity");
// the above are examples - they should correspond to the $_POST keys you expect
// now check if they match. Array equality depends on order, so sort first
$postkeys = array_keys($_POST);
sort($postkeys);
sort($partner1fields);
sort($partner2fields);
if( $postkeys == $partner1fields) { /* submit to partner 1 */ }
elseif( $postkeys == $partner2fields) { /* submit to partner 2 */ }
else {
    echo "<p>Given keys did not match either partner</p>";
    echo "<p>POST keys: ".implode(", ",$postkeys)."</p>";
    echo "<p>Partner 1 keys: ".implode(", ",$partner1keys)."</p>";
    echo "<p>Partner 2 keys: ".implode(", ",$partner2keys)."</p>";
    echo "<p>Please report this error to the site administrator.</p>";
    exit;
}
于 2013-10-11T14:40:47.323 に答える