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> ';
出口;
} それ以外 {
エコー「接続が失敗しました」;
出口;
}
}
?>
Comments (12)
제가 찾고 있는 내용이네요?? 답변 꼭 부탁드립니다.
제가 운영하고 있는 워드프레스 K-BOARD 게시판에
학교서버에 등록되어 있는 계정을 가지고 있는 사람만
글을 쓰게 하고 싶습니다. 도움 부탁드립니다.
답변 꼭 부탁드립니다.
학교 서버의 계정을 관리할 수 없다면 불가능한 방법입니다. 현재 적은 내용은 워드프레스를 기본 베이스로 하여 타 솔루션과 연동하는 구조라 말씀하신 내용과는 다른것 같습니다 ^^
감사합니다 🙂
오길호님께 질문을 드릴려고 로그인을 하려니 로그인이 되지 않습니다. 게시판에 글을 쓸수가 없어서 죄송하지만 이곳에 남깁니다.
제가 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 는 아주 기본적인 상식밖에 없는 관계로 제가 해결할 수 있는 부분이 아니라서… ㅠㅠ
길호넷을 서비스 받는 웹호스팅에서 메일 발송이 차단 된 듯하여 해당 업체에 문의를 해두었습니다.
hackya.com 에서 로긴을 하고 확인을 해보려고 헀는데.
회원가입이 되질 않아서 확인을 못하고 있습니다.
비밀번호를 메일로 드렸으니, 좀 더 자세하게 질문게시판에 글 남겨주세요
네. 보내주신 로그인 비번을 받아서 질문을 다시 올려 놓았습니다.
감사합니다.
현재 메일발송 서버를 Google SMTP 를 이용하도록 하였습니다.
사용중인 웹호스팅과 별개로 메일을 발송할 수 있도록 하였으니, 비밀번호 찾기를 하시면 정상적으로 됩니다.
(모르고 있었는데, 감사합니다 ^^)
안녕하세요. 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 으로 접속했을 때,
로그인이 되어 있지 않는데, 관련팁을 좀 주시면 감사하겠습니다.
mydomain.com/wp-sso.php 로 접속하였을때 404 에러가 뜨지 않는지 확인부탁드립니다.
그외 말씀 하신대로 하셨다면, 정상적으로 작동이 되야 될텐데 이상하네요.
(참, 추가 질문은 “질문게시판” 에 올려주세요)
질문게시판을 보고 해결하였습니다.
오길호님 연동프로그램 정말 감사하네요. ㅎㅎ
정말 감사합니다. ^^
감사합니다. ^^