>백엔드 개발 >PHP 튜토리얼 >도로 위의 초보자를 위한 운전 기술 도로 위의 PHP 초보자 (7)

도로 위의 초보자를 위한 운전 기술 도로 위의 PHP 초보자 (7)

WBOY
WBOY원래의
2016-07-29 08:34:551008검색

간단한 대화형 웹사이트 구축 (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

";
}
?>
설명:
isset() 변수에 값이 할당되었는지 여부를 확인하는 데 사용되는 함수입니다. 변수 값이 존재하는지 여부에 따라 true 또는 false를 반환합니다.
header() 함수는 특정 HTTP 헤더를 보내는 데 사용됩니다. header() 함수를 사용할 때 실제 출력을 생성하는 HTML 또는 PHP 코드보다 먼저 호출해야 합니다.
위의 코드는 매우 간단하고 실제 값을 기반으로 사용자가 입력한 사용자 이름과 비밀번호를 효과적으로 검증하지 못하지만 최소한 PHP를 사용하여 클라이언트 측에서 입력 대화 상자를 생성하는 방법을 이해합니다.
다음으로, 지정된 인증 정보를 기반으로 사용자의 신원을 확인하는 방법을 살펴보겠습니다. 코드는 다음과 같습니다:
if (!isset($PHP_AUTH_USER)) {
header('WWW-Authenticate: Basic realm="My Private Stuff"'); header(' HTTP/1.0 401 권한 없음');
echo '승인이 필요합니다.'
exit
}
else if (isset($PHP_AUTH_USER)) {
if (($ PHP_AUTH_USER != "admin") || ($PHP_AUTH_PW != "123")) {
header('WWW-Authenticate: Basic realm="My Private Stuff"'
header('HTTP/1.0) 401 승인되지 않음' );
echo '승인이 필요합니다.';
exit
} else {
echo "

승인되었습니다!

"; }
}
?>
여기서는 먼저 사용자 이름과 비밀번호를 입력했는지 확인합니다. 그렇지 않은 경우 사용자에게 신원 정보를 입력하라는 대화 상자가 나타납니다. 이후, 사용자가 입력한 정보가 지정된 사용자 계정 admin/123과 일치하는지 확인하여 사용자에게 액세스 권한을 부여하거나 사용자에게 올바른 정보를 다시 입력하도록 요청합니다. 이 방법은 모든 사용자가 동일한 로그인 계정을 사용하는 사이트에서 작동합니다.
6.4 또 다른 간단한 비밀번호 확인
Windows 98에서 PHP 스크립트를 작성하여 실행하거나 Linux에서 기본 설정에 따라 CGI 프로그램으로 PHP를 설치하는 경우 위의 PHP 프로그램을 사용할 수 없습니다. 검증 기능을 구현합니다. 이러한 이유로 Wubian은 또 다른 간단한 비밀번호 확인 방법을 제공합니다.그다지 실용적이지는 않지만 학습에는 여전히 좋습니다.
$password = "123";
// 비밀번호 확인
if($pass != $password)
{
echo "< ;head>

비밀번호 관리";
echo "
echo " 부탁드립니다. 관리 비밀번호를 입력하세요:
";
echo "";
echo "";
echo "
"
}
else
{
echo " < head>축하합니다. 비밀번호 확인을 통과했습니다";
echo "<script>"; <br>echo 'window.location=" http:// gophp.heha.net/test/index.php3"'; <br># 비밀번호 확인 후 이동된 페이지<br>echo "</script>";
}
? >

이상은 도로 위의 초보자를 위한 운전 기술을 소개했습니다.(7) 도로 위의 초보자를 위한 운전 기술을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.