2012-04-25 1 views
1

내 작품에서 나는 종종 우리의 교통량이 어디에서 오는 것인지 알아낼 필요가있다. 우리는 Google 광고를 구매하고 해당 트래픽은 URL의 쿼리 문자열로 식별됩니다. (mywebsite.com/?x="google_ad_group_4 ").추천 페이지 (PHP)를 찾아내는 것

모든 페이지에는 $ _GET [ 'x']가 있으면 $ _SESSION [ 'x']을 $ _GET [ 'x'] (으)로 설정하는 세션이 포함되어 있습니다. 더 $의 _GET [ 'X'] 나는 그들이 어디에서 왔는지보고 $ _SESSION 그것을에서 설정하는 몇 가지 다른 옵션을 통해 이동이없는 경우 [ 'X'] :

$refurl = parse_url($_SERVER['HTTP_REFERER']); 
$query = $refurl['query']; 
parse_str($query, $result); 

if (isset($result['q'])&& strstr($_SERVER['HTTP_REFERER'],'google')) { 
    $_SESSION['x'] = 'G-'.str_replace('\\"',"X",$result['q']); 
}elseif (isset($result['p'])&& strstr($_SERVER['HTTP_REFERER'],'yahoo')) { 
    $_SESSION['x'] = 'Y-'.$result['p']; 

//took out bing, aol, ask etc in the name of brevity 

}else{ 
    if ($refurl['host']){ 
     $_SESSION['x'] = $_SESSION['x'].'_ref-'.$refurl['host']; 
    } 
} 

이 방법 나는 검색 쿼리를 추가 할 수 있습니다 사용자가 사이트를 방문하게하고 검색 엔진을 사용하게되었습니다. 들어오는 $ _SESSION [ 'x'] '을 (를) 기록합니다.

많은 사용자가 내 _ 도메인에서 오는 것이라면 _ _SESSION [ 'x']의 "_ref-mywebsite.com"을 가져오고 있습니다. $ _SESSION [ 'x']는 그들이 방문한 페이지에 설정됩니다. 브라우저 보안 수준이 높아지기 때문입니까?

나는 분명한 뭔가를 놓치고 있습니까? 이것을하는 더 똑똑한 방법이 있습니까?

+0

HTTP_REFERER를 아무 의미없이 설정할 수 있습니다 (요청할 때마다 제거). 의미가 없습니다. –

답변

3

는이

echo $_SERVER['HTTP_REFERER']; 

같은 레퍼러를 얻을 수 있습니다하지만 주석에 언급 한 바와 같이, 그것은 쉽게 조작 할 수 있습니다.

+0

'HTTP_FERERER'는'HTTP_REFERER'이어야합니다 :) –

+0

@JTSmith. 죄송합니다. 해결되었습니다. 감사합니다 – Starx

0

클라이언트 (브라우저)가 당신에게 "HTTP_REFERER"라는 제목을 전달하지 않으면, 당신은 그것을 얻지 못할 것입니다. 그리고 그것은 그들이 온 사이트에 달려 있습니다.

워크 플로우가 어떤 것인지 모르겠지만 할 수있는 일은 JavaScript로 얻은 다음 PHP 스크립트로 전달하는 것입니다. 희망이 도움이됩니다.

+0

아니 브라우저에 따라 다릅니다, 값은 브라우저가 아닌 사이트에 의해 설정됩니다. –

+0

값을 전달하는 브라우저이지만, 특히 PHP에서 사용자 정의 헤더를 설정할 가능성이 있습니다. 예 : 헤더 ("foo : bar"); – misakm

0

나는 가능한 시나리오라고 생각 : 새로운 방문자가 정상 참조 페이지와 웹 사이트에 제공

  • ;
  • 그는 웹 사이트의 탭을 열어 브라우저를 닫습니다 (세션 쿠키가 지워짐).
  • 이전 탭에서 복원 된 웹 사이트로 브라우저를 다시 엽니 다.
  • 페이지의 링크를 클릭하면 같은 도메인의 리퍼러가있는 다른 페이지로 이동하고 세션이 정리됩니다.