영문페이지 세션 재질문 채택완료
안녕하세요.
현재 같은 도메인 안에
/ <- 국문페이지
/en <- 영문페이지
로 개발중에 있습니다.
국문페이지에서 관리자를 로그인 시,
영문페이지도 관리자 권한을 유지하게 하려는 작업중인데,
common.php에 session_save_path 주석해제 후 경로 설정등을 해봐도 공유가 잘 되지 않습니다.
도움을 얻을 수 있을까요?
버전은 5.5x 버전 입니다.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
도움주신대로 /config 와 /en/config 의 SESSION_PATH 값을 동일하게 맞춰 보았지만, 공유가 되지를 않습니다...
방법을 알 수 있을까요?
답변 5개
짐작에
국문 로그인
영문 페이지 열고
다시 국문으로 오면 로그인이 풀리지 않나요?
// 차단된 회원이면 ss_mb_id 초기화, 또는 세션에 저장된 회원 토큰값을 비교하여 틀리면 초기화
if( ($member['mb_intercept_date'] && $member['mb_intercept_date'] <= date("Ymd", G5_SERVER_TIME))
|| ($member['mb_leave_date'] && $member['mb_leave_date'] <= date("Ymd", G5_SERVER_TIME))
|| (function_exists('check_auth_session_token') && !check_auth_session_token($member['mb_datetime']))
) {
set_session('ss_mb_id', '');
$member = array();
} else {
여기를
// 차단된 회원이면 ss_mb_id 초기화, 또는 세션에 저장된 회원 토큰값을 비교하여 틀리면 초기화
if( false)
|| ($member['mb_leave_date'] && $member['mb_leave_date'] <= date("Ymd", G5_SERVER_TIME))
|| (function_exists('check_auth_session_token') && !check_auth_session_token($member['mb_datetime']))
) {
set_session('ss_mb_id', '');
$member = array();
}
이렇게 해서 로그인 유지가 된다면
if 문 안에 함수를 하나씩 조사?해 봐야겠네요.
답변에 대한 댓글 2개
도움주신 print_r($_SESSION) 으로 안에 값을 페이지 POST로 넘겨주는 방식으로 일단 대체는 했습니다...
좀 더 알아보고 해봐야 겠습니다 감사합니다,,!!
댓글을 작성하려면 로그인이 필요합니다.
찾았습니다.
그누보드가 바뀌면서 변경된 부분이 있는데
common.php에서
// 차단된 회원이면 ss_mb_id 초기화, 또는 세션에 저장된 회원 토큰값을 비교하여 틀리면 초기화
if( ($member['mb_intercept_date'] && $member['mb_intercept_date'] <= date("Ymd", G5_SERVER_TIME))
|| ($member['mb_leave_date'] && $member['mb_leave_date'] <= date("Ymd", G5_SERVER_TIME))
|| (function_exists('check_auth_session_token') && !check_auth_session_token($member['mb_datetime']))
) {
$member['mb_datetime'] 이 값이 같아야 하네요.
phpmyadmin 등에서 값을 같게 하시거나
이 부분을 사용하지 않도록 소스를 수정해 보세요.
답변에 대한 댓글 3개
if( ($member['mb_intercept_date'] && $member['mb_intercept_date'] <= date("Ymd", G5_SERVER_TIME))
|| ($member['mb_leave_date'] && $member['mb_leave_date'] <= date("Ymd", G5_SERVER_TIME))
|| (function_exists('check_auth_session_token') && !check_auth_session_token($member['mb_datetime']))
) {
여기서 마지막 조건
(function_exists('check_auth_session_token') && !check_auth_session_token($member['mb_datetime']))
만 거치지 않게 해도 되는 부분일까요?
보안 관련 사항이라 나중에 꼼꼼한 검토가 필요할 수 있습니다.
둘다 로그인 전 입니다.
----/----
Array ( [ss_is_mobile] => )
----/en----
Array ( [ss_is_mobile] => )
국문만 로그인 하고 입니다.
----/----
Array (
[ss_is_mobile] =>
[ss_mb_id] => admin
[ss_mb_key] => 값
[ss_mb_token_key] =>값
[HA::STORE] => Array ( )
[HA::CONFIG] => Array ( )
[sl_userprofile] =>
[social_login_redirect] =>
[ss_cart_id] => 2022101211164467 )
----/en----
Array ( [ss_is_mobile] => )
마지막 조건을 제거해도 이렇네요...ㅠ
댓글을 작성하려면 로그인이 필요합니다.
국문페이지에서 관리자를 로그인 시,
영문페이지도 관리자 권한을 유지하게 하려는 작업중인데,
==
혹시 각각 사이트 주소가 다른 건 아니죠?
답변에 대한 댓글 6개
www.현재도메인/en
이렇게 구성중입니다.
www.현재도메인 의 관리자를 www.현재도메인/en 에 공유를 시키려고 합니다.
index.php
en/index.php
에서
<?php echo G5_SESSION_PATH; ?>
정말 경로가 같은지 한번 확인해 보세요.
/서버절대경로/data/session <- 기존
/서버절대경로/data/session <- 영문
둘다 동일하게 되어있습니다.
----------------------
작업했던 방식은
기존 그누보드 복사 후 /en 에 옮겨서 작업했습니다.
후에 session 공유 작업에 있던 참입니다.
이것도 각각 어떻게 나오는지 살펴 보세요.
Array (
[ss_is_mobile] =>
[ss_mb_id] => admin
[ss_mb_key] => 키값
[ss_mb_token_key] => 키값
[HA::STORE] => Array ( )
[HA::CONFIG] => Array ( )
[sl_userprofile] =>
[social_login_redirect] =>
[ss_cart_id] => 2022101210162681
)
영문 (로그인 하지 않은 상태입니다.)
Array (
[ss_is_mobile] =>
[ss_bo_table] => contact_en
[ss_wr_id] => 0
[ss_captcha_count] => 0
[ss_captcha_key] => 키값
[ss_captcha_save] => 키값
)
현재 이렇게 나오고 있습니다. 관리자 로그인 자체를 거치지 않은거 같네요...
각 URL을 클릭하면 오른쪽에 상세 정보가 또 나옵니다
여기서
[headers]에서
^Request headers 정보에
cookie가 있는데 이 문자열도 비교해 보세요.
그리고 마지막은
<?php echo session_id(); ?>
출력해서 같은 값이 나오는지도 살펴 보세요.
댓글을 작성하려면 로그인이 필요합니다.
data/session
en/data/session
이 같아야 세션 공유가 됩니다.
==
도움주신대로 /config 와 /en/config 의 SESSION_PATH 값을 동일하게 맞춰 보았지만,
==
해 보신 소스를 올려 보세요
답변에 대한 댓글 2개
공유하실 생각이라면
별도의 세션 변수( 값)을 사용하는 것도
방법입니다
define('G5_SESSION_PATH', G5_DATA_PATH.'/'.G5_SESSION_DIR); (기본과 동일)
/en/config 의 SESSION_PATH
define('G5_SESSION_PATH', '/home/homepage/public/inthetech/pg/data/'.G5_SESSION_DIR); (절대경로로 수정)
이렇게 변경했습니다.
/en/config 앞의 /home/homepage/public/inthetech/pg/data/ 의 경우 /config 의 G5_DATA_PATH 값과 동일합니다.
댓글을 작성하려면 로그인이 필요합니다.
같은 도메인이면 별도 설정없이 세션이 공유되어야 정상인데
어떤 문제인지 잘 모르겠네요
https://www.php.net/manual/en/session.configuration.php#ini.session.cookie-path
부분도 확인해보세요
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
일단 국문 로그인 -> 영문을 들어가도 로그인은 풀리지 않습니다.
올려주신 첫번째 조건 false 로 변경시에도 현상태 그대로 유지가 되네요...