2012-06-22 3 views
3

PHP와 htaccess를 사용하여 hotlinkers의 IP 주소를 추적하려고합니다.어떻게 php와 htaccess를 사용하여 핫 링커 IP 주소를 추적 할 수 있습니까?

htaccess로 파일 :

RewriteEngine on 
RewriteRule images/(.+)\.(jpg|gif|png) images.php 

images.php

?php 
    $ipAddress = $_SERVER['REMOTE_ADDR']; 

    $statement=$db->prepare("INSERT INTO `ipaddress` (`ip`) 
      VALUES (?)"); 
    $statement->execute(array($ipAddress));  

?> 

이제 사용자 요청이 이미지에 리디렉션이 www.domain.com/images/image.jpg 같은 이미지. PHP와 그들의 ips를 추적 할 수 있습니다. 내가 겪고있는 문제는 내 페이지가 이미지를 표시하지 않는 것입니다 (이유는 htaccess를 images.php로 리디렉션 함). 이 문제를 어떻게 해결할 수 있습니까?

Here is the link of previous question regarding this issue:

나는 당신이 IP를 기록하고 다음과 같이 뭔가를 할 수있는, 어쨌든 이미지를 제공하려면 너무 많은 설명

감사

+0

무엇을 하시겠습니까? IP를 기록하고 이미지를 표시하거나 모든 사람을 위해 로그 및 종료하고 자신의 사이트에 로그인하지 않고 이미지 만 표시 하시겠습니까? –

+0

IP를 기록하고 이미지를 표시하고 싶습니다. –

답변

5

필요 htaccess로 전문가 아니다 :

htaccess로 파일 :

RewriteEngine on 
RewriteRule images/(.+)\.(jpg|gif|png) images.php?image=$1.$2 

images.php :

<?php 
    $ipAddress = $_SERVER['REMOTE_ADDR']; 

    $statement=$db->prepare("INSERT INTO `ipaddress` (`ip`) 
      VALUES (?)"); 
    $statement->execute(array($ipAddress)); 

    $ext = strtolower(end(explode('.', $_GET['image']))); 

    if($ext == 'gif') { 
     $type = "gif"; 
    } 
    else if($ext == 'jpg') { 
     $type = "jpeg"; 
    } 
    else if($text == 'png') { 
     $type = "png"; 
    } 
    else { 
     $type = "binary"; 
    } 

    header("Content-type: image/$type"); 
    readfile("images/" . $_GET['image']); 

?> 

당신은 모든 파일이 제대로 .htaccessimages.php 모두에서 지적되어 있는지 확인하기 위해 여기 저기 경로를 조정해야 할 수도 있습니다.

+0

$ ext = lower (끝 (explode ('.', $ filename))); 여기 $ filename과 lower()는 무엇입니까? strtolower()? –

+0

@Off, 죄송합니다, 복사/붙여 넣기 문제. 나는 나의 대답을 업데이트했다. –

+0

나는 images/image.png를 시도하고 있지만 다른 부분은 실행 중입니다. $ _GET [ 'image']에서 뭔가 잘못 생각합니다. htaccess에서 $ 1은 무엇입니까? $ 2? –

관련 문제