2005년 9월 27일 화요일

신규가입 및 탈퇴한 회원이 있으면 관리자에게 쪽지로 알려주기

수정해야 할 파일은 제로보드 디렉토리의 member_join_ok.php 파일입니다.
중간에서 약간 아래 부분을 보시면 (95번째 줄 주변)
mysql_query("update $group_table set member_num=member_num+1 where no='$group_data[no]'");
이와 같은 줄을 찾으실 수 있습니다. 정보의 타당성 검사를 하고 이상이 없어서 zetyx_member_table에 데이터를 입력하는 부분이죠.
이 다음 라인에 다음을 추가합니다.

// 회원 가입 사실을 관리자에게 알림
$masters=mysql_query("select * from $member_table where is_admin=1||(is_admin=2&&group_no=$group_data[no])",$connect);
// where 부분이 복잡한 것 같습니다만, is_admin=1인 사람은 최고 관리자이고 2인 사람은 그룹 관리자죠. 최고관리자와 해당 그룹의 그룹관리자에 해당하는 사람을 추출합니다.
$masters_num=mysql_affected_rows(); // 쪽지를 보내는 대상의 수입니다. 아래 for문의 루프를 한정하죠.
for($i=0;$i<$masters_num;$i++){
mysql_data_seek($masters,$i);
$master_info=mysql_fetch_array($masters);
$memo=$name."(".$user_id.") 님께서 ".$group_data[name]."그룹에 새로 가입했습니다.";
mysql_query("insert into $get_memo_table (member_no,member_from,subject,memo,readed,reg_date) values ($master_info[no],1,'회원가입 안내','$memo',1,'$reg_date')") or error(mysql_error());
// 이 위부분이 메모를 보내는 부분입니다. 보내는 사람은 회원번호가 1인 사람, 즉 게시판을 처음 설치한 최고관리자입니다. 누가 보내는 걸로 하는 것이 좋을까 하다가 이 사람이 보내는 것이 가장 무난할 것 같아 그렇게 했습니다.
mysql_query("update $member_table set new_memo=1 where no=$master_info[no]") or error(mysql_error()); // 새로운 쪽지가 왔다는 사실을 알려 주죠.
}

<추가했습니다> 회원 탈퇴할 때 관리자에게 쪽지 보내기방식은 위와 똑같습니다.
수정해야 할 파일은 member_out.php파일입니다. 적당한 곳에다 다음을 삽입합니다. 저는 49번째 줄
// 그룹테이블에서 회원수 -1
@mysql_query("update $group_table set member_num=member_num-1") or error(mysql_error());
// 회원 탈퇴 사실을 관리자에게 알림. 이 아래를 삽입합니다.
$masters=mysql_query("select * from $member_table where is_admin=1||(is_admin=2&&group_no=$group[no])",$connect); // $group[no] 변수가 가입때와 다르죠..
$masters_num=mysql_affected_rows();
$reg_date=time(); // 보낸 시각 나타내는 변수를 만듭니다.
$memo=$member[name]."(".$member[user_id].") 님께서 ".$group[name]."그룹에서 탈퇴했습니다."; // 역시 변수가 조금 바뀌었습니다.
for($i=0;$i<$masters_num;$i++){
mysql_data_seek($masters,$i);
$master_info=mysql_fetch_array($masters);
mysql_query("insert into $get_memo_table (member_no,member_from,subject,memo,readed,reg_date) values ($master_info[no],1,'회원탈퇴 안내','$memo',1,'$reg_date')") or error(mysql_error());
mysql_query("update $member_table set new_memo=1 where no=$master_info[no]") or error(mysql_error());
}
뭐 별로 어려운 건 하나도 없습니다. php와 mysql 문법을 조금이라도 아시는 분은 쉽게 이해하실 수 있으시겠죠?
문법을 모르시는 분이라고 하더라도 붙여 넣기만 하면 되니까 문제는 없을 꺼라고 생각합니다.

댓글 없음:

댓글 쓰기