웹마스터 팁

제일 처음 해 볼 것은 디비테이블 설계와 미니홈을 아이디 별로 불러오는 작업과 함께 레이 아웃의 구성입니다



홈에서 미니홈을 불러올 때는 아래와 같이 불러옵니다

http://계정주소/mini/home.php?id=회원 아이디

----------------------------------------------------------------------------------------------------

파일의 위치에 대한  설명입니다 모든 파일은 되도록이면 mini란 폴더를 만들구 그 안에 집어 넣습니다
(다른 이름이라해도 상관 없습니다 제 기준에 의해 쓴거니 )

위치는 제로보드와 동일 선상입니다

------- 인덱스 페이지
    |____ 제로보드 (bbs,zboard)
    |____ mini
    |          |__admin
    |          |__ layer
    |          |__ skin
    |          |_____ 미니홈에 들어가는 파일들
    |
    |
    |____ 기타 파일들

위와 같이 하는 이유는 제로보드 폴더 속에 넣으면 나중에 관리하기가 편하지 않을 수 있어서 입니다

필요에 의해서 사용치 않을 떄는 폴더 자체를 날려도 되구 파일이 잘못되어도 제로보드에 영향을 주지 않기

때문입니다

-------------------------------------------------------------------------------------------------------

1. 디비에 사용자의 미니홈 정보를 담을 수 있는 테이블을 하나 설치합니다

   처음엔 제로보드 멤버 테이블에 필드 추가식으로 했지만 잘못 설치하면 회원정보에 영향을 끼칠 수 있구

   더불어 필드 추가가 많아짐으로 제로보드에 조금의 영향을 미칠 수 있기에 편한 관리를 위해 따로 생성해 줍니다

   마이 어드민에 접속한 후 테이블을 생성합니다
  
   제 마이 어드민을 기준으로 설명 드리겠습니다 (마이 어드민 버젼에 의해 차이들이 있을 수 있습니다)

   처음 화면  아래 부분에 부면 데이터 베이스 누구의 새로운 테이블을 만듭니다란 문구와 인풋 박스가 있습니다

   그곳에 mini_home_admin_table  (다른 명칭이어도 상관 없습니다) 이라구 적구 필요한 필드의 갯수를 적어

   줍니다 저 같은 경우엔 필드가 20개 정도 있습니다 일단  13개라구 적죠 그리구 나서 누르면

   다음 화면으로 넘어갑니다

   그후 아래와 같이 설정해 줍니다



db2.gif

db1.gif
   이곳에서 멤버번호나 유저 아이들 이용해서 호출하는거죠  아직 대부분 필요치 않구

   꼭 필요한 부분은 no ,user_id, name, member_no, level, skin, mini_name, mini_name_c, mini_img,

    mini_name_a, mini_comment, hompy_layout, mini_count  등입니다

    no는 미니홈을 생성하길 원하는 회원이 들어올 때 자동증가 됩니다 일종의 고유 번호죠

    user_id 는 가입폼을 이용해서 들어온 회원의 멤버 값을 이용해 그 회원의 아이디가 적힙니다
  
    name, member_no, level 위에 상황과 동일 합니다  

    
    user_id, name, member_no, level  는 미니홈에서 보이는 기본적인 회원의 정보와 함께

    미니홈을 호출할 때 쓰입니다

    skin 미니홈에 쓰이는 스킨입니다 세이 클럽이나 싸이 미니홈피 처럼 쓰이는 일반적인 스킨이

    이 곳에 들어갑니다

    mini_name  제일 상단에 위치한 제목 표시줄에 원하는 자신만의 글자가 들어갑니다

   mini_name_c 미니홈에 쓰이는 자신만의 제목에 들어가는 글이 색을 지정할 때 쓰입니다

   mini_img  보통 스킨을 이용해서 쓰지만 스킨 지원이 원할하지 않거나 혹은 레이아웃에 스킨 지원이

   되지 않는다면 링크로 바탕 배경을 넣어서 쓸수 있는 이미지 보관 필드입니다

   mini_name_a 자신만의 미니홈 제목이 들어가는 필드입니다 만약  작성을 하지 않는다면

   누구 누구의 홈이라구 표기 되는거죠

   mini_comment  미니홈에서 작성할 수 있는 자신만의 코멘트입니다 만약 미니홈에 코멘트가

   작성 되지 않는다면 그 다음으로 회원 코멘트를 불러오구 그것도 없으면 작성된 코멘트가 없습니다

   라구 뿌려지게 되겠죠
  
   hompy_layout  아직 다른 미니홈에 없는 기능입니다

   자유롭게 레이아웃을 변경할수 있겠죠 미니레이아웃에서 노멀 혹은 멕시멈 까지 자유롭게 구성할 수
  
   있습니다

  mini_count  카운터 입니다 현재로서는 간단하게 카운터 기능만 됩니다 차후에 따로 테이블을 설정해서

  카운터 부분만 만든다면 각종 이벤트를 만들 수 있겠죠


  필드의 종류와 거기에 쓰인 값들은 제로보드를 참고로 생성했습니다

  제가 만든 필드 종류와 값들은 이게 옳다라구 정확히 말씀은 못드리겠네요 ^^;  아직

  필드 종류와 값 그리구 인덱스 키 거는 법에 대해서 더 배워야 하는 입장이므로

  
