RadarURL

Views 5295 Votes 0 Comment 0
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print Attachment
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print Attachment
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!    주의하실  점    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
아래 방법은 member_table을 건드리지 않고 음력 생일자를 표시하기 위해서
제로보드의 원본에 있는 open_birth를 음력표시라고 가정하고 작성된 것입니다.
만일... 음력 생일자를 구분하는 기준자로 luday 등을 사용하시고자 하는 분은
member_table의 내용 등 아래 내용 이외에 몇 가지 추가적인 작업이 필요합니다.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


며칠 전에 글을 올렸다가 잘못된 부분이 있어서 삭제를 하고 다시 올립니다^^

전 PHP에 대해서는 잘 모르는데... 음력생일자의 생일을 처리하기 위해서 여러 글을 찾아보다가 redsuns님과 네로님 등이 여기 게시판에 생일자와 관련하여 올려주신 글을 보고서 해법을 찾았기에 여러분들과 공유합니다.

PHP나 Mysql 등에 대해서 잘 모르기 때문에 서버에 얼마나 무리를 주는 방식인지는 고려되지 않았다는 점을 이해해 주세요^^

그리고.... 아래 방식에서의 단점은 월별 생일자 전체를 날짜별로 소트하지 못하고, 음력생일자끼리의 소트와 양력생일자끼리의 소트로 나뉘어 있다는 점입니다. (PHP를 조금 더 알면 이걸 해결할 수 있을 것도 같은데^^)

암튼... 제가 사용한 방법은 우선 회원들의 음력생일을 받기 위해서 member_join.php와 member_modify.php 파일에 있는 "공개" 옵션을 "음력" 옵션으로 전환해서 사용했습니다. (이 과정에서 원본에서는 선택적으로 사용할 수 있었던 공개여부를 전부 공개되도록 했습니다. 아래 내용을 보시면 압니다^^)

먼저 member_join.php 파일을 열어서 아래와 같은 부분을 찾으세요.

<input type=checkbox value=1 checked name=open_birth> 공개

위와 같은 부분을 전 아래와 같이 수정했습니다. (음력 생일을 받기 위해서...)

<input type=hidden value=0 name=open_birth><input type=checkbox value=1 name=open_birth>음력


참.... 위에 보시면 name=open_birth 라는 부분이 있는데... 원래는 생일의 공개여부를 체크하는 내용이었지만, 그냥 그대로 사용하면서 생일의 음력여부를 체크하는 것으로 사용하고자 했습니다. (원본을 최대한 건드리지 않기 위해서^^) 따라서 제가 쓰고 있는 글에서 open_birth라는 것은 생일의 공개여부가 아니라 음력을 나타낸다는 점을 꼭 기억하셔야 합니다.



그리고... member_modify.php 파일을 열어서 아래와 같은 부분을 찾으세요.

<? if($group_data[use_birth]) { ?>
  <tr height=28 align=right>
     <td style=font-family:Tahoma;font-size:8pt;><b>Birthday </td>
     <td align=left> <input type=text name=birth_1 size=4 maxlength=4 value="<?=date("Y",$member[birth])?>" style=border-color:#d8b3b3 class=input> 년
                     <input type=text name=birth_2 size=2 maxlength=2 value="<?=date("m",$member[birth])?>" style=border-color:#d8b3b3 class=input> 월
                     <input type=text name=birth_3 size=2 maxlength=2 value="<?=date("d",$member[birth])?>" style=border-color:#d8b3b3 class=input> 일
          <input type=checkbox value=1 name=open_birth <?=$check[$member[open_birth]]?>> 공개
  </tr>        <tr>
          <td colspan="5" bgcolor="#EBD9D9" align="center"><img src="images/t.gif" width="10" height="1"></td>
        </tr>
<? } ?>

위와 같은 부분을 찾으셨으면... <? if($group_data[use_birth]) { ?>와  <? } ?>를 삭제합니다. (모두 공개되도록...) 그리고....

<input type=checkbox value=1 name=open_birth <?=$check[$member[open_birth]]?>> 공개

위와 같은 부분을 아래와 같이 수정합니다.

<input type=hidden value=0 name=open_birth><input type=checkbox value=1 name=open_birth <?=$check[$member[open_birth]]?>>음력

이렇게 해서 회원들이 가입하거나 회원정보를 수정할 때 음력생일을 처리할 수 있도록 했습니다.


이제 아래와 같은 내용으로 birth.php 파일을 만들고 첨부된 파일을 풀어서 얻은 luncal.inc 두 개의 파일을 계정에 올린 후 사용하시면 됩니다.

제가 사용한 음력/양력 생일자를 위한 월별 생일자 표시 방법은.... 아래 하나하나 설명을 하도록 하겠습니다^^ (혹시 제 설명 중 틀리는 부분이 있으면 고수님들께서 지적해 주세요. 위에서 말했지만... 제가 원래 PHP는 모르는 사람이거든요^^)


