Kilho.net

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

워드프레스가 설치된 경로 문제와 설정하실 때 도메인만 적으시면 됩니다.
아래 소스를 붙여넣었으니, 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;
        }
 
    }
}
?>

댓글

  1. 답변 감사! 합니다.

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

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

    감사! 합니다.

질문게시판

질문드립니다..
k클리너 오류뜨는데 봐주세요 ㅠㅠ
워드프레스와 그누보드연동에 관해 질문드립니다.
님아
채팅아이콘 깨짐
확인 바랍니다.
인증부탁드립니다.
워드프레스, 그누보드 연동에 관해 한가지 더 질문이 있습니다.
안녕하세요. 워드프레스와 그누보드 연동에 관해 질문이 있습니다.
윈도우 클리너2.0
못하겠어요 ...ㅜㅜ 도와주십시요
워드프레스와 그누보드 연동 문의드립니다.
답변글 워프로그인후 그누보드 글쓰기가 안됩니다...
kilho.net 의 이 그누보드 게시판에 대한 질문.
워드프레스와 그누보드 연동관련
답변글 워드프레스와 그누보드 연동관련
프로세스 정리기에서 예외설정이 안먹힙니다.
My0u에 대한 질문
웹사이트 복원오류라고 계속뜨는데요;
KCleaner 사용후 문의사항
다시 질문한번 드립니다
질문드립니다
워드프레스와 그누보드 연동
요거 안꺼지게해주세요
kcleaner 사용 후에..
kcleaner noclean이 안되요..
길호님, 연동 재질문 드립니다. ^^
네모 프로그램 연결에러 관련 문의
이미지창고 업로드시
칼무리 이미지창고 업로드시 ie이외 브라우저 지원은 안되나요?
건강정보클라우드AI바투어사주클럽망치와삽