2012-06-02 2 views
0

추적 픽셀에 문제가 있습니다. trackingpixel이 같은 메인 페이지에 포함되어추적 픽셀이 추천 페이지를 통해 외부 웹 사이트를로드해야하지만 작동하지 않습니다.

<img src="tracking.gif" alt="" /> 

tracking.gif에는 다음이 포함

<?php 
header("Location: http://www.mydomain.com/referrer.php?url=http%3A%2F%2Fwww.external.com") 
?> 

referrer.php은 다음과 같습니다 불행히도

<?php 
$url = $_GET['url']; 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <title>Referring...</title> 
     <link rel="stylesheet" type="text/css" href="css.css" /> 
     <meta http-equiv="refresh" content="0.3; URL=<?php echo $url ?>" /> 
     <script type="text/javascript"> 
        window.setTimeout(function() { 
         location.href = '<?php echo $url ?>'; 
        }, 300); 
     </script> 
    </head> 
    <body> 
     Some text. 
    </body> 
</html> 

외부 웹 사이트로 리디렉션되지 않습니다. referrer.php 만로드됩니다. 왜 그런가요? tracking.gif의 referrer-url을 외부 웹 사이트의 URL로 바꾸면 코드가 작동합니다.

추가 정보 : referrer.php를 직접 호출하면 작동합니다. 그리고 htaccess를 통해 서버를 설정하여 tracking.gif를 PHP 파일로 처리합니다.

미리 도움을 주셔서 감사합니다.

+1

파일을 PHP 스크립트로 처리하도록 서버를 설정 했습니까? 브라우저에서 직접 스크립트를 호출하면 어떻게됩니까? – clentfort

+0

예 했어요! referrer.php 스크립트를 직접 호출하면 작동합니다. – AndiPower

답변

0

귀하의 질문에 대한 답변은 브라우저가 실제로 할 다른 유형의 자산, 어떤 자산에 허용을 처리하는 방법에있다. 코드의

첫 번째 조각 :

<img src="tracking.gif" alt="" /> 

로드하고 어떤 위치에서 이미지를 표시하도록 브라우저에 지시합니다. 이를 위해 이미지에 대한 HTTP 요청을합니다. 두 번째 코드는 다음과 같습니다.

<?php header("Location: ....") ?> 

실제로 작동합니다. 브라우저는 tracking.gif에 대한 HTTP 요청을 보내고 응답은 브라우저를 다른 위치로 안내합니다. 이것은 괜찮습니다. (완전성을 위해 응답 상태를 302으로 설정해야하지만) 브라우저가 이미지 데이터를 검색 할 때 새 URL로갑니다.

여기에 우리가 문제를 제기했습니다. 새 페이지로 리디렉션을하면 이미지가 다시 표시되지 않고 일부 HTML 만 표시됩니다. 브라우저는이를 이미지로 해석 할 수 없습니다. 말도 안되는 것 같습니다. 그래서 그것은 버려집니다. 브라우저는 말도 안되는 이미지 데이터에 포함 된 코드를 확인하거나 실행하지 않습니다. 단순히 그림을 그릴 책임이있는 파이프 라인에 데이터를 전달할 것입니다. 그런 다음 "나는 이것을 이해하지 못한다"고 말하고 다음 작업으로 넘어갑니다.

referrer.php 페이지가 브라우저에서 직접로드 할 때 페이지가 실제로 작동하는 이유입니다. 브라우저가 HTML과 자바 스크립트를 예상하기 때문입니다. 브라우저가 동일한 데이터를 수신하면 이미지가 필요하므로 결과는 실패합니다. 이미지 파일을 포함하는 페이지에 동작을 삽입 할 수 없습니다 -

그것은 당신이 보안 모델에서 허용되지 않은 이미지가로드 할 때 브라우저가 다른 URL로 이동하게하려는 나타납니다. 실제로 좀 더 자세하게 달성하고자하는 것을 풀 수 있습니까?