2009-10-05 4 views
4

사용자의 출처를 확인할 수 있습니까? 예를 들어, 클라이언트에게 배너와 링크를 제공합니다. 클라이언트는 배너/링크를 모든 웹 사이트에 올릴 수 있으며 www.domain.com이라는 사이트를 지정할 수 있습니다.PHP에서 사용자가 유입 된 경로를 추적 하시겠습니까?

사용자가 배너를 클릭하면 그가 어디에서 왔는지 (www.domain.com) 알 수 있습니까?

답변

12

HTTP_REFERER 변수를 살펴보십시오. 사용자가 사이트를 방문하기 전에 사용자가 어떤 사이트에 있는지 알려줍니다.

+0

사용자는 리퍼러 정보를 전송하지 브라우저를 알 수 있습니다. – gnud

+1

사용자는 이미지를 표시하지 않도록 브라우저에 지시 할 수도 있습니다. 그 일에 관해 할 수있는 일은 아무것도 없습니다 – Marius

+0

그럼 어떻게해야합니까? HTTP_REFERER를 사용하고 있습니까? 다른 방법이 있습니까? – bbtang

4

예. 클라이언트에게 www.yourdomain.com/in/e10c89ee4fec1a0983179c8231e30a45과 같은 고유 URL을 제공합니다. 그런 다음 데이터베이스에서 이러한 URL과 액세스를 추적하십시오.

진짜 문제는 순 방문자를 추적하는 것입니다.

+0

순 사용자입니까? IP별로? Altho 동적 IP 사용자는 저에게 문제를 일으킬 것입니다. 글쎄, 당신의 독특한 URL 아이디어가 마음에 듭니다. 나는 그것을 고려할 것이다. Thanks gnud :) – bbtang

+0

다른 사용자가 새 사용자인지 또는 링크를 다시 따라 갔는지 동일한 사람인지 알기가 어렵습니다. 또는 클릭 봇. 그것은 내가 독창적 인 사용자가 의미하는 바입니다. – gnud

0

그것이 클라이언트에 의해 설정되어로이 있지만

$_SERVER["HTTP_REFERER"] 

항상 신뢰할 수 없지만 당신이 경우에 상관하지 않을 수 있습니다 참조하십시오.

0

유일한 기회는 gnud가 지적한 고유 한 ID를 사용하는 것입니다. 이 방법을 사용하면 연결 링크를 추적 할 수 있습니다. 리퍼러는 브라우저 또는 프록시에서 변경/제거 될 수 있습니다 (많은 회사에서 그렇게 함).

고유 방문자를 추적하기 위해 IP를 사용하는 것은 좋지 않습니다. AOL은 여전히 ​​IP를 풀링하고 몇 분마다 서로 다른 IP를 사용할 수 있으며 프록시를 통해 카운트가 정확하지 않을 수 있습니다.

고유 ID를 사용하십시오.

0

$ _SERVER [ "HTTP_REFERER"]는 register_globals bool을 on으로 설정하여 php (php.ini)를 구성한 경우에만 작동합니다.

레지스터 전역은 느슨하게 코딩 된 PHP 응용 프로그램에서 악용 될 수 있습니다. 일반적으로 사용자가 데이터를 게시 할 수있는 앱입니다.

저는 과거에 다음과 같은 방법을 사용하여 연산자 입력을 제어하는 ​​응용 프로그램의 리퍼러를 확인했습니다.

session_start(); 
if(!isset($_SESSION['url_referer'])) 
{ 
$_SESSION['url_referer'] = $_SERVER['HTTP_REFERER']; 
} 

세션 변수에 문자열을 해싱하지 않으면 더 효율적인 방법을 알지 못합니다. 누구든지 모범 사례를 알고 있습니까?

가장 정밀한 감사를

브래드

관련 문제