prepare($sql); $stmt->execute([$member_id, $sys_comp_code]); $user = $stmt->fetch(PDO::FETCH_ASSOC); // 결과값이 없으면 로그인 페이지로 이동 if (!$user) { header("Location: /skin/login.php"); exit; } // 4. 변수 정리 및 세션 할당 $U_member_id = $user['member_id']; $U_sys_comp_code = $user['sys_comp_code']; $U_name = $user['name']; $U_rank_name = $user['rank_name']; $U_intro_flag = (int)$user['intro_flag']; // 요청하신 세션 할당 규칙 적용 $_SESSION['user_id'] = $U_member_id; $_SESSION['ss_mb_id'] = $U_member_id; // 그누보드 표준 세션 키 $_SESSION['sys_comp_code'] = $U_sys_comp_code; // 기획안에 따른 flag 할당 $_SESSION['company'] = $U_sys_comp_code; // 기획안에 따른 flag 할당 $_SESSION['member_name'] = $U_name; $_SESSION['name'] = $U_name; $_SESSION['rank_name'] = $U_rank_name; $_SESSION['intro_flag'] = $U_intro_flag; // 세션 보안을 위한 ID 재생성 session_regenerate_id(true); // 5. 페이지 이동 분기 if ($U_intro_flag === 1) { // 이미 읽음 상태면 메인으로 header("Location: /skin/index.php"); exit; } else { // 읽지 않음(0) 상태면 DB 업데이트 후 인트로로 $update_sql = "UPDATE edu_users SET intro_flag = 1 WHERE member_id = ? AND sys_comp_code = ? AND intro_flag = 0"; $up_stmt = $pdo->prepare($update_sql); $up_stmt->execute([$U_member_id, $U_sys_comp_code]); // 업데이트 성공 여부와 상관없이(혹은 성공 직후) 세션 동기화 후 이동 $_SESSION['intro_flag'] = 1; $_SESSION['sys_comp_code'] = 1; $_SESSION['company'] = 1; header("Location: /skin/intro.php"); exit; } } catch (PDOException $e) { // 운영 환경에서는 에러 로그만 남기고 로그인 페이지로 보내는 것이 안전합니다. error_log($e->getMessage()); header("Location: /skin/login.php"); exit; }