작업을 수행하는 데 프로그래밍 방식으로 악몽을 짓거나 상당한 성능 오버 헤드가 발생할 수 있습니다. 목록을 가지고 작업하는 것이 훨씬 효과적 (그리고 덜 복잡합니다) 일 것입니다. 데이터베이스에 이러한 목록을 저장하거나 RESTful api 및 json과 통신하는 클라우드 서비스 공급자를 사용하여 목록을 저장할 수 있습니다.
권한을 가정, PHP는 (주로 의사 코드)에 기록 된 예는 이미 데이터 저장에서 검색되었습니다 당신도이 원리를 확장하여 다차원 배열을 사용할 수
//user1 is logged in and has access to the following array of allowed pages:
$loggedInUserPerms = array(1,6,99,821,983255);
if (in_array($pageID, $loggedInUserPerms))
{
//the logged in user has access to this page
}
else
{
//the logged in user doesn't, display access denied error
}
:
$loggedInUserPerms = array(
1=>array("read"),
6=>array("read","write"),
9=>array("read","write"),
821=>array("read","write","delete"),
983255=>array("read")
);
if (in_array($pageID, $loggedInUserPerms))
{
//the logged in user has access to this page
//you can now handle the sub arrays as well
//to determine what level of access the user has.
}
else
{
//the logged in user doesn't, display access denied error
}
을
실제 프로그래밍 언어로 검사하는 것이 더 좋습니다. 사용자 ID를 임의의 숫자로 가져 와서 보통의 'if'로 범위 내에 있는지 확인하십시오. 훨씬 더 깔끔하고 짧아 질 것입니다. –
정규 표현식이이 작업을위한 올바른 도구가 아닌 이유를 설명하기 위해 제안한 예제의 정규식은'^ (?! (2 | 54 | 109 | 1 [1-9] \ d | [2-9 ] \ d {2} | 1 \ d {3} | 200 [01] | 10521) $) (\ d {1,5} | 100000) $' 이는 표현을 더 복잡하게하는 원자 그룹과 같은 성능 최적화 (효율성 기준) 이전입니다. 보안 기능을 제공하기 때문에 표준화 취약점 (예 : 선행 0)이 잠재적 인 우려가됩니다. – drf