RadarURL

조회 수 5295 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!    주의하실  점    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
아래 방법은 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
?

공부 게시판

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

  1. [공지] 공부 게시판 입니다.

    Date2003.08.18 By처누 Views928100
    read more
  2. http를 https로 리다이렉트하는 여러가지 방법

    Date2025.09.10 Category웹서버,WAS ByJaeSoo Views0
    Read More
  3. SSL인증서 없이 HTTPS에서 HTTP로 되돌리기

    Date2025.09.10 Category웹서버,WAS ByJaeSoo Views2
    Read More
  4. [SSL] win-acme, Let's encrypt로 무료 SSL 인증서 발급

    Date2025.09.10 Category웹서버,WAS ByJaeSoo Views0
    Read More
  5. [SSL] Windows 10에서 Let's Encrypt로 SSL 인증서 무료 발급받기

    Date2025.09.10 Category웹서버,WAS ByJaeSoo Views0
    Read More
  6. 무료로 https SSL/TLS 인증서를 발급받을 수 있는 인증 기관

    Date2025.09.10 Category웹서버,WAS ByJaeSoo Views0
    Read More
  7. 아파치 서버에 https SSL 인증서 적용하는 방법 (apache httpd)

    Date2025.09.10 Category웹서버,WAS ByJaeSoo Views0
    Read More
  8. 아파치2(Apache2) SSL HTTPS 적용하기

    Date2025.09.10 Category웹서버,WAS ByJaeSoo Views0
    Read More
  9. 아파치 웹서버에 멀티 도메인에 대한 80, 443 포트 설정하는 방법

    Date2025.09.10 Category웹서버,WAS ByJaeSoo Views0
    Read More
  10. Google Photo 대신 Immich를 써보자

    Date2025.08.07 Category소프트웨어 ByJaeSoo Views126
    Read More
  11. 남자 혹은 여자 진국 팁

    Date2025.07.24 Category연애 ByJaeSoo Views116
    Read More
  12. MBTI검사 16가지 유형 “간단 명료”하게 정리!

    Date2025.07.01 Category기타 ByJaeSoo Views132
    Read More
  13. [사진관리] PhotoPrism vs LibrePhoto 비교 소감

    Date2025.05.19 Category소프트웨어 ByJaeSoo Views14
    Read More
  14. MDF실, TPS실, EPS실 이게 뭘까?

    Date2025.04.15 Category네트워크 ByJaeSoo Views33
    Read More
  15. 알아두면 좋은 직장인 용어 정리

    Date2025.04.15 Category업무 ByJaeSoo Views37
    Read More
  16. 감기·독감·코로나19의 차이점, 신촌연세병원과 함께 알아봅시다.

    Date2025.01.08 Category건강 ByJaeSoo Views29
    Read More
  17. 집주인이 전세 보증금을 돌려주지 않을 때

    Date2024.11.29 Category생활 ByJaeSoo Views26
    Read More
  18. 자전거 타이어 종류 및 추천 2편 (승차감 타이어, 국토종주!)

    Date2024.10.15 Category자동차 ByJaeSoo Views53
    Read More
  19. 오도바이 센타 사장들은 어떤 브랜드를 싫어하고 좋아할까? [출처] 오도바이 센타 사장들은 어떤 브랜드를 싫어하고 좋아할까?|작성자 바이크신

    Date2024.10.15 Category자동차 ByJaeSoo Views78
    Read More
  20. 윈도우 자동 로그온 설정이 보이지 않을 때 조치사항

    Date2024.08.16 Category윈도우즈 ByJaeSoo Views203
    Read More
  21. 갤럭시S22 시리즈에서 SKT LTE 무제한 핫스팟 쓰는 방법! (SKT LTE 요금제만 해당!)

    Date2024.08.12 Category모바일 ByJaeSoo Views234
    Read More
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


숭실대 인공지능학과


숭실대 통신연구실


베너