2015-02-09 91 views
0

我有一些PHP代碼,它檢查HTTP Referer並相應地設置一批cookie,它應該檢測HTTP引用者是什麼,並且只設置來自外部源的Cookie,所以不在當前域。現在,當我點擊外部域名時,它可以工作並設置cookie,但當我點擊任何內部網站鏈接所有cookie時(除了日期設置爲空白外,PHP不是我的母語,所以任何幫助都是讚賞在IF ELSE語句中設置PHP cookie

我的代碼如下:?

$CheckURL = substr($_SERVER[HTTP_REFERER],7,21); 
if($CheckURL <> "www.sitesithere.co.uk") { 

// external link so lets get the data 
setcookie("XX_HTTP_First_2PHP", $varRefererCheck, time() + (86400 * 30), "/"); 
setcookie("XX_Source_First_2PHP", $varSource, time() + (86400 * 30), "/"); 
setcookie("XX_Medium_First_2PHP", $varMedium, time() + (86400 * 30), "/"); 
setcookie("XX_Campaign_First_2PHP", $varCampaign, time() + (86400 * 30), "/"); 
setcookie("XX_GCLID_First_2PHP", $vargclid, time() + (86400 * 30), "/"); 
setcookie("XX_First_Date_2PHP", date('l jS \of F Y h:i:s A'), time() + (86400 * 30), "/"); 
} else { 
// Internal link do nothing! 

} 

回答

0

有幾件事情:

  • 首先,把引號HTTP_REFERER,否則就會認爲你正在使用一個常數,不一個文字字符串
  • 其次,<>不是在PHP中檢查「不等於」的方法。相反,使用!=運營商
  • 第三,HTTP_REFERER是不是一個很好的方式來處理此問題。 From php.net:

    將用戶代理引用到當前頁面的頁面地址(如果有的話)。這由用戶代理設置。並非所有的用戶代理都會設置它,有些提供了將HTTP_REFERER修改爲功能的功能。總之,它不能真正被信任。