$author_name = 'name'; $author_pwd = 'password'; if(!isset($_SERVER['PHP_AUTH_USER'] || !isset($_SERVER['PHP_AUTH_PW']) || ($_SERVER['PHP_AUTH_USER']!=$author_name || $_SERVER['PHP_AUTH_PW']!=$author_pwd ) ) { header('HTTP/1.1 401 Unauthorized'); header('WWW-Authenticate: Basic realm="Guitar Game"'); exit('Guitar Game
Sorry, You Must input admin name and password
'); }
exit() 코드는 두개의 header() 코드 바로 아래에 위치하지만 exit() 가 수행되는 시점은 사용자가 인증창의 취소(cancel) 버튼을 클릭해 인증 작업을 종료한 시점뿐이다.
그리고 , 사용자 인증에 실패하면 서버는 인증시도 전에 사용했던 header() 함수는 무시하고 다시 한번 새로운 헤더를 전송한다.
이 작업은 사용자 인증에 성공할 때까지 반복된다. exit() 는 ‘취소’ 버튼을 통해 사용자가 인증작업을 강제로 취소할 때만 실해오디어 실제 페이지 내용을 출력하지 않고, 미리 설정된 인증거부 메시지를 출력한다.
exit() 는 사용자 이름과 패스워드 정보가 정확하지 않을경우를 제어하는 if 문 안에 있으므로 인증에 성공한 상황이라면 exit() 는 수행되지 않고 인증거부 메시지 역시 출력되지 않는다.
header() 에 들어가는 문자열들은 띄어쓰기 하나라도 다르면 오류를 발생시킨다.
아예 똑같이 쳐야한다.
'코드 > PHP' 카테고리의 다른 글
[PHP]메일 보낸 사람 제목이나 메일주소가 나오지 않을때. (0) | 2015.06.22 |
---|---|
[PHP] mail() 함수 한글 깨짐 (0) | 2015.06.22 |
mysqli_fetch_array, mysqli_fetch_row, mysqli_fetch_assoc (0) | 2015.04.12 |
Warning: mysqli_error() expects exactly 1 parameter, 0 given in PHP (0) | 2015.04.12 |
$_FILES 속성 (0) | 2015.04.07 |