2014-10-13 4 views
0

웹 서버 내에 여러 폴더가 있습니다. 각 폴더에는 php/html 파일이 들어 있습니다. 전체적으로 약 40 개의 파일이 있습니다.PHP 웹 페이지에 대한 액세스 제한

나는 현재 로그인 한 사용자의 신원을 확인할 수 있습니다.

를 PHP는 그것이 그들이이 로그인 한 사람을 기준으로 전용 액세스를 특정 페이지로 사용자를 허용 할 수 있습니다 사용하십니까?

나는 .htaccess이 이것을 허용하는지 궁금합니다. 아니면 더 좋은 방법이 있다면?

사용자/비밀번호 인증 스크립트를 만들 필요가 없습니다. 세션을 사용하여

감사

+0

아마도 세션을 사용하고 싶을 것입니다. – Rasclatt

+0

디렉토리에 어떤 유형의 파일이 있습니까? –

+0

일종의 인증 없이는이 작업을 수행 할 수 없습니다. 지금 사용자를 어떻게 식별하고 있습니까? –

답변

4

, 당신은 사용자 레벨을 만들고 SESSION 변수에 사용자 레벨을 지정하여 다양한 분야에 대한 액세스를 제한 할 수 있습니다. 아마도 Using php I can determine the identity of the user who is currently logged in.을 인용하면 세션 변수를 설정할 수 있습니다. 나는이이 역할 기반 액세스 제어로 알려져 생각 - 그것은

if ($_SESSION['user_level'] == "Administrator") { 
# do something 
} 

This article may help further

+0

감사합니다. 사용자가 처음 로그인하여 기본 사이트에 액세스해야하므로 역할을 사용하여 다른 영역에 대한 액세스를 허용하거나 거부 할 수 있습니다. – Rocket

+0

다행 이네요. :) – iamgory

0

당신은 당신의 .htaccess에서 이런 일을 할 수있는 매우 간단한 형태의에서 :

RewriteEngine On 
RewriteBase/
RewriteRule ^(.+?\.php)$ index.php?p=$1 [L,QSA,NC] 

이 모든 리디렉션합니다 PHP 페이지를 보려는 사용자 index.php?p=someurl.php

그런 다음 index.php에서 파일을 볼 권한이 있는지 확인할 수 있습니다. 그들이 그것을 부인하지 않는다면, 그것을 섬기면 d.

if (authorized()) { 
    // show file 
} else { 
    die("Not Authorized to Access this File."); 
} 
0

는 직접 htaccess로 규칙에서 SESSION들에 액세스 할 수 없습니다,하지만 당신은 코드에 의지하지 않으면 당신은 해결 방법을 시도 할 수 있습니다. 당신의 권한을 부여하는 코드 섹션 내부

, 세션을 만든 후 마지막 줄에 현재 사용자 세션 ID의 파일 이름을 생성하기 위해 touch() 추가 : htaccess로 파일 내에서 다음

touch("./folder/logged/PHPSESSID_".session_id()); 

유효성을 검사 할을 현재 PHPSESSID 관련 파일이 생성되면 이전 :

RewriteCond %{HTTP_COOKIE} PHPSESSID=(\w+) 
RewriteCond %{DOCUMENT_ROOT}/folder/logged/PHPSESSID_%1 -f 
RewriteRule ^(.*)$ $1 
RewriteRule .* /users/login [L] 

* 생성 된 파일이 더 이상 유효한지 확인하기위한 간단한 스크립트를 만들어야합니다. 그렇지 않으면 삭제하십시오.

* 아이디어입니다.

관련 문제