2012-10-23 3 views
2

내 서버에서 호스트되고 생성 된 스크립트를 포함하는 다른 도메인의 웹 페이지가 있습니다. 말 해당 페이지는 http://www.theirdomain.com/site에 있으며 마크 업이 같다 :PHP에서 스크립트를로드하는 페이지의 URL을 어떻게 알 수 있습니까?

<html> 
    <head> 
     <script src="http://www.mydomain.com/script.php"></script> 
    </head> 
    <body> 
     ... 
    </body> 
</html> 

script.php 페이지 생성 않고 자바 스크립트의 내용,하지만 난 script.php를 호출 한 URL (즉 http://www.theirdomain.com/site)인지 알고 싶어요.

어떻게 정보를 PHP로 얻을 수 있습니까?

+0

나는 script 태그를 통해 PHP 파일을 보지 못했습니다. 이게 효과가 있니? PHP 파일이 javascript를 반환합니까? –

+0

@Asad 아마 JavaScript를 생성합니다. 단지'.php' 파일이 생성 된 이미지가 될 수 있습니다. – Stijn

+0

그래, 방금 깨달았다. –

답변

4

script.php의 리퍼러를 기록하여 어디서 왔는지 확인하십시오. 처럼 :

if(!empty($_SERVER['HTTP_REFERER'])) { 
    $log = fopen('script_access.log', 'a'); 
    fwrite($log, 'The script has been accessed from ' . $_SERVER['HTTP_REFERER'] . PHP_EOL); 
    fclose($log); 
} 

// Rest of your script here. 
+1

http://php.net/manual/en/function.file-put-contents.php – Jelmer

3

당신 '이 script.php'파일을 호출 한 페이지의 URL을 알고 싶을 때 당신이 $ _SERVER 변수에 보일 것입니다.

변수에서 스크립트가 호출되는 곳의 유용한 헤더를 찾을 수 있습니다. 예를 들어 $ _SERVER [ 'REQUEST_URL'] 및 $ _SERVER [ 'HTTP_REFERER']에서 얻은 값을 테스트 해보십시오. 더 많은 옵션은 여기에서 찾을 수 있습니다 : http://php.net/manual/en/reserved.variables.server.php

나중에 예를 들어 통계를 출력 할 수 있도록 데이터베이스와 같은 변수의 데이터를 데이터베이스에 저장할 수 있습니다.

1

이 정보는 헤더, 경로 및 스크립트 위치와 같은 정보를 포함하는 배열 인 $ _SERVER를 통해 얻을 수 있습니다. 자세한 내용은을 참조하십시오. http://php.net/manual/en/reserved.variables.server.php

<?php 
function get_path_info() 
{ 
    if(! array_key_exists('PATH_INFO', $_SERVER)) 
    { 
     $pos = strpos($_SERVER['REQUEST_URI'], $_SERVER['QUERY_STRING']); 

     $asd = substr($_SERVER['REQUEST_URI'], 0, $pos - 2); 
     $asd = substr($asd, strlen($_SERVER['SCRIPT_NAME']) + 1); 

     return $asd;  
    } 
    else 
    { 
     return trim($_SERVER['PATH_INFO'], '/'); 
    } 
} 
관련 문제