세션이 안 넘어오는 문제
본문
안녕하세요. 회원가입시 관련 내용을 입력하고 확인을 누르고 난 뒤에
register_form_update.php
139줄 라인에서
if (get_session('ss_check_mb_id') != $mb_id || get_session('ss_check_mb_nick') != $mb_nick || get_session('ss_check_mb_email') != $mb_email) {
set_session('ss_check_mb_id', '');
set_session('ss_check_mb_nick', '');
set_session('ss_check_mb_email', '');
alert('올바른 방법으로 이용해 주십시오.');
}
get_session('ss_check_mb_id')
get_session('ss_check_mb_nick')
get_session('ss_check_mb_email')
해당 파일에서 print_r($_SESSION); 을 해보면, ss_token, ss_captcha_key, ss_captcha_save 등 몇가지는 값이 나오긴 하지만, 위의 3가지는 아예 세션이 저장되어 있지 않습니다.
그래서 '올바른 방법으로 이용해 주십시오' 라고 에러창 메세지가 뜨는데
혹시 이와 관련해서 어떤 문제로 인한 것인지 알 수 있을까요?
php 버전은 PHP Version 8.4.10p1 입니다.
session
| Session Support | enabled |
| Registered save handlers | files user |
| Registered serializer handlers | php_serialize php php_binary |
| Directive | Local Value | Master Value |
|---|---|---|
| session.auto_start | Off | Off |
| session.cache_expire | 180 | 180 |
| session.cache_limiter | no-cache, must-revalidate | nocache |
| session.cookie_domain | no value | no value |
| session.cookie_httponly | On | Off |
답변 6
common.php 216행 주석을 없애고 테스트 해보세요
// 세션파일 저장 디렉토리를 지정할 경우
// session_save_path(G5_SESSION_PATH);
여러가지 원인이 있을수 있는데 혹시 아래의 권한이 707 이 되어 있는지 다시 한번 확인을 해보시겠어요?
/data/session/
세션 폴더내 파일을 모두 삭제 후 다시 테스트해보세요.
다른 세션들은 있다는건 세션 생성 폴더나 퍼미션엔 문제가 없다고 봐야할거고 register_form 에서 submit할때
jquery.register_form.js를 통해 ajax로 중복체크등하고 언급하신 세션이 생기고 update로 넘어가는 로직인데 form의 submit처리쪽에서 ajax없이 그냥 넘어간거같습니다. 원본소스의 register_form.skin.php하단의 스크립트와 비교해보시고 브라우저 콘솔에서 에러가 없는지 체크해보세요
설정충돌로 보여지는데요
위의 값중에
session.auto_start Off 로 보여진것으로 보아
on으로 변경해보시고
시작의 흐름에서
@session_start(); 가 존재하고 작동하는지를 확인해보시는게 필요해 보입니다.
소스중 최상단에 session_start(); 야 하며 그느보드는 이것을 기본으로 잡아주고 있습니다.
다른 소스가 잇는지 확인 해 주시고요
ib/common.lib.php 파일 3818 번째줄에 아래 코드 넣어보세요
if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
$_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
}