글쓰기 / 관리자
헤니l
헤니의 개발 공부
헤니l
전체 방문자
오늘
어제
  • 분류 전체보기 (100)
    • study (46)
      • JAVA (5)
      • PHP (24)
      • JS , jQuery (7)
      • 서버 (1)
      • 코딩테스트 (9)
    • 회사일기 (1)
    • 취준 (2)
    • 인천일보아카데미 교육과정 (51)
      • 인천일보아카데미 (51)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • php게시판리스트
  • 비전공코딩공부
  • 코딩공부
  • 게시판구현
  • php계층형게시판
  • 코딩
  • php게시판
  • JS
  • php회원가입
  • HTML공부
  • 비전공개발공부
  • 자바스크립트
  • 비전공자개발공부
  • 날씨어플만들기
  • 인천일보아카데미
  • 개발공부
  • PHP
  • HTML
  • 비전공개발자
  • CSS

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
헤니l

헤니의 개발 공부

[PHP] 로그인, 로그아웃
study/PHP

[PHP] 로그인, 로그아웃

2022. 12. 28. 17:08

회원가입 했으니 로그인과 로그아웃을 해보자 

 

로그인

login.php

   <?php
include 'index.php';
    ?>


    <?php
     if(!isset($_SESSION['userid'])) { ?>

<div class = "main"> 

    <h1>Login</h1>
    <form method="post" action="/stairBoard/login_ok.php" name="loginForm">
    <div class="loginForm">
        <table class="loginTab" >
                <tr class="id">
                    <td>ID</td>
                    <td><input type="text" name=userid placeholder="아이디" required></td>
                </tr>
                <tr>
                    <td>PW</td>
                    <td><input type="password" name=userpw placeholder="비밀번호" required></td>
                </tr>
        </table>
      

        <div class="btnset">
                <button id="submit" type="submit" value="로그인">로그인</button>
               
                <button id="submit"onclick="location.href='/stairBoard/join.php'">회원가입</button>
        </div>
    </form>
     </div>
    
</div>   

    <?php } else {
        $userid = $_SESSION['userid'];
        echo "<p>WELCOME $userid($name)"; }
        ?>

</body>

1. if문으로 세션아이디가 있는지(로그인 되어있는지) 확인

있으면 userid에 session 아이디 저장,

없으면 로그인창 출력 

 

2. 입력후 로그인 버튼 클릭하면 form을 통해 login_ok.php로 이동 

 

login_ok.php

<?php
include 'index.php';

session_start();

$userid = $_POST[userid];
$userpw = $_POST[userpw];

// 아이디 확인
$query = "select * from `member` WHERE userid = '$userid'"; 
$result = mysqli_query($connect,$query); 
$row = mysqli_fetch_array($result);

$userpw_hash = $row['userpw'];

//사용자 비밀번호 입력값과 저장된 hash값 비교
if(password_verify($userpw, $userpw_hash)){

    // 세션 생성
    $_SESSION['userid'] = $row['userid'] ;

    echo "<script>alert('로그인에 성공했습니다');";
    echo "window.location.replace('list.php');</script>";
}else{
    echo "<script>alert('아이디 혹은 비밀번호가 잘못됐습니다');";
    echo "window.location.replace('login.php');</script>";
}

?>

 

1. form에서 POST로 넘어온 id와 pw를 변수에 저장 

2. 쿼리문을 통해 db에 사용자가 입력한 id와 저장된 member의 id를 비교하여  일치하는 멤버 select 

3. 그 쿼리문의 결과를 $row에 저장 

4. 암호화된 비밀번호와 입력값을 비교하기 위해 password_verify 사용 

5. 비교하여 일치할 경우 session에 저장

 

 

 

로그아웃

logout.php

<?php

session_start();

//세션 삭제
unset($_SESSION['userid']);

$URL = 'index.php';

?>

echo("<script> alert('로그아웃 되었습니다');
location.replace("<?php echo $URL?>");  </script>"

로그아웃은 간단하다 

unset을 통해 session을 삭제해준다 

    'study/PHP' 카테고리의 다른 글
    • [PHP] 게시판 글 읽기, 조회수 증가
    • [PHP] 게시판 리스트
    • [PHP] 회원가입(아이디 중복체크, 비밀번호 확인)
    • [PHP] 게시판 - 메인, 회원가입
    헤니l
    헤니l

    티스토리툴바