대충 위와 같이 만드신다면  미니홈을 생성하길 원하는 사용자가 생성 파일을 통해서 데이터를 입력했을

때 해당 값들이 디비에 저장 되구 그 디비에 저장된 값을 이용해서 미니홈을 호출할수 있는거죠



먼저 파일의 모양새입니다
<?
디비 연결

멤버정보 구하기

데이터의 정의

해당 데이터들에 대해 stripslashes

필요한 데이터들의 정의

만약 아바타를 이용한다면 아바타에 관한 정의

카운터나 최종로그인에 대한 정의

필요한 부분에 대한 정의

에러 상황에 대한 정의

?>

<?
if($data[no]) {
?>
  <!--라이센스 인크루드 -->
<HTML>
제목

미니홈에서 쓰이는 자바 스크립트

<? include"레이아웃"; ?>


</HTML>
<?
} else Error("정보가 공개되어 있지 않습니다", "window.close");

mysql_close($connect);

?>

보통 위에 형식으로 코딩이 됩니다


여기서 <? include"레이아웃"; ?> 이부분은 직접 홈파일에 써도 되지만 여러 레이아웃을 쓰기 위해서는

따로 레이 아웃  폴더를 만들어 그곳에 여러개를 보관해  관리 페이지를 이용해서 해당 파일을 클릭하면

그 클릭한 파일의 이름이 디비에 저장 되구 그 디비에 저장된 주소값을 불러들여 연결 시키는거죠

그럼으로써 여러가지의 레이아웃을 스킨 쓰듯이 쓰실 수 있는겁니다






home.php 소스에 대한 설명 입니다 ( 소스만 적혀 있는건 다음 페이지에 있습니다)


<?


  제로보드 절대 경로

  제로보드 상대경로  

  include $_zb_path."outlogin.php";

  
// DB 연결
        if(!$connect) $connect=dbConn();

// 멤버정보 구하기
        $member=member_info();



// 미니홈에 쓰이는 각종 변수를 mini_home_admin_table에서 불러옴;;

        $data=mysql_fetch_array(mysql_query("select * from mini_home_admin_table where user_id='$id'||member_no='$member_no'"));
    




/******************************************************************************************
소스 설명 : 데이터로 불려지는 값은 미니홈테이블에서 유저아이디 필드에서 아이디 값으로 가져 온다

또는 멤버_노 필드에서 멤버 번호로 가져온다입니다

user_id='$id'||member_no='$member_no' 이 부분이
http://계정주소/mini/home.php?id=repter
http://계정주소/mini/home.php?member_no=1

과 같이 호출할 수 있는거죠
*****************************************************************************************/


        $data[no] = stripslashes($data[no]);
        $member_no = stripslashes($data[member_no]);
        $data[name] = stripslashes($data[name]);        
        $data[comment] = stripslashes($data[comment]);
        $data[user_id] = stripslashes($data[user_id]);
                $data[hompy_layout] = stripslashes($data[hompy_layout]);        

               // 다른 부분들도 위와 같이 해줍니다 ;







