2010-05-09 3 views
2

나는 로그인 시스템이있는 PHP 사이트가 있으며 특정 사용자 이름 만 특정 이미지를 볼 수있는 기능을 만들려고합니다. 내 생각에 .htaccess 파일을 변경하는 것보다 더 많은 작업이 필요합니다. a) 이미지를 볼 수있는 사용자와 그렇지 않은 사용자를 구분할 수 없기 때문입니다. b) 누군가가 이미지의 정확한 URL ("directory/images/photos/230ru0q0238rn230nd_asdi0nqn8.jpg") 그들은 이미지를 볼 수 있습니다 (디렉토리의 실제 파일이기 때문에 DB에있는 텍스트가 아니기 때문에). 다시 말하지만, .htaccess를 통해 제한하면 디렉토리 전체 또는 파일 내의 모든 파일이 제한되므로 어떻게 작동하는지 파악할 수 없습니다. 모든 이미지는 직접 URL을 통해 직접 액세스하려고하면 차단되며, 사용자의 세션/사용자 이름이 유효한 경우 이미지는 <img> 태그 사이에만 표시됩니다. 그렇지 않으면 오류 메시지가 표시됩니다.PHP/Apache의 이미지 표시 권한

ACL이라는 용어를 들었지만 이것이 내가하려는 일과 관련이 있는지 잘 모르겠습니다.

답변

0

당신이 할 수있는 일은 이미지를 스트림으로 출력하는 간단한 컨텍스트를 만드는 것입니다. 사용자가 로그인되어있는 경우 그렇다면

가 가 가 viewImages.php 인/허가 및 ($ _SESSION 대부분 통해)는

를 송신 확인

viewImages.php?imageId=234643 
: 출력되는 영상은 예를 들면 ID (또는 식별자)에 따라 가능하면 readfile을 사용하여 이미지를 브라우저에 전송하십시오.

1

권한 부여 및 ACL 체계 다를 수 있지만 질문의 기본 목표를 달성하기 위해 :

  • 는 PHP 읽을 문턱 할 수있는 비 - 웹 액세스 가능한 디렉토리에 이미지를 넣어.
  • 모든 요청을 스크립트에 다시 쓰려면 .htaccess을 사용하십시오 (파일에 대한 직접 액세스를 거부한다고 가정 할 경우 앞의 단계가 생략 될 수 있음).
  • 요청한 사용자가 요청 된 이미지를 볼 수 있는지 확인하십시오.
  • readfile() (또는 다양한 다른 기능)을 사용하여 이미지를 출력하십시오.