<?
$디비호스트 = "  ";
$디비아이디 = "  ";
$디비비밀번호 = "  ";
$디비네임 = "  ";
$제로보드경로 = ".";
$conn=mysql_connect($디비호스트,$디비아이디,$디비비밀번호);
mysql_select_db($디비네임, $conn);
// 위의 내용은 개인환경에 맞게 입력하시고...


include ("luncal.inc");
// 첨부된 압축파일의 php 파일을 인클루드합니다.

$now_month = date("n");
$now_day   = date("n월 d일");

$now_year  = date("Y");
$now_month = date("n");
$now_day   = date("d");

$sol2lun_day   = sol2lun($now_year,$now_month,$now_day);  // 오늘 날짜가 음력으로 며칠인지 계산합니다

$sol2lun_day   = date("$sol2lun_day[1].$sol2lun_day[2]"); // 위에서 계산된 오늘의 음력 날짜...
$sol2lun_month = date("$sol2lun_day[1]"); // 위에서 오늘 날짜를 음력으로 전환했을 때, 오늘은 음력 몇 월인지...
$sol2lun_month_1 = date("$sol2lun_day[1]")-1; // 위의 결과보다 음력으로 한 달 전...
$sol2lun_month_2 = date("$sol2lun_day[1]")+1; // 위의 결과보다 음력으로 한 달 후...


$result=mysql_query("select user_id, name, no, birth, open_birth from zetyx_member_table where (from_unixtime(birth,'%c')='$now_month' and open_birth='0') or (from_unixtime(birth,'%c')='$sol2lun_month' and open_birth='1') or (from_unixtime(birth,'%c')='$sol2lun_month_1' and open_birth='1') or (from_unixtime(birth,'%c')='$sol2lun_month_2' and open_birth='1') order by from_unixtime(birth,'%c.%d') asc", $conn);

// 이 부분이 가장 중요한 부분 중 하나입니다. 음력 생일자를 추출해 오는 과정이니까요.

// from_unixtime(birth,'%c')='$now_month' and open_birth='0'
// 우선 양력생일을 사용하는 회원 중 이달에 생일이 있는 회원의 정보를 가져옵니다.

// 이번달 양력 5월은 음력 3월 19일부터 4월 20일까지가 포함된다는 사실을 먼저 기억하시구요...

// from_unixtime(birth,'%c')='$sol2lun_month_1' and open_birth='1'
// 음력생일자의 생월이 오늘날짜를 음력으로 전환해서 얻은 음력월보다 한 달 이전인 회원의 정보를 가져옵니다.

// from_unixtime(birth,'%c')='$sol2lun_month' and open_birth='1'
// 음력생일자의 생월이 오늘날짜를 음력으로 전환해서 얻은 음력월과 같은 회원의 정보를 가져옵니다.

// from_unixtime(birth,'%c')='$sol2lun_month_2' and open_birth='1'
// 음력생일자의 생월이 오늘날짜를 음력으로 전환해서 얻은 음력월보다 한 달 이후인 회원의 정보를 가져옵니다.

// 위와 같이 세 달의 정보를 가져오는 것은.... 오늘의 음력날짜가 음력 3월일 경우(그러니까 양력으로 5월 초순) $sol2lun_month와 함께 음력 4월인 $sol2lun_month_2의 정보도 필요하며... 오늘의 날짜가 음력 4월일 경우(그러니까 양력으로 5월 하순) $sol2lun_month와 함께 음력 3월을 규정하는 $sol2lun_month_1의 정보도 필요하기 때문입니다.

// 천천히 생각해 보시면 아시겠지만... 위와 같이 해야 별다른 문제가 없을 것 같습니다^^

$total=mysql_num_rows($result);

