서브도메인 세션공유 및 회원관련시 로그인, 회원가입, 정보수정 공유 방법 정보
서브도메인 세션공유 및 회원관련시 로그인, 회원가입, 정보수정 공유 방법본문
질문과 답변에서 답변 달다가 공유하면 좋을 것 같아 올립니다.
세션공유는 다른회원님이 올려놓으신 팁이였는데 어디인지 모르겠네요
아시는 분 있으시면 댓글에 링크 걸어주시면 감사하겠습니다.
www.domain.co.kr mall.domain.co.kr
이렇게 서브도메인으로 사용하실 때
(mall이라는 폴더에 그누보드를 중복으로 깐상태입니다. 저는 기존에 루트에 그누보드가 깔려있으므로 그누보드 최신버젼 install폴더만 빼고 mall폴더안에 집어넣습니다. 그다음 루트의 dbconfig.php를 복사하여 mall폴더안에 넣어주면 DB공유 가능합니다. 관리자는 루트 www.domain.co.kr/adm/ 여기서만 쓰시면 됩니다.)
config.php에서
72라인 쯤에
$g4['cookie_domain'] = ".domain.co.kr";를 적으셔서 쿠키를 공유합니다.
common.php에서
282라인에
session_save_path("{$g4['path']}/data/session");
--> session_save_path("../{$g4['path']}/data/session");
로 바꿔줍니다.
그리고 이렇게 서브도메인이 있을 시 DB를 공유한다면 회원가입이나, 로그인, 회원가입, 회원정보수정 시 루트로 자동연결 (예
서브에서 회원가입 시 mall.domain.co.kr/bbs/register.php로 경로가 지정되어있습니다. 이 경로를 www.domain.co.kr/bbs/regisiter.php로 자동으로 변경해주기를 원하시는 분들만 참고하시면 됩니다.
mall폴더안에 head.php를 에디터로 여시고 상단에
<?
function sub_domain_only($sub_domain="")
{
global $g4, $_SERVER;
{
global $g4, $_SERVER;
if (!$g4[cookie_domain]) return false;
if (!$_SERVER[HTTP_HOST]) return false;
if (!$_SERVER[HTTP_HOST]) return false;
$diff = substr($_SERVER[HTTP_HOST], 0, strlen($sub_domain)+1);
if ($diff != $sub_domain.".") {
goto_url2("http://".$sub_domain.$g4[cookie_domain].$_SERVER[REQUEST_URI]);
}
}
goto_url2("http://".$sub_domain.$g4[cookie_domain].$_SERVER[REQUEST_URI]);
}
}
function is_member_page() { // 회원관련 페이지인지 검사
global $g4;
$mpage = array(
"/$g4[bbs]/login.php"
,"/$g4[bbs]/login_check.php"
,"/$g4[bbs]/logout.php"
,"/$g4[bbs]/register.php"
,"/$g4[bbs]/register_form.php"
,"/$g4[bbs]/register_form_update.php"
,"/$g4[bbs]/register_result.php"
,"/$g4[bbs]/member_confirm.php"
);
$is_member_page = false;
for ($i=0, $max=count($mpage); $i<$max; $i++) {
if (strstr($_SERVER[PHP_SELF], $mpage[$i])) {
$is_member_page = true;
break;
}
}
return $is_member_page;
}
global $g4;
$mpage = array(
"/$g4[bbs]/login.php"
,"/$g4[bbs]/login_check.php"
,"/$g4[bbs]/logout.php"
,"/$g4[bbs]/register.php"
,"/$g4[bbs]/register_form.php"
,"/$g4[bbs]/register_form_update.php"
,"/$g4[bbs]/register_result.php"
,"/$g4[bbs]/member_confirm.php"
);
$is_member_page = false;
for ($i=0, $max=count($mpage); $i<$max; $i++) {
if (strstr($_SERVER[PHP_SELF], $mpage[$i])) {
$is_member_page = true;
break;
}
}
return $is_member_page;
}
function goto_url2($url) {
global $g4;
include_once("$g4[path]/head.sub.php");
echo "<script type='text/javascript'> window.onload = function () { location.replace('$url'); } </script>";
include_once("$g4[path]/tail.sub.php");
exit;
}
global $g4;
include_once("$g4[path]/head.sub.php");
echo "<script type='text/javascript'> window.onload = function () { location.replace('$url'); } </script>";
include_once("$g4[path]/tail.sub.php");
exit;
}
if (is_member_page()) {
sub_domain_only("www");
}
?>
sub_domain_only("www");
}
?>
이렇게 설정해주시면 여러 서브도메인을 사용하시면서 DB, 세션, 쿠키 공유하면서 로그인, 회원가입, 회원정보 수정도 루트에 까신 그대로를 사용하시면 되는 팁입니다.
배추빌더를 보고 활용했습니다. 도움이 되셨으면 좋겠습니다.
ps : 사용 중 하나 문제를 발견했습니다. 참고한 빌더가 배추인데 배추는 서브도메인을 각각폴더에 넣은 서브도메인을 잡는게 아니라 말그대로 루트에서 사용하고 그룹을 서브도메인으로 사용하기에 로그인 시 아무문제가 없으나 각각디렉토리를 사용할 시에는 로그인 후 서브 도메인으로 돌아오지않고 루트도메인에서 게시판이나 리덱션페이지가 루트로 가는 현상이 있습니다. 그래서 이렇게 수정을 해주셔야 합니다.
로그인링크에
<a href="<?=$g4['bbs_path']?>/login.php?url=<?=$urlencode?>">을
<a href="<?=$g4['bbs_path']?>/login.php?url=<?=urlencode($index_url)?><?=$urlencode?>">이렇게 바꿔주시고
회원제일때 글쓰기 버튼이 보이게 설정하시면 로그인을 안했다면 글쓰기 클릭 후 로그인 페이지로 넘어갑니다.
그래서 bbs폴더안에 write.php에서
alert("글을 쓸 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?$qstr&url=".urlencode("$_SERVER[PHP_SELF]?bo_table=$bo_table"));이와같이 로그인되는 소스가 보이실 겁니다.
3~4개정도 되는것같습니다. 이걸
alert("글을 쓸 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?$qstr&url=".urlencode("$g4[url]$_SERVER[PHP_SELF]?bo_table=$bo_table")); 이와같이 바꿔주시면됩니다.
추천
6
6
댓글 15개
서브도메인마다 접속시 회원가입해야하고 로그인 따로따로 해야하고 번거로웠었는데 좋은팁 감사합니다.
그런데 서브도메인별 빌더가 각각 다르고 그누보드버전도 다를때는 어떻게 해야 하나요? bbs폴더만 합치라는 건가요? 서브도메인별 모든 폴더들을 도메인 한곳으로 합치라는 건가요?
서브도메인별 스킨도 다를때는 어떻게 해야 하나요?
그누보드 최신걸로 업데이트 하면 스킨들이 먹통이 되어 버리더라구요...
그런데 서브도메인별 빌더가 각각 다르고 그누보드버전도 다를때는 어떻게 해야 하나요? bbs폴더만 합치라는 건가요? 서브도메인별 모든 폴더들을 도메인 한곳으로 합치라는 건가요?
서브도메인별 스킨도 다를때는 어떻게 해야 하나요?
그누보드 최신걸로 업데이트 하면 스킨들이 먹통이 되어 버리더라구요...
서브도메인별 도메인을 한곳으로 합친다는 말씀은 어떤의미인지 이해가 잘안가네요.
스킨이 다를땐 관리자는 한곳에서만 컨트롤해야하므로 쓰시는 스킨을 루트에 있는 스킨에 같이 등록을 시켜주시면 됩니다. 스킨이 먹통되는건 어차피 각 서브도메인폴더안에 있는 bbs를 통해가기 때문에 상관이 없습니다. 그리고 하나 더 추가해주실께 있는데 이건 본문에 수정해놓겠습니다.
스킨이 다를땐 관리자는 한곳에서만 컨트롤해야하므로 쓰시는 스킨을 루트에 있는 스킨에 같이 등록을 시켜주시면 됩니다. 스킨이 먹통되는건 어차피 각 서브도메인폴더안에 있는 bbs를 통해가기 때문에 상관이 없습니다. 그리고 하나 더 추가해주실께 있는데 이건 본문에 수정해놓겠습니다.
www.domain.co.kr mall.domain.co.kr
이렇게 서브도메인으로 사용하실 때
(mall이라는 폴더에 그누보드를 중복으로 깐상태입니다. 저는 기존에 루트에 그누보드가 깔려있으므로 그누보드 최신버젼 install폴더만 빼고 mall폴더안에 집어넣습니다. 그다음 루트의 dbconfig.php를 복사하여 mall폴더안에 넣어주면 DB공유 가능합니다. 관리자는 루트 www.domain.co.kr/adm/ 여기서만 쓰시면 됩니다.)
위부분이 이해가 빨리 안가서요.
기존에 그누보드가(빌더) aaa.com에 설치되어있고 다른 빌더들은 서브도메인 s.aaa.com, p.aaa.com에 설치되어 있다면
루트(도메인) dbconfig file 을 서브도메인 dbconfig file을 없애고 넣으라는 건가요?
이렇게 서브도메인으로 사용하실 때
(mall이라는 폴더에 그누보드를 중복으로 깐상태입니다. 저는 기존에 루트에 그누보드가 깔려있으므로 그누보드 최신버젼 install폴더만 빼고 mall폴더안에 집어넣습니다. 그다음 루트의 dbconfig.php를 복사하여 mall폴더안에 넣어주면 DB공유 가능합니다. 관리자는 루트 www.domain.co.kr/adm/ 여기서만 쓰시면 됩니다.)
위부분이 이해가 빨리 안가서요.
기존에 그누보드가(빌더) aaa.com에 설치되어있고 다른 빌더들은 서브도메인 s.aaa.com, p.aaa.com에 설치되어 있다면
루트(도메인) dbconfig file 을 서브도메인 dbconfig file을 없애고 넣으라는 건가요?
아닙니다. dbconfig.php만 복사해서 넣으시면 모두해결됩니다^^ 이해안가시면 *** 개인정보보호를 위한 이메일주소 노출방지 ***친추해주세요^^
dbconfig.php 파일을 복사해서 넣으니까 덮어씌워져서 사이트 마비되네요.
dbconfig.php DB명이 틀려서 인지 다시설치하라고 나오네요.
dbconfig.php DB명이 틀려서 인지 다시설치하라고 나오네요.
디비명이 동일한 경우에만 적용하시는겁니다^^
서브 도메인을 생각중에 db,세션문제를 찾던중 좋은 팁을 올려 주신것 같아 감사드리며 추천합니다,
위 설명중
config.php 파일 내용과 로그인 링크관련 수정은 루트에 설치된 파일만 수정하는것인지 아님 mall폴더에 설치한 파일에서도 수정을 해야 하는것인지 그리고 사이트내에 검색시 서브 도메인 포함 게시판 전체가 검색이 되는지 궁금합니다.
위 설명중
config.php 파일 내용과 로그인 링크관련 수정은 루트에 설치된 파일만 수정하는것인지 아님 mall폴더에 설치한 파일에서도 수정을 해야 하는것인지 그리고 사이트내에 검색시 서브 도메인 포함 게시판 전체가 검색이 되는지 궁금합니다.
ㄳㄳ
어떻게 같은 서버에 디비명이 같은 계정이 존재 할 수 있나요
서브도메인 세션공유
서브도메인
정말 멋진 팁입니다. 감사합니다!
신비나라님의 팁과 동일하게 작업하였습니다.
bizion.mk.co.kr 메인도메인
factory.bizion.co.kr 서브도메인
문제점 : 서브도메인 메인페이지에서 로그인시 메인도메인에 있는 회원정보를 정상적으로 가져옴
하지만 게시판 및 메인도메인 페이지에 넘어가면 서브페이지에서 로그인 한 정보가 넘어오지 못함
즉 서브도메인에서 로그인하게되면 메인페이지에서는 로그인한것을 인식을 못하고 있습니다.
bizion.mk.co.kr 메인도메인
factory.bizion.co.kr 서브도메인
문제점 : 서브도메인 메인페이지에서 로그인시 메인도메인에 있는 회원정보를 정상적으로 가져옴
하지만 게시판 및 메인도메인 페이지에 넘어가면 서브페이지에서 로그인 한 정보가 넘어오지 못함
즉 서브도메인에서 로그인하게되면 메인페이지에서는 로그인한것을 인식을 못하고 있습니다.
테스트 해봐야겠네요.
서브도메인 세션공유
서브도메인 세션공유
11년전 자료지만 정말 유익한 자료 감사합니다.
다만 그누/영카트 업데이트 할때마다 신경써야 할게 많은것 같습니다.
개인적으로 조금 다른 방법으로 하고있는데 올려주신 방법도 참고해서 적용해 보겠습니다....
감사합니다.
다만 그누/영카트 업데이트 할때마다 신경써야 할게 많은것 같습니다.
개인적으로 조금 다른 방법으로 하고있는데 올려주신 방법도 참고해서 적용해 보겠습니다....
감사합니다.