2011-08-08 136 views
1

背景:我有一個網站,我們稱之爲AwesomeSite.com;它處理我所有的流量。此外,出於營銷目的,我有第二個域名,我們稱之爲PromoForAwesomeSite.com;它將所有流量直接重定向到AwesomeSite。這兩個網站都是使用PHP,MySQL和Apache構建的。創建會話

問題:我想根據用戶到我的網站的方式向用戶提供不同的內容。具體而言,如果用戶從PromoForAwesomeSite重定向,我想顯示廣告。

問題:如何檢測用戶是否來自PromoForAwesomeSite,從而爲他們創建不同的會話狀態?

附:我深知這種做法的缺點,因爲一旦會話cookie被刪除宣傳片用戶無法看到的促銷內容,除非他們再次訪問重定向網站(不太可能)。不幸的是,這不能被幫助。

+1

爲什麼$ _ SERVER ['HTTP_REFERER']並不適用於你的目標是什麼? – heximal

+0

爲什麼不將變量傳遞給重定向的URL?例如。在PromoForAwesomeSite.com'header('Location: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參數的時可能性。不知道你是如何從您的促銷網站重定向,但如果它的PHP,你可以做這樣的事情,如果沒有你會明白我的意思:)

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

因此,而不是(或附加到)的想法檢查推薦人還可以檢查此字符串並保存在會話中。

1

你的情況,如果你在登陸的時候自動重定向引薦不會進行下去。因此,如果我是你,我會處理這樣的:

1.在PromoForAwesomeSite.com

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

2.在AwesomeSite.com

一。創建promo.php網關頁面

灣在網關頁面

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 
} 

這樣你將解決與會議的問題。