혼자서 끙끙 앓으며 해보다가 도저히 안될 것 같아서 여쭤봅니다.
일단 제가 편리님의 소셜로그인 v2 를 사용중인데
용도상 각 게시판에 아웃로그인을 달아놨고 해당 게시판에서 소셜 로그인을 통해서
로그인을 하면, 메인페이지(G5_URL)로 이동을 해버리는데요.
그 전에 소셜로그인 v1을 사용할 때는 메인페이지로 이동하지 않아서 쓰기 편했기에
/g5/plugin/oauth/functions.php 부분을 수정해서 쓸려고 합니다.
아래의 코드 중에서 44번째 줄에 function alert_opener_url($msg='', $url=G5_URL) 문에서
G5_URL 를 G5_BBS_URL.'/board.php?bo_table=notice' 로 바꿔주면
로그인 후 특정게시판으로 이동이 가능했습니다.
그런데 특정 게시판으로 이동하는 것이 아닌 해당 게시판에서 아웃로그인 폼을 이용해
소셜로그인을 해도 페이지 이동 없이 해당 게시판에 머물러 있으려면
어떻게 해야하는지 감이 안옵니다
조금만 도와주셔도 정말 감사할것 같아요 ~
Copy
<?php function get_oauth_member_info($no, $nick, $service){ if(!$no || !$service) return ''; $id = ''; $str = ''; $info = array(); if(strlen($no) > 16) $no = str_baseconvert($no); switch($service) { case 'naver': $str = 'nid'; break; case 'kakao': $str = 'kko'; break; case 'facebook': $str = 'fcb'; break; case 'google': $str = 'ggl'; break; default: alert('올바르게 이용해 주십시오.'); break; } if($str) $id = $str.G5_OAUTH_ID_DELIMITER.$no; $pass = get_encrypt_string(pack('V*', rand(), rand(), rand(), rand())); $nick = G5_OAUTH_NICK_PREFIX.preg_replace('#[^0-9A-Za-zㄱ-ㅎ가-힣]#', '', $nick); $info = array('id' => $id, 'pass' => $pass, 'nick' => $nick); return $info;} function alert_opener_url($msg='', $url=G5_URL){ $url = str_replace('&', '&', $url); $url = preg_replace("/[\<\>\'\"\\\'\\\"\(\)]/", "", $url); // url 체크 check_url_host($url); echo '<script>'.PHP_EOL; if(trim($msg)) echo 'alert("'.$msg.'");'.PHP_EOL; echo 'window.opener.location.href = "'.$url.'";'.PHP_EOL; echo 'window.close();'.PHP_EOL; echo '</script>'; exit;} // http://php.net/manual/kr/function.base-convert.php#109660function str_baseconvert($str, $frombase=10, $tobase=36){ $str = trim($str); if (intval($frombase) != 10) { $len = strlen($str); $q = 0; for ($i=0; $i<$len; $i++) { $r = base_convert($str[$i], $frombase, 10); $q = bcadd(bcmul($q, $frombase), $r); } } else $q = $str; if (intval($tobase) != 10) { $s = ''; while (bccomp($q, '0', 0) > 0) { $r = intval(bcmod($q, $tobase)); $s = base_convert($r, 10, $tobase) . $s; $q = bcdiv($q, $tobase, 0); } } else $s = $q; return $s;} function is_social_connected($mb_id, $service){ global $g5; $sql = " select sm_id from {$g5['social_member_table']} where mb_id = '$mb_id' and sm_service = '$service' "; $row = sql_fetch($sql); return $row['sm_id'] ? true : false;} function reset_social_info(){ unset($GLOBALS['member']); set_session('ss_mb_id', ''); set_session('ss_oauth_member_'.get_session('ss_oauth_member_no').'_info', ''); set_session('ss_oauth_member_no', '');}?>
|
답변 1개
채택된 답변
+20 포인트
8년 전
이쪽 소스가 아닌듯한데 업데이트쪽에
G5_URL 부분이 있는데 현재페이지로 적용하셔야할듯합니다.
답변을 작성하려면 로그인이 필요합니다.