if ($total)        {
for ($i=1; $i<=$total; $i++)         {
$frev=mysql_fetch_array($result);
$data[user_id]=$frev["user_id"];
$data[name]=$frev["name"];
$data[no]=$frev["no"];
$data[birth]=date("n월 d일", $frev[birth]);
$data[birth_]=date("n.d", $frev[birth]);  // 개인적으로 보다 나은 생일자 표시를 위해서 같은 데이터($frev[birth])의 표현방식을 $data[birth]와 $data[birth_]에서 두 가지로 정의했습니다.
$data[open_birth]=$frev["open_birth"];

$lun2sol_year  = date("Y");
$lun2sol_month = date("n", $frev[birth]);
$lun2sol_day   = date("d", $frev[birth]);

$lun2sol_day   = lun2sol($lun2sol_year,$lun2sol_month,$lun2sol_day);  // 위의 내용은 위에서 추출된 회원의 생일을 음력으로 가정하고 양력날짜로 전환한 것입니다.

$lun2sol_month = date("$lun2sol_day[1]"); // 음력생일을 양력으로 전환한 값의 양력월
$lun2sol_day   = date("$lun2sol_day[1]월 $lun2sol_day[2]일"); // 음력생일을 양력으로 전환한 값의 날짜

// 아래는 표현방식...

// 우선.... 양력생일자($data[open_birth]==0) 전체를 아이디와 이름 양력생일로 보여주고...

// 음력 생일자($data[open_birth]==1) 중에서 양력으로 전환된 생일값의 월이 이번달과 같은 회원( $lun2sol_month==$now_month)은 아이디와 이름, 그리고 양력생일과 음력생일을 보여주는 것입니다.

// 그리고 나머지... 그러니까 음력 생일자 중에서 이번달에 생일이 아닌 회원은 그냥 공란으로 표시합니다.

if ( $data[open_birth]==0 )
echo " <a href=.javascriptvoid(window.open('./view_info.php?member_no=$data[no]','view_info','width=400,height=510,toolbar=no,scrollbars=yes'))>$data[user_id] $data[name] - $data[birth]</a></p> ";
elseif ( $data[open_birth]==1 && $lun2sol_month==$now_month )
echo " <a href=.javascriptvoid(window.open('./view_info.php?member_no=$data[no]','view_info','width=400,height=510,toolbar=no,scrollbars=yes'))>$data[user_id] $data[name] - $lun2sol_day(음$data[birth_])</a></p> ";
else
echo " ";
}
echo " ";
}

mysql_close($conn);
?>


제가 사용한 방법은 이렇구요....

조금은 무식한 방식으로 음력생일자를 처리하는 것일지도 모르겠지만.... 거의 대부분의 경우를 커버할 수 있을 것 같다는 생각은 듭니다^^ (서버에 얼마나 무리를 주는지는 모르겠지만... 저희 동호회는 회원이 그다지 많지 않거든요^^)

위의 내용을 살펴보시고... 혹시 서버에 주는 무리를 줄일 수 있는 좋은 방법이나, 기타 의견이 있으신 분은 말씀해 주세요~~~ 저도 더 좋은 방향으로 수정하고 싶으니까요^^

그럼.... 많은 분들이 성공하시길......

출처 : http://www.nzeo.com/bbs/zboard.php?id=cgi_tip&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=음력&select_arrange=headnum&desc=asc&no=1694
?

공부 게시판

공부에 도움되는 글을 올려주세요.

List of Articles
No. Category Subject Author Date Views
Notice [공지] 공부 게시판 입니다. 처누 2003.08.18 928083
2473 연애 폭소클럽 제36회 - 즉석미팅 1 (김제동) file JaeSoo 2003.08.18 18981
2472 연애 폭소클럽 제37회 - 즉석미팅 2 (김제동) file JaeSoo 2003.08.18 17808
2471 연애 폭소클럽 제38회 - 방학특집 연애특강 1 (김제동) 1 file JaeSoo 2003.08.18 16361
2470 연애 폭소클럽 제39회 - 방학특집 연애특강 2 (김제동) file JaeSoo 2003.08.18 17828
2469 연애 폭소클럽 제40회 - 방학특집 연애특강 3 (김제동) file JaeSoo 2003.08.18 16842
2468 웹 프로그래밍 이미지 특정 부분에 링크 만들기 처누 2003.08.24 15624
2467 웹 프로그래밍 게시판에 자신의 FTP 자료 올리기 3 처누 2003.08.25 13135
2466 동식물 고양이 클리닉 - 고양이 기르기 file JaeSoo 2003.10.10 13693
2465 동식물 고양이 클리닉 - 고양이 품종 file JaeSoo 2003.10.10 13427
2464 동식물 고양이 클리닉 - 2개월에서 4개월령 고양이 관리 file JaeSoo 2003.10.11 13428
2463 동식물 고양이 클리닉 - 4개월에서 9개월령 고양이 관리 file JaeSoo 2003.10.11 13132
2462 동식물 고양이 클리닉 - 다자란 고양이 file JaeSoo 2003.10.13 13922
2461 동식물 고양이 클리닉 - 나이든 고양이 file JaeSoo 2003.10.13 13679
2460 동식물 고양이 클리닉 - 고양이의 영양 file JaeSoo 2003.10.13 13429
2459 동식물 고양이 먹이와 주의사항 file JaeSoo 2003.10.13 13902
2458 동식물 아기 고양이의 식사 file JaeSoo 2003.10.13 11821
2457 동식물 고양이 사료 급여량 file JaeSoo 2003.10.13 12880
2456 기타 편지봉투 쓰는 법 file JaeSoo 2003.10.21 16993
2455 웹 프로그래밍 제로보드 로그인 실패시 이유를 메세지로 알려주기 처누 2003.11.04 8458
2454 웹 프로그래밍 최근 게시물 출력시 링크게시물에 스타일시트 적용하기 처누 2003.11.06 7927
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 124 Next
/ 124


즐겨찾기 (가족)

JAESOO's HOMEPAGE


YOUNGAE's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너