제로보드4는 공식적으로 더 이상 개발되지도 배포되지도 않습니다.
제로보드4를 사용하기 위한 팁보다 제로보드4를 안전하고 무사히 다른 툴로 이전하는 팁들을 게재해주시면 감사하겠습니다.
시간이 오래 지난 만큼 오래된 프로그램은 보안 및 사용성에 있어 문제가 많으니 이해 바랍니다.
안녕하세요~ 두번째로 올리는 팁이네요.
먼저 말씀드리지만 소스 적용이 상당히 복잡하기때문에 첨부화일로 올려뒀으니
다운받아서 제로보드 폴더에 그대로 덮어쓰시기 바랍니다,
혹시나 login_check.php, member_join_ok.php, admin/admin_view_member.php 를
자신에 입맛에 맞게 수정해서 사용하고 계신다면 보시고 그냥 찬찬히 따라하시는것도..^^;;;;;;
관리자 회원관리 페이지에서, [마지막 로그인 날짜] 가 표시되도록 먼저
적용을 해봤구요, (가입만 하고 그냥 가는 회원들)
다른 소스들 보면 마지막 로그인 날짜를 표시할수있는 팁들이 있습니다.
저는 Siche (http://eos.pe.kr) 님의 ' 회원 통합관리 ' 페이지로 [마지막 로그인 날짜] 삽입을
참고했습니다 ^^
이걸 관리자 페이지에 적용시키는게 힘들었지만 ㅠ..ㅠ
+저도 공부단계라 설명해놓고 뭐가 뭔지 잘 ..........................................................
먼저 적용 예를 보여드리겠습니다.
친숙한 관리자 페이지 테이블입니다~! 회원 아이디 오른쪽에 마지막 로그인 날짜를 이런식으로 삽입 했구요
이렇게 마지막 로그인 시간을 검색을 해서, 오랫동안 접속을 하지 않은 회원을
레벨조정을 한다던가.. 조취를 취할수 있습니다
지금부터 시작해볼까용! ----->
1. 제로보드/login_check.php 를 열어줍니다
29번째줄
// 회원로그인이 성공하였을 경우 세션을 생성하고 페이지를 이동함
if($member_data[no]) {
if($auto_login) {
makeZBSessionID($member_data[no]);
}
바로 아래에 아래의 소스를 삽입합니다
// 최근 로그인 날짜 삽입
$last_login = time();
mysql_query("update $member_table set last_login = '$last_login' where user_id='$user_id'");
2. 제로보드/member_join_ok.php 를 열어줍니다
120번째줄
mysql_query("insert into $member_table (level,group_no,user_id,password,name,email,homepage,icq,aol,msn,jumin,comment,
job,hobby,home_address,home_tel,office_address,office_tel,handphone,mailing,birth,reg_date,openinfo,open_email,
open_homepage,open_icq,open_msn,open_comment,open_job,open_hobby,open_home_address,open_home_tel,
open_office_address,open_office_tel,open_handphone,open_birth,open_picture,picture,open_aol) values ('$group_data[join_level]','$group_data[no]','$user_id',password('$password'),'$name','$email','$homepage','$icq','$aol','$msn',password('$jumin'),'$comment','$job','$hobby','$home_address','$home_tel','$office_address','$office_tel','$handphone',
'$mailing','$birth','$reg_date','$openinfo','$open_email','$open_homepage','$open_icq','$open_msn','$open_comment',
'$open_job','$open_hobby','$open_home_address','$open_home_tel','$open_office_address','$open_office_tel',
'$open_handphone','$open_birth','$open_picture','$picture_name','$open_aol')") or error("회원 데이타 입력시 에러가 발생했습니다".mysql_error());
이부분을 아래처럼 바꿔주시거나 따로 첨가해주시면 됩니다
mysql_query("insert into $member_table (level,group_no,user_id,password,name,email,homepage,icq,aol,msn,jumin,comment,
job,hobby,home_address,home_tel,office_address,office_tel,handphone,mailing,birth,reg_date,last_login,openinfo,open_email,
open_homepage,open_icq,open_msn,open_comment,open_job,open_hobby,open_home_address,open_home_tel,
open_office_address,open_office_tel,open_handphone,open_birth,open_picture,picture,open_aol) values ('$group_data[join_level]','$group_data[no]','$user_id',password('$password'),'$name','$email','$homepage','$icq','$aol','$msn',password('$jumin'),'$comment','$job','$hobby','$home_address','$home_tel','$office_address','$office_tel','$handphone'
,'$mailing','$birth','$reg_date','$reg_date','$openinfo','$open_email','$open_homepage','$open_icq','$open_msn',
'$open_comment','$open_job','$open_hobby','$open_home_address','$open_home_tel','$open_office_address',
'$open_office_tel','$open_handphone','$open_birth','$open_picture','$picture_name'+
'+
','$open_aol')")
or error("회원 데이타 입력시 에러가 발생했습니다".mysql_error());
3. 제로보드/admin/admin_view_member.php 를 열어줍니다
// 검색어에 대해서 처리
$s_que="";
$href="&keykind=$keykind&like=$like";
if($total_group_num>1) $s_que = " where group_no = '$group_no' ";
if($level_search>0) {
if($s_que) $s_que.=" and "; else $s_que=" where ";
$s_que.=" level='$level_search' ";
$href.="&level_search=$level_search";
}
if($keyword&&$keykind) {
if($s_que) $s_que.=" and "; else $s_que=" where ";
if($keykind!="jumin") {
if($like) $s_que .= " $keykind like '%".$keyword."%' ";
else $s_que .= " $keykind = '$keyword' ";
} else {
$s_que .= " $keykind = password('$keyword') ";
}
$href.="&keyword=$keyword&keykind=$keykind&like=$like";
}
부분을
// 검색어에 대해서 처리
$s_que="";
$href="&keykind=$keykind&like=$like";
if($total_group_num>1) $s_que = " where group_no = '$group_no' ";
if($level_search>0) {
if($s_que) $s_que.=" and "; else $s_que=" where ";
$s_que.=" level='$level_search' ";
$href.="&level_search=$level_search";
}
//수정부분//
if($keyword&&$keykind) {
if($s_que) $s_que.=" and "; else $s_que=" where ";
if($keykind=="jumin") {
$s_que .= " $keykind = password('$keyword')";
}
//가입날자별 검색
elseif($keykind=="last_login") {
$y=substr($keyword,0,4);
$m=substr($keyword,4,2);
$d=substr($keyword,6,2);
$key=mktime(0,0,0,$m,$d,$y);
$key2=$key+3600*24;
$s_que .= " $keykind>'$key' and $keykind<'$key2' ";
}
else {
if($like) $s_que .= " $keykind like '%".$keyword."%' ";
else $s_que .= " $keykind = '$keyword' ";
}
$href.="&keyword=$keyword&keykind=$keykind&like=$like";
}
이렇게 고쳐줍니다
4. 역시나 같은 페이지에서
180번째줄
<td style=font-family:Tahoma;font-size:8pt;font-weight:bold;>삭제</td>
아래에
<td style=font-family:Tahoma;font-size:8pt;font-weight:bold;>로그인</td>
추가
5. 또 같은 페이지에서
if($data[no]>1) echo"<a href=$PHP_SELF?exec=$exec&group_no=$group_no&exec2=del&keyword=$keyword&page=$page&no=$data[no]$href onclick=\"return confirm('삭제하시겠습니까?')\">Delete</a>"; else echo" ";
바로 아래에
<td style=font-family:Tahoma;font-size:8pt;>".date("Y-m-d",$data[login_last_time])."</td>
추가
6. 마지막으로
<option value="comment" <?if($keykind=="comment")echo "selected";?>>Comment</option>
바로 아래에
<option value="last_login" <?if($keykind=="last_login")echo "selected";?>>마지막로그인</option>
를 추가합니다.
상당히 복잡하네요 왠만하시면 첨부화일 다운받는걸 권유해드립니다 last_login.zip 다운받기!
이렇게 모두 성공하시게되면 한달~두달 정도는 묵혀놓아야 한다고 보시면됩니다.
위에 소스를 적용한 당일 날짜부터 나오거든요 -_ㅠ;
설치 후에도 아예 활동이 없었던 회원의 날짜는 1970년 1월 1일 날짜로 나옵니다
그러니 간단명료하게 말씀드리자면,
한달~두달 묵혀두었다가 1970년 1월 1일자 회원을 모두 조취-_-; 하면 된답니다.
설치한지 조금 지나셨다면 이제 하루씩 검색하셔서 조취하셔도 괜찮으세요
검색은 이런식으로 하시면됩니다
ex) 20090401
이렇게 - 붙이시지 마시고, 년도와 날짜를 정확히 적으시면 된답니다.^^;;
이렇게 복잡한걸 누가쓰냐~ 하시겠지만 혹시나 저처럼 회원관리를 유별나게 하시는 ,,,
필요하신 분들이 계실까해서..^^
제가 한번 뚜드려보니 Unknown column 'last_login' in 'field list' 이 메세지는 말그대로 필드가 없다는 말입니다..
우선 DB에 들어가서 필드 하나 추가 해주세요~(mysql 이용하심 되요~) 필드는 reg_date와 똑같이 만드세요~(생각하기 귀찮으니..ㅋ)
하지만 이렇게 해도 가입은 되나 관리자페이지에서 값이 안뜬답니다..
/admin/admin_view_member.php 에서
<td style=font-family:Tahoma;font-size:8pt;>".date("Y-m-d",$data[login_last_time])."</td>
이렇게 수정 했던 부분 중 필드명이 틀렸답니다.. login_last_time에서 last_login으로 변경하세요~^6
부디 도움 되시길~ㅋ 저도 초짜라..ㅋㅋ
admin_view_member.php 이 부분 글쓴이가 잘못 써 놓으셨네요.
<td style=font-family:Tahoma;font-size:8pt;>";
if($data[no]>1) echo"<a href=$PHP_SELF?exec=$exec&group_no=$group_no&exec2=del&keyword=$keyword&page=$page&no=$data[no]$href onclick=\"return confirm('삭제하시겠습니까?')\">Delete</a>"; else echo" ";
echo" </td>
<td style=font-family:Tahoma;font-size:8pt;>".date("Y-m-d",$data[login_last_time])."</td>
이걸 여기다가 넣어주셔야 합니다. <td> </td> 닫힌다음에 넣어주셔야죠..
