WordPress、GNUボードリンケージ

WordPress、GNUボードリンケージ

現在、KilhonetのWordPressとGnuboardにリンクされています。

サイトをさらに安定させた後、私はソースを放しようとしました、そして、私はGnuboardユーザーのリクエストによって作られたものをアップロードしました。 (http://sir.co.kr/bbs/board.php?bo_table = cm_free&wr_id=741180)

将来的には、WordPressから生成されたページはhead.phpとhead.phpのtail.phpから直接ロードされ、現金処理とコンテンツ領域は上下に分割され、出力されていると思います。

  • WordPressメンバーDBに基づいて、Gnuboardにリンクされており、BBSの投稿を書くときにWordPressのログインに従ってアクションを実行します。
  • gnuboardをgnu.kilho.netとして使用しています。 したがって、WordPressでサブドメインとCookieを共有できるはずです。
    (Kilhonetは「ルートクッキー」と呼ばれるプラグインを使用しました)
  • WordPressとGnuboardは各サーバーによって操作されます。 WordPressを使用してサーバーIPを変更し、WordPressでドメイン情報を変更します。
  • 以下のソースを、WordPressがインストールされているサーバーで「WP-SSO.PHP」として保存します。
<?
	/********************************************************
	 * 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_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.'';
		echo '<nick>'.$user->display_name.'</nick>';
		echo '<email>'.$user->user_email.'</email>';
		echo '<url>'.$user->user_url.'</url>';
	}
?>

  • Nubordがインストールされているサーバーの「/Extend/」ディレクトリの「WP-SSO.PHP」として以下のソースを保存します。
<?
 /*
  Gnuboard拡張モジュール:WordPress SSO処理
  */
 $ wp_server_domain = 'wordpressインストールドメイン';  // xxx.com
 $ wp_server_addr = 'wordpressインストールされたサーバーIP';  // xxx.xxx.xxx.xxx
 $ wp_server_path = 'wordpressインストールされたパス';  //ルートの場合は「/」で書きます

 $ wp_cookie_name = 'wordpress_logged_in _'。md5( 'http://'。$ wp_server_domain);
 $ wp_cookie_value = $ _cookie [$ wp_cookie_name];

if ($_SESSION['ss_mb_id']))
 {
 //あなたが総管理者である場合、Gnuboard自体を見る権限を提供する必要があります。
 if(!$ wp_cookie_value && $ is_admin!= 'super')
 {
 // Lee Ho -Kyungの提案コード
 session_unset();  //すべてのセッション変数を破壊しません
 session_destroy();  //セッションをリリースします

 //ページを実行します
 echo '<script type = "text/javascript"> windocy.location.reload();  </script> ';
 出口;
 } それ以外 {
 エコー「接続が失敗しました」;
 出口;
 }
 }
 ?>
guest
12 Comments
Inline Feedbacks
View all comments
김수명
김수명

제가 찾고 있는 내용이네요?? 답변 꼭 부탁드립니다.

제가 운영하고 있는 워드프레스 K-BOARD 게시판에

학교서버에 등록되어 있는 계정을 가지고 있는 사람만

글을 쓰게 하고 싶습니다. 도움 부탁드립니다.

답변 꼭 부탁드립니다.

맑은빛
맑은빛

감사합니다 🙂

cshop
cshop

오길호님께 질문을 드릴려고 로그인을 하려니 로그인이 되지 않습니다. 게시판에 글을 쓸수가 없어서 죄송하지만 이곳에 남깁니다.

제가 5월달에 등록해서 받았던 비번은

사용자 이름: cshop
비밀번호: x6rnn9DBwHCi

이렇게 되는데 로그인도 되지 않고 새 비번도 제 이메일로 발송되지 않네요…. 이메일 주소를 바꿔서 등록을 해도 새로 등록도 되지 않습니다.

저는 몇년전부터 개인 홈피를 WP 로 쓰고 있었어서 오길호님께서 5월달에 연동 소스를 공개해 주셔서 매우 반가웠는데, 사용은 하지 않았었습니다. 아직 쓸일이 없었어서….

오늘 설치해보니 작동이 되긴 되는데, 아후.. 제가 한국어가 서툴러서…

http://hackya.com/dtd/extend/wp-sso.php 여기가 그누보드

출력되는 것도 없고, 에러메세지도 뜨지 않습니다.

http://hackya.com/blog/wp-sso.php 여기가 WP 입니다.

testtesteonsalt@gmail.com (test 가 ID)

여기서는 로그인 된 value (test) 가 두번 출력됩니다. ㅠㅠ

저는 css 하고 .js/jQuery 밖에 할줄 아는게 없어서요…. php 는 아주 아주 기초적인 것 밖에 모릅니다. 그래서 이걸 어떻게 해결해야 할지도 모르겠네요….

저는 예제와 달리 그냥 같은 웹사이트에서 블로그와 DTD (그누보드) 를 돌리고 있어서.. 이런 현상이 일어나는 것 같은데 (제 생각에는), 도움을 부탁드려도 될까요? 꾸벅….

php 는 아주 기본적인 상식밖에 없는 관계로 제가 해결할 수 있는 부분이 아니라서… ㅠㅠ

cshop
cshop
Reply to  오길호

네. 보내주신 로그인 비번을 받아서 질문을 다시 올려 놓았습니다.

감사합니다.

MWP
MWP

안녕하세요. SIR에서 링크를 타고 왔습니다.
워드프레스와 그누 연동 하는데, 조금 어렵네요..ㅠ
제가 실력이 미천해서 어느 부분 설정이 잘못 되었는지 좀 봐주시면 정말 감사하겠습니다.

1. gnuboard 폴더 내에 adm,bbs…죽 업로드하고, 서브도메인을 괄호와 같이 생성했습니다. (mydomain.com/gnuboard = gnuboard.mydomain.com)

2. 워드프레스와 그누보드가 설치된 서버ip는 똑같습니다. DB는 별도로 신규 생성하지 않고, 기존의 DB에 함께 설치되어 있습니다.
– 다시말하면, 그누보드 세팅시에 DB명을 기존 DB명과 동일하게 설치했습니다.

3. 워드프레스에서 [root Cookie] 플러그인을 설치하고, 설정을 Allow Cookies to go across All Subdomains에 체크를 했습니다.

4. 워드프레스가 설치된 FTP루트(wp-admin,wp-content… 폴더 및 파일들이 있는 루트)에 윗부분에 정리하신 wp-sso.php를 생성하여 업로드하였습니다.

5. 그누보드가 설치된 /gnuboard/extend 폴더에 아래부분에 정리하신 wp-sso.php를 생성하여 업로드하였습니다.

– 수정 설정한 부분
$wp_server_domain = ‘mydomain.com’; //워드프레스가 설치된 도메인
$wp_server_addr = ‘mydomain.com의 ip’; // 워드프레스가 설치된 서버의 IP

위와 같이 했을 때, 현상이 이렇습니다.
워드프레스에서 로그인 후에, mydomain.com/gnuboard 또는 gnuboard.mydomain.com 으로 접속했을 때,
로그인이 되어 있지 않는데, 관련팁을 좀 주시면 감사하겠습니다.

그누테스트
그누테스트
Reply to  MWP

질문게시판을 보고 해결하였습니다.

오길호님 연동프로그램 정말 감사하네요. ㅎㅎ

cshop
cshop

정말 감사합니다. ^^

전진
전진

감사합니다. ^^