set_session 함수 질문입니다.
본문
login.php에서 $is_member의 값이 선언된 부분을 따라 common.php로 이동했고
회원, 비회원 구분에서 $is_member 변수를 발견.
그 코드에 $member 변수도 나왔고 $member의 값을 확인하니
$member = $_SESSION['ss_mb_id'] === set_session('ss_mb_id', $mb['mb_id'])
이런식으로 값이 전달 되고 있었습니다.
그래서 저는 set_session 함수를 통해 회원 아이디의 값만 세션으로 전달되고 $member에 저장된 걸로 이해를 하고 넘어갔었는데
뭔가 이상한거 같아서 질문을 드립니다.
set_session 함수에 value 값으로 아이디를 전달해서 세션변수를 생성했기 때문에 아이디만 저장된 줄 알았는데 $member 변수에서 mb_level이나 mb_dir 와 값은 다른 연관배열도 들어있었습니다.
그래서 set_session 함수가 어떤 내용을 저장하는지 알고 싶습니다.
답변 2
조금 코드를 잘못보신것같습니다
$member = $_SESSION['ss_mb_id'] === set_session('ss_mb_id', $mb['mb_id'])
이러한 정의는 그누보드 어디에도 되어있지 않습니다.
이 로그인 세션이 어떻게 동작하는지 보실려면 common.php파일 393번째줄을 참고해주시길 바랍니다 여기에 해답이있는데요
if ($_SESSION['ss_mb_id']) { // 로그인중이라면
$member = get_member($_SESSION['ss_mb_id']);
네 여기서 $member변수에 get_member함수를 통해 멤버정보를 담는것을 볼수있습니다
ss_mb_id세션은 로그인에 필요한 즉 get_member함수를 작동시키기 위한 정보인 mb_id만 담고있는게 맞습니다
회원이 로그인한 상태라면 세션값을 참조해서 회원정보를 $member 에 대입하는것이니깐 회원정보 배열이 들어가는게 맞습니다.
if ($_SESSION['ss_mb_id']) { // 로그인중이라면
$member = get_member($_SESSION['ss_mb_id']);
https://github.com/gnuboard/gnuboard5/blob/de9ba8db5b5f047ed46039852da6ecf54173de39/common.php#L387
set_session() 함수는 세션을 만드는 기능만 합니다.