2014-04-27 1 views
1

사이트 방문객을위한 referer 및 방문 페이지를 기록하고 싶습니다. 기본 설정은 다음과 같습니다.PHP 및 jQuery AJAX로 현재 페이지 이름 가져 오기

index.html 파일에는 자바 스크립트 파일 (<script src="js/log.js"></script>)이 포함되어 있습니다.

if(isset($_POST['request_type']) && $_POST['request_type'] == 'get_page_info'){ 
    echo 'The referer is: '.$_SERVER['HTTP_REFERER'].' and 
     the landing page is: '.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 
} 
: 나는 리퍼러와 방문 페이지과 같이 돌려 내 PHP functions.php 파일에서

$.ajax({ 
    type: "post", 
    url: 'php/functions.php', 
    data: 'request_type=get_page_info', 
    success: function (data) { 
       console.log('DATA: '+data); 
    } 
}); 

: 는 여기에서 정말 같은 리퍼러 및 방문 페이지를 얻을 수있는 PHP 파일에 AJAX 호출을 사용

모두 상당히 간단합니다.

리퍼러는 다음과 같습니다 : www.stackoverflow.com 및 방문 페이지는 다음과 같습니다 www.mysite 나는 내가 AJAX 성공 함수에서 데이터가 같이 기대 stackoverflow.com에서이 사이트에 와서 말. COM/

그러나

index.html을 대신 나는이 점점 오전 :

리퍼러는 다음과 같습니다 www.mysite.com/index.html 및 방문 페이지는 다음과 같습니다 www.mysite.com /php/functions.php

어디서이 문제가 발생합니까?

미리 감사드립니다.

UPDATE

이 작은 예 종류의 플러그인하기위한 것입니다 큰 프로젝트의 일부이기 때문에이 방법을 시도하고있는 이유입니다. 사용자가 자신의 사이트에 쉽게 통합 할 수 있도록 페이지 헤더에 javascript 파일을 포함시킬 수 있기를 바랍니다. 그래서 index.htmlindex.php으로 변경하고 거기에 PHP 코드를 추가하는 옵션은 내가 찾는 방법이 아닙니다.

답변

0

방문 페이지가 아닌 AJAX 호출의 리퍼러를 반향시킵니다.

<?php 
if(isset($_POST['request_type']) && $_POST['request_type'] == 'get_page_info'){ 
    echo 'The referer is: '.$_SERVER['HTTP_REFERER'].' and the landing page is: '.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 
} 
?> 
0

당신은에 액세스 할 수 있습니다 : HTTP가 상태입니다 때문에 당신이 www.mysite.com/index.html에 다음 코드를 삽입하고 Ajax 호출을 제거해야합니다, 그래서 당신은 어딘가에 저장하지 않고 Ajax 호출하여 이러한 정보를 얻을 수 없다 자바 스크립트의 현재 페이지 리퍼러 :

document.referrer 

이것은 기본 페이지에 PHP를 사용하지 않는 경우에 사용됩니다. PHP를 사용하는 경우 페이지로드시 캡처 할 수 있습니다.

0

지원되는 경우 Referrer는 일반적으로 해당 페이지를 호출 한 페이지입니다. 귀하의 경우 functions.phpindex.php (AJAX를 통해)에서 호출되므로 참조자를 index.php, 소유 페이지를 functions.php으로 가져와야합니다. 서버의 관점에서 볼 때 하나의 페이지가 아니라 요청되는 두 개의 개별 페이지입니다. AJAX 또는 다른 페이지 요청 방법에 대해서는 알지 못합니다.

당신이하고 싶은 것은 아약스가 전혀 필요하지 않습니다. 당신이 필요로하는 것은 참조자를 주 index.php 파일로 가져 오기위한 코드를 작성하는 것입니다. 어떤 이유로 든 자바 스크립트에서이 정보가 필요한 경우 PHP 파일에서 자바 스크립트를 생성 할 수 있습니다.

if(isset($_POST['request_type']) && $_POST['request_type'] == 'get_page_info'){ 
    echo "<script type='text/javascript'>\n; 
    echo " var referer = '" . $_SERVER['HTTP_REFERER'] . ";\n"; 
    echo " var landing = '" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . ";\n"; 
    echo "</script>\n"; 
} 
+0

감사합니다. Aleks G.이 점에 대해 알고 있습니다. 내가 목표로하고있는 것에 대한 나의 업데이트를 보아라, 나는 아마 충분히 잘 설명하지 못했다. –

+0

@ user2074704이 경우에는 lagbox 별 답변을 참조하십시오. Javascript로 직접 정보를 얻을 수 있습니다. 'document' 객체에 대한 문서를 읽으십시오. –

관련 문제