질문게시판

워드프레스와 그누보드 연동관련

워드프레스가 설치된 경로 문제와 설정하실 때 도메인만 적으시면 됩니다.
아래 소스를 붙여넣었으니, http://hackya.com/dtd/extend/wp-sso.php 에 넣어주세요

<?
/*
 그누보드 확장 모듈 : 워드프레스 SSO 처리
 */
$wp_server_domain = 'hackya.com'; // xxx.com
$wp_server_addr = '50.63.47.1'; // xxx.xxx.xxx.xxx
$wp_server_path = '/';
 
$wp_cookie_name = 'wordpress_logged_in_'.md5('http://'.$wp_server_domain);
$wp_cookie_value = $_COOKIE[$wp_cookie_name];
 
if ($_SESSION['ss_mb_id'])
{
    // 총 관리자인 경우 열외 - 그누보드를 자체적으로 살펴볼 권한을 줘야징
    if(!$wp_cookie_value&&$is_admin != 'super')
    {
        // 이호경님 제안 코드
        session_unset(); // 모든 세션변수를 언레지스터 시켜줌 
        session_destroy(); // 세션해제함 
 
        // 페이지를 재실행
        echo "<script type='text/javascript'> window.location.reload(); </script>";
        exit;
    }
}else{
    if($wp_cookie_value)
    {
        // 메인 서버에서 정보 취득
        $fp = fsockopen($wp_server_addr,80,$errno,$errstr,3);
 
        if($fp)
        {
            fputs($fp, "GET {$wp_server_path}wp-sso.php HTTP/1.1\r\n");
            fputs($fp, "Accept: */*\r\n");
            fputs($fp, "Accept-Language: ko\r\n");
            fputs($fp, "User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1)\r\n");
            fputs($fp, "Host: {$wp_server_domain}\r\n");
            fputs($fp, "Connection: Close\r\n");
            fputs($fp, "Cookie: {$wp_cookie_name}={$wp_cookie_value}\r\n");
            fputs($fp, "\r\n");
 
            $data = '';
            while(!feof($fp))
            {
                $data .= fgets($fp,1024);
            }
 
            fclose($fp);
 
            if($data)
            {
                foreach(array('id', 'nick', 'email', 'url', 'password') as $value)
                {
                    preg_match('@<'.$value.'>(.*?)</'.$value.'>@',$data,$matches); 
                    $wp_user[$value] = $matches[1];
                }
                $wp_user[pass] = substr(str_shuffle('abcefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'), 0, 12);
 
                $sql = " select mb_id from $g4[member_table] where mb_id='$wp_user[id]' ";
                $row = sql_fetch($sql);
                if($row[mb_id]!=$wp_user[id])
                {
                    $sql = " insert into $g4[member_table]
                                    set mb_id = '$wp_user[id]',
                                        mb_password = password('$wp_user[pass]'),
                                        mb_name = '$wp_user[nick]',
                                        mb_nick = '$wp_user[nick]',
                                        mb_email = '$wp_user[email]',
                                        mb_homepage = '$wp_user[url]',
                                        mb_datetime = '$g4[time_ymdhis]',
                                        mb_ip = '$_SERVER[REMOTE_ADDR]',
                                        mb_level = '$config[cf_register_level]' ";
                    sql_query($sql);
                }else{
                    $sql = " update $g4[member_table]
                                    set mb_nick = '$wp_user[nick]',
                                        mb_email = '$wp_user[email]',
                                        mb_homepage = '$wp_user[url]'
                                    where mb_id = '$wp_user[id]' ";
                    sql_query($sql);
                }
                unset($row);
 
                $mb = get_member($wp_user[id]);
 
 
                // 회원아이디 세션 생성
                set_session('ss_mb_id', $mb[mb_id]);
                // FLASH XSS 공격에 대응하기 위하여 회원의 고유키를 생성해 놓는다. 관리자에서 검사함 - 110106
                set_session('ss_mb_key', md5($mb[mb_datetime] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']));
 
                // 페이지를 재실행
                echo "<script type='text/javascript'> window.location.reload(); </script>";
                exit;
            }
        }else{
            echo 'Connection failed';
            exit;
        }
 
    }
}
?>
    • 답변 감사! 합니다.

      답변이 올라와 있다고 전진님이 알려주셔서 지금 봤습니다.

      저는 주말에만 코딩을 조금씩 하는 관계로 다음 주말에 적용해 보도록 하겠습니다.

      감사! 합니다.
    • 12-06-26
번호 제목 글쓴이 조회 날짜
3485 https://theme.kilho.net 샘플사이트가 깨지네요? 2 1,402 05-02
3484 dns를 종료한 후에도 실행된것과 동일한 상태가 유지됩니다. 5 4,260 04-28
3483 시크릿dns 삭제후... 11 5,157 04-27
3482 한번 사용한뒤 다시 실행해제하고 다시 껏다켜봐도 폰허브에 들어가집니다 2 8 04-27
3481 2024년 4월 21일경 부터 일부 사이트 접속이 안됩니다 4 7,479 04-24
3480 시크릿DNS 사용안함, 제거하여도 일부 사이트 접속이 안됩니다. 1 7,888 04-23
3479 사이트 접속이 안됩니다 4 7 04-22
3478 부스트핑 질문있습니다. 1 6,073 04-21
3477 데스크톱 시계 소프트웨어 개발 부탁드립니다. 1 6,910 04-19
3476 폰허브 로그인은 안되나요? ㅠㅠㅠ 1 10,499 04-14
3475 dc와 배틀넷앱 실행시 아무것도 안뜨는문제 2 10,067 04-12
3474 시크릿 dns를 사용해도 접속할 수 없는 페이지가 있습니다. 2 9,913 04-11
3473 ip가 바뀌어 이미지 창고에 올렸던 사진을 삭제할수가 없습니다ㅠㅠ 2 2 04-07
3472 시크릿DNS 업데이트 시 설정 초기화 1 3 04-06
3471 클리너 사용 후 시작메뉴(+검색) 먹통 2 17,988 03-28
3470 칼무리 팝업창 3 6 03-25
3469 부트스트랩5 테마 사용자인데, 사이드바 문의입니다. 1 16,368 03-24
3468 칼무리 꿀뷰에서 전체화면으로 캡쳐가 안되네요 1 18,403 03-20
3467 갤러리에서 유튜브 2중으로 출력되는 문제에 대한 문의입니다. 1 5 03-17
3466 k클리너, 예외설정, 도움요청 3 17,068 03-16
3465 고생하십니다 3.3.1 업데이트 이후에 생긴 문제입니다. 3 11,449 03-16
3464 도네이션 건의사항 1 11,202 03-13
3463 윈도우 클리너 개선의견 1 11,346 03-11
3462 시크릿 DNS 설치 후 인터넷이 끊겨서 안되네요. 3 10,224 03-11
3461 부트스트랩 테마 차단해제 기능의 문의입니다. 1 9,268 03-08
3460 칼무리로 캡쳐한 이미지 파일이 바탕화면에 안 생겨서 F5를 눌러야 생겨요 1 4 03-05
3459 . 3 9 02-27
3458 메모리클리너 좀더 세세하게는 어려울까요? 1 14,532 02-25
3457 칼무리 기능 문의 1 7 02-24
3456 이미지창고 2 3 02-22
3455 댓글 블라인드 기능에 대한 문의입니다 1 14,523 02-21