This commit is contained in:
shim
2023-04-17 11:06:08 +09:00
parent d0b393aa97
commit 76264e09ad
4686 changed files with 552713 additions and 0 deletions

View File

@@ -0,0 +1,431 @@
<?php
if(!defined('__KIMS__')) exit;
if ($d['admin']['ssl_type'] == 1)
if($_SERVER['HTTPS'] != 'on') getLink($g['ssl_root'].'/?'.$_SERVER['QUERY_STRING'],'','','');
$DB_CONNECT = isConnectedToDB($DB);
$g['mobile']= isMobileConnect($_SERVER['HTTP_USER_AGENT']);
$g['device']= $g['mobile'] && $_SESSION['pcmode'] != 'Y';
$g['broswer'] = getBrowzer($_SERVER['HTTP_USER_AGENT']);
$g['deviceType']=getDeviceKind($_SERVER['HTTP_USER_AGENT'],$g['mobile']);
$my = array();
$my['level'] = 0;
if ($_SESSION['mbr_uid'])
{
$my = array_merge(getUidData($table['s_mbrid'],$_SESSION['mbr_uid']),getDbData($table['s_mbrdata'],"memberuid='".$_SESSION['mbr_uid']."'",'*'));
if (!$my['uid'] || $my['pw'] != $_SESSION['mbr_pw']) { // 로그인 상태에서 관리자 회원삭제 된 경우
$_SESSION['mbr_uid'] = '';
$_SESSION['mbr_pw'] = '';
$_SESSION['mbr_logout'] = '1';
setAccessToken($my['uid'],'logout');
setrawcookie('site_common_result', rawurlencode('로그아웃 되었습니다.|danger'),time() + (60 * 30), '/');
getLink('reload','','','');
}
}
// 로그인 상태 유지 프로세스 추가
if($_COOKIE[$DB['head'].'_token'])
{
$memberuid=getArrayCookie($_COOKIE[$DB['head'].'_token'],'|',0);
$access_token=getArrayCookie($_COOKIE[$DB['head'].'_token'],'|',1);
$_now=time();
$t_que="memberuid='".$memberuid."' and access_token='".$access_token."' and expire > '".$_now."' ";
$is_token=getDbData($DB['head'].'_s_mbrtoken',$t_que,'*');
if($is_token['uid']){
$my = array_merge(getUidData($table['s_mbrid'],$memberuid),getDbData($table['s_mbrdata'],"memberuid='".$memberuid."'",'*'));
}
}
if ($r)
{
$_HS = getDbData($table['s_site'],"id='".$r."'",'*');
$s = $_HS['uid'];
}
if (!$s)
{
if ($g['mobile'])
{
$_HH = getDbData($table['s_mobile'],'','*');
if ($_HH['usemobile'] == 1) $_HS = getUidData($table['s_site'],$_HH['startsite']);
else if($_HH['usemobile'] == 2) if($g['url_host'] != $_HH['startdomain']) getLink($_HH['startdomain'],'','','');
}
if (!$_HS['uid'])
{
$_HD = getDbData($table['s_domain'],"name='".str_replace('www.','',$_SERVER['HTTP_HOST'])."'",'*');
if ($_HD['site']) $_HS = getUidData($table['s_site'],$_HD['site']);
else $_HS = db_fetch_array(getDbArray($table['s_site'],'','*','gid','asc',1,1));
}
$s = $_HS['uid'];
$r = $_HS['id'];
}
else $_HS = getUidData($table['s_site'],$s);
$_SEO = getDbData($table['s_seo'],'rel=0 and parent='.$_HS['uid'],'*');
include getLangFile($g['path_module'].'admin/language/',($_HS['lang']?$_HS['lang']:$d['admin']['syslang']),'/lang.function.php');
include getLangFile($g['path_module'].'admin/language/',($_HS['lang']?$_HS['lang']:$d['admin']['syslang']),'/lang.engine.php');
$_CA = array();
$date = getVDate($_HS['timecal']);
$g['s'] = str_replace('/index.php','',$_SERVER['SCRIPT_NAME']);
$g['r'] = $_HS['rewrite'] ? $g['s'].($_HS['usescode']?'/'.$r:'') : '.';
$g['img_core'] = $g['s'].'/_core/images';
$g['meta_tit'] = $_SEO['title'];
$g['meta_key'] = $_SEO['keywords'];
$g['meta_des'] = $_SEO['description'];
$g['meta_bot'] = $_SEO['classification'];
$g['meta_img'] = $_SEO['image_src']?getMetaImage($_SEO['image_src']):$g['img_core'].'/noimage_kimsq.png';
$g['sys_module'] = $d['admin']['sysmodule'];
$g['sys_action'] = $a && !$c ? true : false;
$m = $m && !strstr($m,'.') ? $m : $g['sys_module'];
$_m = $m;
$_mod = $mod;
if (!$g['sys_action'] && !$system)
{
if ($c)
{
$c=substr($c,-1)=='/'?str_replace('/','',$c):$c;
$_CA = explode('/',$c);
$_tmp['count'] = count($_CA);
$_tmp['id'] = $_CA[$_tmp['count']-1];
$_HM = getDbData($table['s_menu'],"id='".$_tmp['id']."' and site=".$s,'*');
if ($_tmp['count']>1) $_FHM = getDbData($table['s_menu'],"id='".$_CA[0]."' and site=".$s,'*');
else $_FHM = $_HM;
if ($_HM['reject']&&!$my['admin']) getLink('','',_LANG('em001','admin'),'-1');
if ($_HM['site']!=$_HS['uid']) getLink('','',_LANG('em002','admin'),'-1');
if($_HM['menutype']==1)
{
if ($_HM['redirect']) getLink($_HM['joint'],'','','');
$_tmpexp = explode('?',$_HM['joint']);
if ($_tmpexp[1])
{
$_tmparr = explode('&',$_tmpexp[1]);
foreach($_tmparr as $_tmpval)
{
if(!$_tmpval) continue;
$_tmparr = explode('=',$_tmpval);
${$_tmparr[0]} = $_tmparr[1];
}
}
}
if($_HM['menutype']==3)
{
getLink(RW('c='.$_HM['joint']),'','','');
}
}
if (!$c && $m == $g['sys_module'])
{
if (!$mod) $_HP = getUidData($table['s_page'],$g['mobile']&&$_SESSION['pcmode']!='Y'?($_HS['m_startpage']?$_HS['m_startpage']:$_HS['startpage']):$_HS['startpage']);
else $_HP = getDbData($table['s_page'],"id='".$mod."'",'*');
if($_HP['uid']) $_HM['layout'] = $_HP['layout'];
if ($_HP['pagetype']==1)
{
$_HM['layout'] = $_HP['layout'];
$_tmpexp = explode('?',$_HP['joint']);
if ($_tmpexp[1])
{
$_tmparr = explode('&',$_tmpexp[1]);
foreach($_tmparr as $_tmpval)
{
if(!$_tmpval) continue;
$_tmparr = explode('=',$_tmpval);
${$_tmparr[0]} = $_tmparr[1];
}
if ($_m == $g['sys_module']) $_mod = '';
if ($m != $g['sys_module']) $mod = $_mod;
}
}
}
if ($d['admin']['ssl_type'] == 2)
{
if ($_HP['uid'])
{
if (strpos(',,'.$d['admin']['ssl_page'].',',','.$_HP['id'].','))
{
if($_SERVER['HTTPS'] != 'on') getLink($g['ssl_root'].'/?'.$_SERVER['QUERY_STRING'],'','','');
}
else {
if($_SERVER['HTTPS'] == 'on') getLink(str_replace(':'.$d['admin']['ssl_port'],'',str_replace('https://','http://',$g['url_root'])).'/?'.$_SERVER['QUERY_STRING'],'','','');
}
}
else if ($_HM['uid'])
{
if (strpos(',,'.$d['admin']['ssl_menu'].',',','.$_HM['id'].','))
{
if($_SERVER['HTTPS'] != 'on') getLink($g['ssl_root'].'/?'.$_SERVER['QUERY_STRING'],'','','');
}
else {
if($_SERVER['HTTPS'] == 'on') getLink(str_replace(':'.$d['admin']['ssl_port'],'',str_replace('https://','http://',$g['url_root'])).'/?'.$_SERVER['QUERY_STRING'],'','','');
}
}
else {
if (strpos(',,'.$d['admin']['ssl_module'].',',','.$m.','))
{
if($_SERVER['HTTPS'] != 'on') getLink($g['ssl_root'].'/?'.$_SERVER['QUERY_STRING'],'','','');
}
else {
if($_SERVER['HTTPS'] == 'on') getLink(str_replace(':'.$d['admin']['ssl_port'],'',str_replace('https://','http://',$g['url_root'])).'/?'.$_SERVER['QUERY_STRING'],'','','');
}
}
}
}
$_HMD = getDbData($table['s_module'],"id='".$m."'",'*');
$g['switch_1'] = getSwitchInc('top');
$g['switch_2'] = getSwitchInc('head');
$g['switch_3'] = getSwitchInc('foot');
$g['switch_4'] = getSwitchInc('end');
//사이트별 회원설정 변수
$g['memberVarForSite'] = $g['path_var'].'site/'.$r.'/member.var.php'; // 사이트 회원모듈 변수파일
include_once file_exists($g['memberVarForSite']) ? $g['memberVarForSite'] : $g['path_module'].'member/var/var.php';
//사이트별 포스트설정 변수
$g['postVarForSite'] = $g['path_var'].'site/'.$r.'/post.var.php';
include_once file_exists($g['postVarForSite']) ? $g['postVarForSite'] : $g['path_module'].'post/var/var.php';
$d['post']['writeperm'] = true;
$d['post']['categoryperm'] = true;
$d['post']['goodsperm'] = true;
if (!$my['admin']) {
if ($d['post']['perm_l_write'] > $my['level'] || strpos('_'.$d['post']['perm_g_write'],'['.$my['mygroup'].']') || !$my['uid']) {
$d['post']['writeperm'] = false;
}
if ($d['post']['perm_l_category'] > $my['level'] || strpos('_'.$d['post']['perm_g_category'],'['.$my['mygroup'].']') || !$my['uid']) {
$d['post']['categoryperm'] = false;
}
if ($d['post']['perm_l_goods'] > $my['level'] || strpos('_'.$d['post']['perm_g_goods'],'['.$my['mygroup'].']') || !$my['uid']) {
$d['post']['goodsperm'] = false;
}
}
//사이트별 게시판 공통설정 변수
$g['bbsVarForSite'] = $g['path_var'].'site/'.$r.'/bbs.var.php';
include_once file_exists($g['bbsVarForSite']) ? $g['bbsVarForSite'] : $g['path_module'].'bbs/var/var.php';
//사이트별 댓글설정 변수
$g['commentVarForSite'] = $g['path_var'].'site/'.$r.'/comment.var.php';
include_once file_exists($g['commentVarForSite']) ? $g['commentVarForSite'] : $g['path_module'].'comment/var/var.php';
// 회원가입을 위한 이메일/휴대폰 본인인증 후 관련세션 존재유무
if (isset($_SESSION['JOIN']['email']) || isset($_SESSION['JOIN']['phone'])) {
$call_modal_join_site=1; // 인증후,가입 모달 호출
}
//사이트별 외부연결 설정
if (file_exists($g['path_var'].'site/'.$r.'/connect.var.php')) {
include $g['path_var'].'site/'.$r.'/connect.var.php';
}
// 푸시알림 지원여부
if ( $g['mobile']!='ipad' && $g['mobile']!='iphone') {
if ($g['broswer']!='MSIE 11' && $g['broswer']!='MSIE 10' && $g['broswer']!='MSIE 9' && $g['broswer']!='Safari') {
$g['pwa_supported']=1;
if (file_exists($g['path_var'].'fcm.info.js')) {
$g['push_active']=1;
} else {
$g['push_active']=2;
}
}
}
// 포스트 공개관련
$d['displaySet'] = "||비공개,lock||일부공개,how_to_reg||미등록,insert_link||회원공개,people_alt||전체공개,public";
$g['displaySet']['label'] = [];
$g['displaySet']['icon'] = [];
$displaySet=explode('||',$d['displaySet']);
foreach ($displaySet as $displayLine) {
$dis=explode(',',$displayLine);
array_push($g['displaySet']['label'], $dis[0]);
array_push($g['displaySet']['icon'], $dis[1]);
}
//소셜로그인 세션 존재유무
if(isset($_SESSION['SL']['naver'])||isset($_SESSION['SL']['kakao'])||isset($_SESSION['SL']['facebook'])||isset($_SESSION['SL']['google'])||isset($_SESSION['SL']['instagram'])||isset($_SESSION['SL']['twitter'])){
if (is_array($_SESSION['SL']['naver']) || is_array($_SESSION['SL']['kakao']) || is_array($_SESSION['SL']['facebook']) || is_array($_SESSION['SL']['google']) || is_array($_SESSION['SL']['instagram']) || is_array($_SESSION['SL']['twitter'])){
$is_socialUserinfoSession = 1;
}
}
//소셜로그인을 사용할때
if ($d['member']['login_social'] || $d['member']['join_bySocial']) {
if ($is_socialUserinfoSession) {
if (isset($_SESSION['SL']['naver'])) {
$sns_code = 'n';
$sns_name = 'naver';
$sns_name_ko = '네이버';
$sns_access_token = $_SESSION['SL']['naver']['userinfo']['access_token']; //소셜미디어 접근토큰
$sns_refresh_token = $_SESSION['SL']['naver']['userinfo']['refresh_token']; //소셜미디어 갱신토큰
$sns_expires_in = $_SESSION['SL']['naver']['userinfo']['expires_in']; //소셜미디어 접근 토큰 유효기간(초)
$snsuid = $_SESSION['SL']['naver']['userinfo']['uid']; //소셜미디어 고유번호
$name = $_SESSION['SL']['naver']['userinfo']['name'];
$email = $_SESSION['SL']['naver']['userinfo']['email'];
$_photo = $_SESSION['SL']['naver']['userinfo']['photo'];
}
if (isset($_SESSION['SL']['kakao'])) {
$sns_code = 'k';
$sns_name = 'kakao';
$sns_name_ko = '카카오';
$sns_access_token = $_SESSION['SL']['kakao']['userinfo']['access_token']; //소셜미디어 접근토큰
$sns_refresh_token = $_SESSION['SL']['kakao']['userinfo']['refresh_token']; //소셜미디어 갱신토큰
$sns_expires_in = $_SESSION['SL']['kakao']['userinfo']['expires_in']; //소셜미디어 접근 토큰 유효기간(초)
$snsuid = $_SESSION['SL']['kakao']['userinfo']['uid']; //소셜미디어 고유번호
$name = $_SESSION['SL']['kakao']['userinfo']['name'];
$email = $_SESSION['SL']['kakao']['userinfo']['email'];
$_photo = $_SESSION['SL']['kakao']['userinfo']['photo'];
}
if (isset($_SESSION['SL']['facebook'])) {
$sns_code = 'f';
$sns_name = 'facebook';
$sns_name_ko = '페이스북';
$sns_access_token = $_SESSION['SL']['facebook']['userinfo']['access_token']; //소셜미디어 접근토큰
$sns_refresh_token = $_SESSION['SL']['facebook']['userinfo']['refresh_token']; //소셜미디어 갱신토큰
$sns_expires_in = $_SESSION['SL']['facebook']['userinfo']['expires_in']; //소셜미디어 접근 토큰 유효기간(초)
$snsuid = $_SESSION['SL']['facebook']['userinfo']['uid']; //소셜미디어 고유번호
$name = $_SESSION['SL']['facebook']['userinfo']['name'];
$email = $_SESSION['SL']['facebook']['userinfo']['email'];
$_photo = $_SESSION['SL']['facebook']['userinfo']['photo'];
}
if (isset($_SESSION['SL']['google'])) {
$sns_code = 'g';
$sns_name = 'google';
$sns_name_ko = '구글';
$sns_access_token = $_SESSION['SL']['google']['userinfo']['access_token']; //소셜미디어 접근토큰
$sns_refresh_token = $_SESSION['SL']['google']['userinfo']['refresh_token']; //소셜미디어 갱신토큰
$sns_expires_in = $_SESSION['SL']['google']['userinfo']['expires_in']; //소셜미디어 접근 토큰 유효기간(초)
$snsuid = $_SESSION['SL']['google']['userinfo']['uid']; //소셜미디어 고유번호
$name = $_SESSION['SL']['google']['userinfo']['name'];
$email = $_SESSION['SL']['google']['userinfo']['email'];
$_photo = $_SESSION['SL']['google']['userinfo']['photo'];
}
if (isset($_SESSION['SL']['instagram'])) {
$sns_code = 'i';
$sns_name = 'instagram';
$sns_name_ko = '인스타그램';
$sns_access_token = $_SESSION['SL']['instagram']['userinfo']['access_token']; //소셜미디어 접근토큰
$snsuid = $_SESSION['SL']['instagram']['userinfo']['uid']; //소셜미디어 고유번호
$name = $_SESSION['SL']['instagram']['userinfo']['name'];
$_photo = $_SESSION['SL']['instagram']['userinfo']['photo'];
}
$mbr_sns = getDbData($table['s_mbrsns'],'id='.$snsuid.' and sns="'.$sns_name.'"','mbruid');
$mbr_email = getDbData($table['s_mbremail'],"email='".$email."'",'*');
$d_regis = $date['totime'];
if ($my['uid']) {
// 개인정보관리 > 연결계정 > 추가 연결
if ($mbr_sns['mbruid'] && ($mbr_sns['mbruid'] != $my['uid'])) {
setrawcookie('site_common_result', rawurlencode($sns_name_ko.' 계정이 이미 다른계정에 연결되어 있습니다.|danger'),time() + (60 * 30), '/');
$_SESSION['SL'] = ''; // 세션비우기
getLink('reload','','','');
}
if ($mbr_sns['mbruid']) {
$msg = ' 계정이 재인증 되었습니다.'; //개인정보관리 > 개인정보잠금 > 재인증
} else { //신규연결
$msg = ' 계정이 연결 되었습니다.'; // 개인정보관리 > 연결계정 > 추가 연결
getDbInsert($table['s_mbrsns'],'mbruid,sns,id,access_token,refresh_token,expires_in,d_regis',"'".$my['uid']."','".$sns_name."','$snsuid','$sns_access_token','$sns_refresh_token','$sns_expires_in','$d_regis'");
}
getDbUpdate($table['s_mbrdata'],"last_log='".$date['totime']."'",'memberuid='.$my['uid']);
setrawcookie('site_common_result', rawurlencode($sns_name_ko.$msg.'|default'),time() + (60 * 30), '/'); // 알림레이어 출력를 위한 로그인 상태 cookie 저장
$_SESSION['SL'] = ''; // 세션비우기
getLink('reload','','','');
} else { // 비로그인 상태
//결과값 못 받은 경우
if (!$name) {
$_SESSION['SL'] = '';
setrawcookie('site_common_result',rawurlencode($sns_name_ko.' 에서 정보를 수신하지 못했습니다.|danger'),time() + (60 * 30), '/');
getLink('reload','','','');
}
// 정상 소셜로그인 (이미 연결된 소셜미디어 고유번호가 있을 경우, 해당회원 로그인 처리)
if ($mbr_sns['mbruid']) {
$M = getUidData($table['s_mbrid'],$mbr_sns['mbruid']);
getDbUpdate($table['s_mbrdata'],"tmpcode='',now_log=1,last_log='".$date['totime']."',sns='".$sns_name."'",'memberuid='.$M['uid']);
$_SESSION['mbr_uid'] = $M['uid'];
$_SESSION['mbr_pw'] = $M['pw'];
setAccessToken($mbr_sns['mbruid'],'login'); //로그인 유지 기본적용
setrawcookie('site_common_result',rawurlencode($sns_name_ko.' 계정으로 로그인 되었습니다.|default'),time() + (60 * 30), '/'); // 알림레이어 출력를 위한 로그인 상태 cookie 저장
$_SESSION['SL'] = ''; //세션 비우기
getLink('reload','','','');
}
// 소셜미디어에서 획득한 이메일이 기존 회원의 동일한 이메일에 있을 경우,
if ($mbr_email['mbruid']) {
if ($mbr_email['d_verified']) {
// 본인 인증된 메일일 경우, 자동 로그인 및 연결처리 (동일인 중복가입을 막기위해)
$M = getUidData($table['s_mbrid'],$mbr_email['mbruid']);
$d_regis = $date['totime'];
getDbUpdate($table['s_mbrdata'],"tmpcode='',now_log=1,last_log='".$date['totime']."',sns='".$sns_name."'",'memberuid='.$M['uid']);
getDbInsert($table['s_mbrsns'],'mbruid,sns,id,access_token,refresh_token,expires_in,d_regis',"'".$M['uid']."','".$sns_name."','$snsuid','$sns_access_token','$sns_refresh_token','$sns_expires_in','$d_regis'");
$_SESSION['mbr_uid'] = $M['uid'];
$_SESSION['mbr_pw'] = $M['pw'];
setrawcookie('site_common_result', rawurlencode($sns_name_ko.' 계정으로 로그인 되었습니다.|default'),time() + (60 * 30), '/'); // 알림레이어 출력를 위한 로그인 상태 cookie 저장
$_SESSION['SL'] = ''; //세션 비우기
getLink('reload','','','');
} else {
// 계정연결 모달 호출
$is_sns = getDbData($table['s_mbrsns'],'mbruid="'.$mbr_email['mbruid'].'"','sns');
$has_sns = $is_sns['sns'];
if ($is_sns['sns']=='naver') $has_sns_ko = '네이버';
if ($is_sns['sns']=='kakao') $has_sns_ko = '카카오';
if ($is_sns['sns']=='google') $has_sns_ko = '구글';
if ($is_sns['sns']=='facebook') $has_sns_ko = '페이스북';
if ($is_sns['sns']=='instagram') $has_sns_ko = '인스타그램';
setrawcookie('site_common_result', rawurlencode($sns_name_ko.' 사용자 인증 되었습니다. 계정을 연결해 주세요.|default'),time() + (60 * 30), '/'); // 알림레이어 출력를 위한 로그인 상태 cookie 저장
if ($m!='member' || $front!="login") {
$call_modal_combine=1; // 계정통합 모달 호출
}
}
} else {
if ($d['member']['join_enable']) { // 회원가입 작동 중지
setrawcookie('site_common_result', rawurlencode($sns_name_ko.' 사용자 인증 되었습니다.|default'),time() + (60 * 30), '/'); // 알림레이어 출력를 위한 로그인 상태 cookie 저장
if ($m!='member' || $front!="join") {
$call_modal_join_social=1; // 소셜로그인 인증후,가입 모달 호출
}
} else {
$call_modal_join_social=0;
$_SESSION['SL'] = ''; //세션 비우기
setrawcookie('site_common_result', rawurlencode(' 죄송합니다. 지금은 회원가입을 하실 수 없습니다.|danger'),time() + (60 * 30), '/'); // 알림레이어 출력를 위한 로그인 상태 cookie 저장
}
}
}
} //소셜미디어에서 확득한 사용자 정보배열 세션이 있을때 끝
// 연결계정 정보
$my_naver = getDbData($table['s_mbrsns'],"mbruid='".$my['uid']."' and sns='naver'",'*');
$my_kakao = getDbData($table['s_mbrsns'],"mbruid='".$my['uid']."' and sns='kakao'",'*');
$my_google = getDbData($table['s_mbrsns'],"mbruid='".$my['uid']."' and sns='google'",'*');
$my_facebook = getDbData($table['s_mbrsns'],"mbruid='".$my['uid']."' and sns='facebook'",'*');
$my_instagram = getDbData($table['s_mbrsns'],"mbruid='".$my['uid']."' and sns='instagram'",'*');
}
?>