// 미니홈피 카운트 업

if($data[member_no] != $member[no]){
@mysql_query("update mini_home_admin_table set mini_count=mini_count+1 where user_id='$data[user_id]'") or mysql_error();}

/***********************************************************************************
소스 설명 :  만약에 $data[member_no]와 $member[no]가 서로 다른다면 대괄호 안의 상황을

나타내라  즉  데이터에 들어간 값은 미니홈 주인의 정보이니 미니홈 주인과 로그인한 멤버가

서로 틀릴때만 카운트 테이블에 카운트가 증가 되는거죠

미니홈에 들어온 회원이 내가 아닌 타 회원이거나 로그인이 안된 비회원일때  디비에 업데이트 합니다

미니홈 테이블의 미니카운트(mini_count)필드에 업데이트를 시키는데 mini_count+1 원래 있던 값에

+1을 시켜 주는거죠  만약 0 이였다면 0+1 이되니 값은 1이 되구 다음에 또 값이 들어오면 1+1 이되니

2 가되는거죠 이런식으로 증가 되는겁니다  넣어지는 값은 미니카운트 필드에 넣어지되 그 홈에 주인

에게 활당되어 져야겠죠 where user_id='$data[user_id]'  어디에 넣어지냐면 유저 아이디가 데이터

유저아이디와 같은 곳에 넣는다 즉 $data[user_id]는 그 홈 주인이니까 그 곳을 찾아 넣어지겠죠

만약 repter 란 아이디가 있구 repter1 이란 아이디가 있다면 repter란 아이디를 찾아서 넣어지겠죠


***********************************************************************************/




$data2=mysql_fetch_array(mysql_query("select * from $member_table where user_id='$id'|| no='$data[member_no]'"));


/*************************************************************************************************
소스 설명 : 멤버 테이블에서 가져와야 하는 일반적인 값들이 있습니다

  최종로그인을 설치했다면 그 값들도 가져와야하구 멤버의 이메일이라던 아니면 홈주소라던지

  회원 코멘트라던지 하는 기본적인 값들을 제로보드 회원 테이블에서 가져 와야죠

  그렇게 하지 않는다면 일일이 미니홈 테이블에 넣어줘야 하는 이중 부담이 있으니까요

  처음에 써준 데이터에 관한 정의 처럼 데이터2 값도 마찬가지입니다 다만 $member_table 즉 회원 테이블에서

  불러오는거죠


**************************************************************************************************/
//로그인 기록


        $data2[point3] = stripslashes($data2[point3]);
        $data2[point4] = stripslashes($data2[point4]);        
        if($data2[lastlogin] != "")
                $data2[lastlogin] = date("m.d A h:i:s",stripslashes($data2[lastlogin]));
        else
                $data2[lastlogin] = "기록 없음";


// $data 가 없을때, 즉 탈퇴한 회원인경우 표시
        if(!$data[member_no]) Error("개설 되지 않은 미니홈입니다 ♤♤♤", "window.close");


