PHP 로그인 기능에 사용자 액세스 수준을 추가하는 방법
P粉680000555
P粉680000555 2023-09-05 20:51:43
0
1
445
<p>저는 사용자가 로그인할 때 세션을 시작하고 쿠키를 생성한 다음 다음을 사용하여 사용자를 Dashboard.php로 리디렉션하는 PHP 로그인/등록 스크립트를 개발했습니다. </p> <pre class="brush:php;toolbar:false;">//변수에서 데이터 가져오기 $emailAddress = mysqli_real_escape_string($conn,$_POST['emailAddress']); $password = mysqli_real_escape_string($conn,$_POST['password']); $remember = isset($_POST['rememberMe']); if(!filter_var($emailAddress, FILTER_VALIDATE_EMAIL)) { $error = '유효한 이메일 주소를 입력해주세요.'; } elseif(email_exists($emailAddress,$conn)) { // 이메일 주소가 존재하는 경우 $result = mysqli_query($conn,"email = '$emailAddress'"에서 사용자의 비밀번호를 선택하세요.); $retrievePassword = mysqli_fetch_assoc($result); if(!password_verify($password,$retrievePassword['password'])) // 비밀번호가 일치하지 않는 경우 { $error = '비밀번호가 정확하지 않습니다.'; } else { // 비밀번호가 정확하면 사용자 로그인 $_SESSION['email'] = $emailAddress; if($remember == 'on') { // "사용자 로그인 유지"가 선택된 경우; setcookie("email",$emailAddress,time()+7200) // 사용자 로그인을 2시간 동안 유지합니다. } header("위치: Dashboard.php"); } } else { // 이메일이 존재하지 않는 경우 $error = '이메일 주소가 등록되지 않았습니다.'; }</pre> <p>모든 제한된 페이지(예: Dashboard.php) 상단에는 다음이 있습니다. </p> <pre class="brush:php;toolbar:false;">if(logged_in()) { // 사용자가 로그인한 경우 페이지 표시</pre> <p>logged_in() 함수는 다음과 같습니다.</p> <pre class="brush:php;toolbar:false;">functionlogged_in(){ if(isset($_SESSION['email']) || isset($_COOKIE['email'])) { 사실을 반환; } 또 다른 { 거짓을 반환; } }</pre> <p>데이터베이스에는 관리자의 경우 "1", 일반 사용자의 경우 "3"인 <code>usrUserTypeNo</code>라는 제목의 열이 있습니다. 역할에 따라 사용자에게 표시되는 콘텐츠를 결정할 수 있도록 이 사용자 유형을 세션에 어떻게 통합합니까? </p>
P粉680000555
P粉680000555

모든 응답(1)
P粉041856955

정확히는 아닙니다.

세 가지 다른 작업(로그인하지 않음, 일반 사용자, 관리자 사용자) 중 하나를 수행하려면 해당 상태를 테스트하고 각 상태에 대한 논리를 작성해야 합니다.

매번 데이터베이스에 액세스 수준을 요청하는 대신 세션에 액세스 수준을 저장할 수 있습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