HTTP_REFERERフラッシュを定義する方法

背景は以下の通りです。 特定のリソースに、ユーザーコンテンツでいくつかの操作を実行するFlashウィジェットがあります。 私の場合、これらは写真です。 タスクは次のとおりでした。 外部リソースからインプレッション統計を収集する必要があります。 ユーザーの画面でフラッシュドライブが何回、どこでフラッシュしたか。 実際には、印象はフラッシュドライブ自体ではなく、その中で変化する写真を考慮すべきであるという事実によって、タスクは複雑でした 。 フラッシュ内のコンテンツの表示も考慮する必要がある場合は、残念ながら、このウィジェットを作成したフラッシャーに目を向ける必要があります。 なぜ、私は後で説明します。



それでは始めましょう。 フラッシュドライブはリファラーを送信できない、または送信できることを完全に知っていますが、このリファラーはフラッシュドライブ自体の物理アドレスになります。 何が良くないのか、絶対に必要ありません。 では、リファラーをどのように渡しますか? 非常にシンプルで、フラッシュドライブをphpスクリプトでラップするだけです。 ここで、番組を説明するためにリファラーを取得します。 私のようなタスクが「アスタリスク付き」の場合、この方法でリダイレクトとリクエストへのパラメーターの追加を行う簡単なトリックを行います。 PHPスクリプトでリファラーを受け取った後、フラッシュドライブへの新しいリクエストを生成し、リダイレクトを行います。 フラッシュドライブは、このパラメーターを受け取った後、サーバーへの各リクエスト(私の場合は写真)に追加します。このリクエストは、リファラーを含む必要なすべての情報を考慮するスクリプトによって処理されます。 さて、すべてが明確になるように、ユートピアコードの小さな例を示します(チェックなしなど、ロジックのみです。無駄にinしないでください)。



//  flashcatch.php $file = './flash.swf'; $referer = $_SERVER['HTTP_REFERER']; //       ,      // ... //    header('Content-Type: application/x-shockwave-flash'); //    . echo file_get_content($file); exit();
      
      







フラッシュドライブ自体の内部のコンテンツインプレッションの後続のアカウンティング用のパラメーターを追加する必要がある場合、コードはもう少し複雑になります。



 //  flashcatch-trick.php $file = './flash.swf'; $referer = $_SERVER['HTTP_REFERER']; //        referer. if (strpos($_SERVER['REQUEST_URI'], '?')) { $connector = '&'; } else { $connector = '?'; } $newRequest = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] . $connector . 'referer=' . $referer; //            referer    if (isExternalRequest() && !$_REQUEST['referer']) { header ('Location: ' . $newRequest); exit(); } //    header('Content-Type: application/x-shockwave-flash'); //    . echo file_get_content($file); exit();
      
      







そして、ここでは、フラッシャーについて覚えています。USBフラッシュドライブでは、リファラーが登録されている新しいパラメーターを渡します。私の場合は、リファラーパラメーターです。 そして、フラッシャーは、写真(オーディオ、ビデオ)を受信するためのサーバーへの要求を生成し、フラッシュドライブの内容が表示されるときにそれとサーバーを置き換え、リファラーとディスプレイをそれぞれ考慮します。



関数isExternalRequestは指定されていません;自分で記述するのは難しくありません。 その本質は明らかだと思います。外部要求の場合はtrueを返し、サーバーがUSBフラッシュドライブを要求した場合はfalseを返します。



All Articles