/************************************************************************************
소스 설명 만약 데이터 중에 멤버 값이 없다면 에러를 표시하구 창을 닫아버려라 입니다

$data[member_no] 데이터 값들은 미니홈 테이블에서 불러오는거니 미니홈 테이블에 멤버번호가 없다면 에러를

나타내겠죠

*************************************************************************************/
?>
<?
if($data[no]) {
// 만약 데이터가 있다면 아래의 내용을 나타냅니다 즉 미니홈에 회원 정보가 들어가 있는지 판단하는거죠 ;
?><!-- <? include "../bbs/license.txt";?> -->
<HTML>
<HEAD>
<meta http-equiv=Content-Type content=text/html; charset=EUC-KR>
<link rel=StyleSheet HREF=style.css type=text/css title=style>
<TITLE><? if($data[mini_name]) { ?><?=$data[mini_name]?> <? } else { ?><?=$data[name]?>님의 미니홈피<? } ?></TITLE>

<!-- 타이틀에 들어가는 문구입니다 만약 $data[mini_name] 미니홈테이블에 미니네임이 있으면 미니네임을

없으면 data[name]회원 이름이겠죠    "누구님의 미니홈피" 라구 표기되는거죠

<?if($변수){?>변수를 이용한 값<?}else{?>없을때 표기되는 글<?}?>
혹은  <?if($변수){echo"변수를 이용한 값";}else{echo"없을때 표기되는 글";}?> 이런식으로 쓰시면 됩니다

-->



필요에 의한 각종 스크립트






<? include"layer/$data[hompy_layout]"; ?>

<!--

소스 설명 :  위에 인크루드는 레이아웃이라는 폴더 속에 있는 실질적인 레이아웃을 불러들여 인크루드 시키는거죠

layer폴더 속엔
layout.php,   layout.php2,    layout.php3,   layout.php4 와 같이 이미 만들어진 파일들이 들어가 있어야겠죠

그리구 어드민 페이지에서 보여지는 부분을 선택해 주면 디비에 입력을 시켜 주는거죠  예를 들면 layout.php2

를 선택 했다면 디비 테이블의 hompy_layout 부분에  layout.php2 가 입력 되는거죠

데이터는 미니홈 어드민 테이블이니 미니홈 어드민 테이블의 홈피레이아웃에들어간 값을 불러다가 놓으면

당연히 layout.php2 가 써지겠죠 layer폴더 안에 있으니 주소는 layer/$data[hompy_layout] 이구요





-->



</body>
</html>



<?
} else Error("정보가 공개되어 있지 않습니다", "window.close");

mysql_close($connect);

?>


위와 같이 기본적인 사항만 넣어서 만드실수 있습니다

시간이 되는데로  예제 파일을 만들 수 있음 올려보겠습니다

제목 글쓴이 날짜
나만의 미니홈 만들기 ㅡ 메인 기초 설계 .home.php [12] file 예뜨락 2004.11.17
OpenID 적용 [6] file 맑은하늘75 2007.08.20
1.3.0 버전에서 모듈설치 방법과 시작 모듈 설정하기 [21] file 스타호스트 2009.11.11
"제로보드 XE 기본 개념을 이해하자" 문서화 [3] file amd짱좋아 2009.11.13
파일질라에서 html 파일 수정법 불패의초인 2010.11.11
IIS5,6 용 Rewrite Module [1] file MuzEye 2009.04.10
DNIP.NET 으로 유저.내도메인.dnip.net 세팅방법점.. [1] 키스더데이트 2009.01.09
아파치 웹 서버 설정 == httpd.conf [2] 김병화999 2009.01.02
httpd.conf 의 환경설정파일 안의 내용 [2] 김병화999 2009.01.02
Ubuntu Server - SSH, APM, DNS, FTP 설치하기 [2] file ruo91 2008.08.09
Ubuntu 웹서버 구축 2. APM 환경 구축 [4] [1] earthian 2008.05.23
Ubuntu 웹서버 구축 1. 우분투 설치 하기 [4] file earthian 2008.05.23
내컴퓨터를 FTP 서버로 만들어보자 [6] 서기 2008.03.30
MySQL 암호화함수를 큐브리드 JSP로 사용하기 [3] file 야라바 2008.01.24
lighttpd + php fastcgi + xcache 설치하기 [7] zero 2007.12.24
한방에 제로보드 설치를 위한 서버 환경 준비하기-RWAPC Server 1.0 [6] 야라바 2007.11.28
SVN Commit 정보 출력 설정 (CIA Script) DroArc 2007.11.25
phpCubAdmin으로 큐브리드 DBMS관리하기 [2] 야라바 2007.10.22
리눅스 APM/AP 환경에 큐브리드 추가 설치하기 [2] 야라바 2007.10.22
Chroot 로 루트디렉토리 접근 금지,, [2] Nefree 2007.08.18