Kilho.net

워드프레스 그누보드 연동, 로그아웃 문제.

로그인까지는 성공 했습니다.
하지만, 워드프레스에서 로그아웃을 하자,
그누보드는 그대로 로그인이 살아 있었습니다.
 
무엇이 잘못 되었을까요?
--------------------------------------------------------------------------------
워드프레스
<? /********************************************************
* WordPress SSO(Single Site On) Helper Object
* by Oh Kilho (http://www.kilho.net)
*******************************************************/

include 'wp-load.php';

// $wp_cookie = $_COOKIE['wordpress_logged_in_'.md5(get_site_option('siteurl'))];
// $wp_cookie = $_COOKIE['wordpress_logged_in_'.md5('')];
$wp_user = $_POST['user'];
$wp_pass = $_POST['pass'];

if($wp_user&&$wp_pass)
{
if(user_pass_ok($wp_user, $wp_pass))
$user = get_user_by('login', $wp_user);

}else{
if($wp_cookie)
{

wp_set_current_user(wp_validate_auth_cookie($wp_cookie, 'logged_in'));
$user = wp_get_current_user();
}

}

if($user)
{
echo '<id>'.$user->user_login.'</id>';
echo '<nick>'.$user->display_name.'</nick>';
echo '<email>'.$user->user_email.'</email>';
echo '<url>'.$user->user_url.'</url>';
}
?>
 
그누보드 ------------------------------------------------------------------------
<?
 /*
 그누보드 확장 모듈 : 워드프레스 SSO 처리
 */$wp_server_domain = 'alex.webzero.kr';//'워드프레스 설치된 도메인'; // xxx.com
 $wp_server_addr = 'alex.webzero.kr';//'110.45.139.52';//'워드프레스 설치된 서버 IP'; // xxx.xxx.xxx.xxx
 $wp_server_path = '/whome/alex/alex.webzero.kr/wp2/';//'워드프레스 설치된 경로'; // 루트일 땐 '/' 로 작성
 
 $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. 최고관리자로 로그인 하였을 경우, 그누보드 자체 어드민 접근 등을 위해 로그아웃 시키지 않겠금 되어 있습니다.
    13 라인을 참고해주세요.

    그외 일반 회원인 경우 워드프레스 로그아웃 시 그누보드 접근할 경우 로그아웃 됩니다.

질문게시판

길호님 답변 감사드립니다..그런대요..개인이미지 사진 삭제..
noclean.txt 질문
길호님 홈페이지에 대하여
길호님 답변 감사한대요..그런대..이미지 삭제가 안되거든요..ㅡㅡ;;
개인사진 삭제
여기 비회원 이었을때 자신이 잘못 올린 사진 어떻게 삭제하는지 방법을 알…
칼무리 몇가지 문제점..
noclean.txt 오류 추가글 입니다.
컴맹이 인터넷 지속적인 끊김에 대해 질문좀 드립니다...
Kcleaner에서 noclean.txt 오류
안녕하세요. WP-그누보드 연동 질문드립니다.
윈도우8에서 k클리너 실행시 오류
워드프레스와 그누보드 연동 도와주세요~
워드프레스 그누보드 연동, 로그아웃 문제.
noclean.txt 이거요
개인사진삭제
워드프레스 그누보드에서 iframe 오토리사이즈방법??
아이피 추적
안녕 하세요 개인정보에 해당한글을 삭제 요구합니다
케이클리너 사용시 인터넷창이 꺼져요
길호넷 게시판에 이미지 파일을 올리수가 없네요?
저 글도 열심히 달고 답변도 달고 하는데
최신글 보이기 문의
iframe 그누보드 연동
v3 실시간검사 안꺼지게 하는 프로세스 목록
my0u 관련 문의
칼무리를 맥용 버전으로 만드실 생각은 없으신가요..???
kcleaner 오류..?
답변글 kcleaner 오류..?
이싸이트의 워드프레스테마...
주점닷컴의료건강사주클럽주방연구소잡학지식