이 글은 PHP에서 HTTP_REFERER 함수의 사용법을 예시를 통해 분석한 것입니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
PHP의 http_referer 함수를 사용하여 사용자의 출처를 확인합니다. 예제 코드는 다음과 같습니다.
if (isset($_SERVER['HTTP_REFERER'])) {
"이전에 귀하가 있던 페이지는 {$_SERVER['HTTP_REFERER']}
입니다.";
} 다른 {
인쇄 "여기로 이동하기 위한 링크를 클릭하지 않았습니다
";
}
?>
클릭하세요!
사용자가 원산지를 알 수 없도록 하는 방법은 다음과 같습니다.
코드 복사 코드는 다음과 같습니다.
$호스트 = "www.jb51.net"
$referer = "http://".$호스트
$fp = fsockopen($host, 80, $errno, $errstr, 30)
if (!$fp){
echo "$errstr ($errno)
;n";
}그밖에{
$request = "
GET/HTTP/1.1
수락: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */ "."*
추천인: http://$host
허용 언어: zh-cn
인코딩 허용: gzip, deflate
사용자 에이전트: Mozilla/4.0(호환 가능, MSIE 6.0, Windows NT 5.1)
호스트: $host
연결: 닫기"
."rnrn"
fputs($fp, "$request")
동안(!feof($fp))
{
$res[] = fgets($fp,1024)
}
$html = Join("",$res)
fclose($fp)
$fp = file_put_contents("123cha.html",$html)
echo "완료";
}
이 정도면 되지 않나요?
그런데 아주 이상한 점은 www.jb51.net의 페이지가 깨져 있다는 것입니다(http 헤더 제외). 왜 그런가요? gzip이나 다른 압축을 사용했기 때문인가요?
$html = file_get_contents("http://".$host)
$fp = file_put_contents("hao123.html",$html)
에코 "완료";
?>;
하지만 이런 식으로 잡는 데에는 문제가 없습니다. 우리가 잡기 시작한 http 헤더를 분석해 보겠습니다.
HTTP/1.1 200 OK 날짜: 2005년 8월 31일 수요일 00:59:36 GMT 서버: Apache/1.3.27 Cache-Control: max-age=1296000 만료: 2005년 9월 15일 목요일 00:59:36 GMT 최종 수정: 2005년 8월 29일 월요일 13:56:00 GMT 허용 범위: 바이트 연결: 닫기 콘텐츠 유형: text/html 콘텐츠 인코딩: gzip 콘텐츠 길이: 14567
물론 다음 문장이 있습니다. Content-Encoding: gzip, 압축된 것으로 밝혀졌고, 길이는 14567바이트이고, 두 번째 방법을 사용하여 캡처했으며, 압축되지 않은 원본 HTML은 71143바이트이며, file_get_contents로 밝혀졌습니다. 자동으로 압축을 풀 수도 있습니다.
php 예제 2, 코드는 다음과 같습니다.
코드 복사
$referer = 'http://www.jb51.net'; //가짜 HTTP_REFERER 주소
$fp = fsockopen($host, 80, $errno, $errstr, 30)
if (!$fp){
echo "$errstr($errno)
n";
}
그렇지 않으면{
$out = "
$target HTTP/1.1 받기
호스트: $host
추천인: $referer
연결: Closernrn";
fwrite($fp, $out)
동안 (!feof($fp)){
echo fgets($fp, 1024)
}
fclose($fp)
}
?>
다른 2.php 파일은 매우 간단합니다. 다음과 같이 현재 HTTP_REFERER 서버 값을 읽는 코드 줄을 작성하기만 하면 됩니다.
코드 복사
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.