간단한 대화형 웹사이트 구축 (3)
6. 비밀번호 확인
웹사이트에 사진 컬렉션을 올리고 친한 친구에게만 보여주고 싶다면 비밀번호 확인 프로그램이 필요합니다.
6.1 HTTP 검증 기반
PHP를 사용하여 비밀번호 검증을 구현하는 방법은 무엇입니까? header() 함수를 사용하여 HTTP 헤더를 전송함으로써 짧은 PHP 코드를 사용하여 인증을 강제할 수 있으며, 클라이언트 브라우저는 사용자 이름과 비밀번호를 입력하기 위한 대화 상자를 표시합니다. PHP에서는 클라이언트 사용자가 입력한 정보가 서버로 전송된 후 자동으로 $PHP_AUTH_USER, $PHP_AUTH_PW, $PHP_AUTH_TYPE 3개의 전역 변수에 저장됩니다. 이러한 변수를 사용하면 구현 시 데이터 파일이나 데이터베이스에 저장되는 사용자 계정 정보를 기반으로 사용자의 신원을 인증할 수 있습니다.
그러나 여기에서 사용자는 Apache 모듈 모드에서 실행할 때만 PHP 스크립트가 $PHP_AUTH_USER, $PHP_AUTH_PW 및 $PHP_AUTH_TYPE 세 가지 변수를 사용할 수 있다는 점을 상기해야 합니다. 사용자가 CGI 모드에서 PHP를 사용하는 경우 HTTP 기반 인증 기능을 구현할 수 없습니다.
6.2 다음으로 PHP를 사용하여 사용자 신원을 확인하는 방법을 자세히 소개하겠습니다.
다음 예에서는 $PHP_AUTH_USER 및 $PHP_AUTH_PW 두 변수를 사용하여 참가자가 합법적인지 확인하고 입장을 허용합니다. 이 예에서 로그인이 허용된 사용자 이름과 비밀번호 쌍은 각각 tnc와 nature입니다:
<
if(!isset($PHP_AUTH_USER))
{
Header("WWW- 인증 : Basic realm="My Realm"");
Header("HTTP/1.0 401 Unauthorized");
echo "사용자가 취소 버튼을 누르면 보낼 텍스트";
exit;
}
else
{
if ( !($PHP_AUTH_USER=="tnc" && $PHP_AUTH_PW=="nature") )
{
// 사용자 이름/비밀번호 쌍이 잘못된 경우 , 강제 재인증
Header("WWW-Authenticate: Basic realm="My Realm"")
Header("HTTP/1.0 401 Unauthorized")
echo "ERROR: $PHP_AUTH_USER/$ PHP_AUTH_PW가 유효하지 않습니다.";
exit;
}
else
{
echo "Welcome tnc!";
}
?>
실제로 실제 인용문 위의 코드에서 명백한 사용자 이름/비밀번호 쌍을 사용하는 대신 데이터베이스나 암호화된 비밀번호 파일을 사용하여 액세스하세요.
6.3 지정된 확인 정보를 기반으로 사용자 신원 확인
먼저 다음 코드를 사용하여 사용자가 사용자 이름과 비밀번호를 입력했는지 확인하고 사용자가 입력한 정보를 표시할 수 있습니다.
if (!isset($PHP_AUTH_USER)) {
header('WWW-Authenticate: Basic realm="My Private Stuff"'
header('HTTP/1.0) 401 Unauthorized');
echo '승인이 필요합니다.';
exit
}
else {
echo "
다음 사용자 이름을 입력했습니다: $PHP_AUTH_USER
🎜>입력한 비밀번호는 $PHP_AUTH_PW
인증 유형: $PHP_AUTH_TYPE
승인되었습니다!
"; }