2016-10-27 4 views
0

PHP Basic Authorization을 사용하고 있는데 작동하지 않습니다. 사용자 이름과 암호 팝업 예상하지만 제가 잘못된 사용자 및 암호를 삽입 할 경우에도 페이지에 액세스 할 수 있습니다로PHP xhampp에서 기본 인증이 작동하지 않습니다.

public function __construct() 
{ 
    parent::__construct(); 

    $this->load->library('session'); 
    if (!isset($_SERVER['PHP_AUTH_USER'])) 
    { 
     header("WWW-Authenticate: Basic realm=\"Admin Area\""); 
     header("HTTP/1.0 401 Unauthorized"); 
     print "Sorry - you need valid credentials to be granted access!\n"; 
     exit; 
    } else { 
     list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':' , base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6))); 
     if (!($_SERVER['PHP_AUTH_USER'] == 'admin') && ($_SERVER['PHP_AUTH_PW'] == 'admin')) { 
      header("WWW-Authenticate: Basic realm=\"Admin Area\""); 
      header("HTTP/1.0 401 Unauthorized"); 
      print "Sorry - you need valid credentials to be granted access!\n"; 
      exit; 
     } 
    } 

} 

htaccess로 :

RewriteEngine on 

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ ./index.php?/$1 [L,QSA] 

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] 
+0

사용자는 자격 증명을 입력 한 후 세션에 참여합니까? – Nurjan

+0

예 @Nurzhan .. – may

+0

관리자 계정에 로그인 및 비밀번호가 "admin"이어야합니다? ($ _ SERVER [ 'PHP_AUTH_USER'] == 'admin') && ($ _SERVER [ 'PHP_AUTH_PW'] == 'admin'))) – Fky

답변

0

누락 브라켓, 당신이 원한다면 " admin "을 입력해야합니다.

if (!(($_SERVER['PHP_AUTH_USER'] == 'admin') && ($_SERVER['PHP_AUTH_PW'] == 'admin'))) {