2011-08-08 7 views
1

背景:私はAwesomeSite.comと呼ばれるウェブサイトを持っています。それは私のすべてのトラフィックを処理します。さらに、マーケティングの目的で、私はPromoForAwesomeSite.comと呼ぶ2番目のドメインを持っています。すべてのトラフィックをAwesomeSiteにリダイレクトします。どちらのサイトもPHP、MySQL、Apacheを使用して構築されています。参照元からセッションを作成

問題:自分のサイトへの来訪状況に基づいてユーザーに異なるコンテンツを提供したいと考えています。具体的には、ユーザーがPromoForAwesomeSiteからリダイレクトされた場合、プロモーションを表示したい。

質問:ユーザーがPromoForAwesomeSiteから来て、そのために異なるセッション状態を作成したことを検出するにはどうすればよいですか?

p.s.セッションCookieが削除されると、ユーザーはリダイレクトサイトを再訪しない限り、プロモーションコンテンツを見ることができないという点で、このアプローチの欠点をよく認識しています。残念ながら、これは助けられません。

+1

$ _SERVER ['' HTTP_REFERER ']はあなたの目的には当てはまりませんか? – heximal

+0

リダイレクトされたURLに変数を渡すのはなぜですか?例えば。 On PromoForAwesomeSite.com 'header( '場所:http://www.awesomesite.com/index.php?promo=1');'。次に、AwesomeSite.comで 'if($ _GET ['promo']){/ * show promos * /}'をチェックしますか? – Shef

答えて

3

$_SERVER['HTTP_REFERER']を利用して、参照文字列にPromoForAwesomeSite.comが含まれているかどうかを確認できます。例えば、このような何か:リファラとして

session_start(); 

if(substr_count($_SERVER['HTTP_REFERER'] , 'PromoForAwesomeSite.com')){ 
    $_SESSION['from_promo'] = 1; 
} 

は、ブラウザによってブロックすることができますので、あなたは、プロモーションサイトからリダイレクト文字列にGETのPARAMを送信する可能性の中に見えるかもしれません。ないあなたのプロモーションサイトからリダイレクトではなく、あなたが、私は:)

HEADER('Location: http://AwesomeSite.com/index.php?from=promo'); 

ので、代わりの(またはそれに追加で)を意味するものアイデアを取得する場合は、そのPHPは、あなたが、このような何かを行うことができるかどうかチェックしているか確認してくださいあなたはこの文字列をチェックしてセッションに保存することもできます。

1

あなたの場合、着陸時に自動リダイレクトを行うと、リファラーは実行されません。 AwesomeSite.com

Aを

1. PromoForAwesomeSite.com

header('Location: http://www.awesomesite.com/promo.php'); 

2:私があなただったらこのように、私はこのようにそれを扱うでしょう。 promo.phpゲートウェイページを作成する

b。ゲートウェイページで

setcookie('Promo', '1', time()+(5 * (24 * 3600))); // five days promotion cookie - adjust it 
header('Location: http://www.awesomesite.com/index.php'); 

c。 index.php

if($_COOKIE['Promo']){ 
    // show promotion 
} 

この方法では、あなたは同様にセッションの問題を解決します。

関連する問題