반응형

PHP 세션 시작

PHP에서 세션을 사용하기 위해서는 아래 코드와 같이 필수적으로 session_start()라는 메소드를 실행해줘야 한다.

<?php

// php가 세션을 사용하기 위해 필수적으로 실행해야 하는 메소드
session_start();


// 따로 빼 놓은 db 연결 php
require_once("../util/dao.php");


// 이전 페이지에서 POST 방식으로 아이디와 비밀번호를 가져옴
$userId = $_POST['userId'];
$userPass = $_POST['userPass'];


// 로그인 결과 저장 변수
$loginCk = 0;


// 아이디 존재 유무 확인 쿼리문
$idCk = "select userId from user where userId = '$userId'";

// 윗 줄 쿼리를 실행
$idCkResult = mysqli_query($dbConn, $idCk);


// 아이디가 있을 경우
if ($idCkResult) {

    // 비밀번호 확인
    $passCk = "select * from user where userId = '$userId'";
    $rs = mysqli_query($dbConn, $passCk);
    $result = mysqli_fetch_assoc($rs);
    if ($result['userPass'] == $userPass) {
        $loginCk = 1;

        // 'userId'라는 이름으로 세션을 생성하고 DB에서 가져온 userId컬럼의 값을 넣어줌
        $_SESSION['userId'] = $result['userId'];
    
    }

}

?>


<script>

    <?php if ($loginCk == 1) {?>
        alert("로그인되었습니다.");
        location.href="../article/list.php";
    <?php }else {?>
        alert("아이디 또는 비밀번호가 일치하지 않습니다.");
        history.back();
    <?php }?>
</script>

 

세션에 따른 메뉴 설정

로그인을 한 사용자와 하지 않은 사용자에게는 보이는 메뉴가 달라야 한다. 로그인 중인 사용자에게는 '정보수정', '로그아웃' 메뉴를 보여주고 로그인 하지 않은 사용자에게는 '로그인', '회원가입' 메뉴를 세션 유무에 따라 판별한다.

위에서 'userId'라는 세션을 만들어줬기 때문에 해당 세션의 유무에 따라 메뉴가 다르게 나온다.

<ul>
    <?php if (isset($_SESSION['userId'])) { ?>
    <li>
        <a href="../user/doLogout.php">로그아웃</a>
    </li>
    <li>
        <a href="../user/modify.php">정보수정</a>
    </li>
    <?php }else {?>
    <li>
        <a href="../user/login.php">로그인</a>
    </li>
    <li>
        <a href="../user/join.php">회원가입</a>
    </li>
    <?php }?>

</ul>
반응형

+ Recent posts