한국어 Translate to English (by Google) 日本語に翻訳します (by excite.co.jp)       작성자: Kyuseo의 게임 프로그래밍 이야기 :: http://www.soonsin.com | 트위터 @kyuseo

개요..

 

쇼핑몰 또는 게임사이트와 같은 회원제 홈페이지에서 제로보드(ZeroBoard) 게시판을 설치할 경우, 로그인 된 사용자가 글을 쓸 경우 상호 연동이 되지 않아 불편한 상황이 발생됩니다.

 

그것을 해결할 수 있는 회원제 홈페이지와 제로보드와 자체 회원의 연동되는 방법을 설명합니다.

 

참고 : http://blog.naver.com/inidu2/100017877126

 

 

1. 제로보드와 자체 회원의 연동을 위한 테이블을 추가합니다.

CREATE TABLE `zb_with_user` (

        `no` int(11) NOT NULL auto_increment,

        `userid` varchar(32) NOT NULL,

        PRIMARY KEY    (`no`,`userid`)

    ) ENGINE=MyISAM DEFAULT CHARSET=euckr

 

 

2. 회원이 로그인 하는 시점에서 정보를 세션에 추가합니다.

<?

    include "_head.php";

 

    // ...

    // 로그인 성공 되었음 (아이디:$userid);

    // ...

 

    // 사용자의 no 를 구하거나 생성한다.

    $query = "select * from zb_with_user where userid = '$userid'";

    $result = mysql_query( $query );

    $row = mysql_fetch_array( $result );

 

    if( $row == NULL )

    {

    $query = "insert into zb_with_user( no, userid ) values( default, '$userid' )";

    $result = mysql_query( $query );

    }

 

    if( $row != NULL )

    {

    // 사용자 정보를 복사한다.

    $member_info['no']     = $row[0];

    $member_info['level']     = 5;

    $member_info['password']    = $userid;

    $member_info['name']     = $userid;

    $member_info['email']     = $userid;

 

    // 4.0x 용 세션 처리

    $zb_logged_no     = $member['no'];

    $zb_logged_time     = time();

    $zb_logged_ip     = $REMOTE_ADDR;

    $zb_last_connect_check = '0';

 

    // 제로보드 세션 생성

    session_register("zb_logged_no");

    session_register("zb_logged_time");

    session_register("zb_logged_ip");

    session_register("zb_last_connect_check");

    session_register("member_info");

    }

?>

 

 

 

3. lib.php의 member_info() 함수를 다음과 같이 수정합니다.

function member_info() {

 

    global $HTTP_SESSION_VARS, $member_table, $REMOTE_ADDR, $member, $connect;

 

    if(defined("_member_info_included")&&$member[no]) return $member;

    define("_member_info_included", true);

 

    // 로그인시 사용한 세션 정보 사용

$member = $_SESSION['member_info'];

    if($member[no]) return $member;

 

    if($HTTP_SESSION_VARS["zb_logged_no"])

    {

    $member=mysql_fetch_array(mysql_query("select * from $member_table where no ='".$HTTP_SESSION_VARS["zb_logged_no"]."'"));

    if(!$member[no]) {

    unset($member);

    $member[level] = 10;

    }

    } else $member[level] = 10;

 

    return $member;

}

 

 

 

4. 로그아웃시 세션을 제거합니다.

<?

    include "_head.php";

 

    session_destroy();

?>

 

 

5. 회원만 글 쓰기가 가능할 경우게시판 쓰기 권한을 5레벨로 수정합니다.

 

 

6.구현된 게시판의 모습

 




qrcode
이 글의 QR 코드입니다.


이 저작물은 비영리, 출처:Kyuseo 프로그래밍 이야기 :: http://www.soonsin.com 표시하면 스크랩 하실 수 있습니다.

별도로 출처 표시가 되지 않은 저작물은 Kyuseo에게 저작권이 있습니다.   ★──━━ 행복한 하루 되세요 ━━──★

BLOG main image
93년부터 프로그래밍을 독학한 게임 프로그래머 kyuseo의 프로그래밍 정보와 게임 개발 강좌를 주로 다룹니다. by kyuseo

카테고리

분류 전체보기 (623)
누리게임즈 (4)
Kyuseo 소개, 잡담 (161)
만든 게임 및 프로그램 (98)
-----------★----------- (0)
개발자 팁 (65)
스마트폰 게임 개발 (47)
C++ 개발 (119)
------------------------♣ (0)
컴퓨터 활용 팁 (98)
게임, 서적, 문화 소감 (31)
------------------------♥ (0)
전체 : 2,739,660
오늘 : 78 어제 : 133