php소스 한번 봐주십시오 고수님 (__) > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

php소스 한번 봐주십시오 고수님 (__) 정보

php소스 한번 봐주십시오 고수님 (__)

첨부파일

1234.bmp (323.0K) 7회 다운로드 2010-08-05 15:43:38

본문

레벨업 기간이 지나면 다운(원래로복귀) 시키는 것을 수정하고 있습니다.

예를들어 2레벨인데 3레벨로 업하는 것을 신청하여 기간(관리자가 1달로 지정)과 소모포인트(관리자가 정한포인트)까지는 DB에 저장하였습니다.

혹시나 하여 mb_9 하고 mb_10은 첨부파일처럼 db에 저장되어 있는 것도 확인하였습니다.(위 첨부파일 참조)

아래의 구문이 실행될 경우 어떤 결과가 나오는지 알 수 있을까요?

오류는 없지만 값도 전달되었는지 모르고 반응이 없으니 어디가 문제인지 알 수가 없네요 ㅠㅠ



if ($mb["mb_10"] && (strtotime($mb["mb_10"]) < $g4["server_time"])) {
    $mem = explode("|", $mb["mb_9"]);
    sql_query(" UPDATE $g4[member_table] SET mb_level = '$mem[1]', mb_9 = '', mb_10 = '' WHERE mb_id = '$mb[mb_id]' ");
}

제 생각에는 mb_level = '$mem[1]' 이게 회원의 레벨을 '$mem[1]'으로 돌려주는 것 같은데 실행이 되질 않고 있습니다. ㅠㅠ

댓글 전체

mb_9 에 들어가있는 값에서
| 구분자로 2번째($mem[0] 이 첫번째이므로 $mem[1] 은 2번째) 에 레벨값(1-10) 숫자가 들어가 있는지 확인 하십시오.

그리고 코드상 mb_10 에 시간값이 들어가있는데 코드를 보니 년-월-일 시:분:초(이 부분은 없어도되고) 로 저장된걸로 보입니다. 시간값도 제대로 들어가 있는지 확인 하십시오.

간단히 말하자면,
mb_10 컬럼의 시간값이 현재 그누보드에 설정된 현재시간보다 작으면 레벨을 되돌린다는 코드입니다.
그러므로 mb_9, mb_10, $g4['server_time'] 값이 제대로 맞아야 합니다.

참고로 회원배열컬럼명은 파싱용함수가 아니므로 $mb["mb_9"] 처럼 쓰는게 아니라 $mb['mb_9'] 아 같이 일반 문자열로 파싱하는게 맞습니다.
set mb_level= 2

하시죠?

님 코드 해석하면
 
set mb_level= 3 되는데요?


그리고 mb_9 = '', 는 하지 마세요.

나중에 문제 생기면 그거 보고 복구 시켜야 하니깐요.

if $mb['mb_level'] == 3 && ($mb["mb_10"] && (strtotime($mb["mb_10"]) < $g4["server_time"]))) {


이렇게 하시는것도 좋을듯 하구요.
두분다 감사드립니다. 모두 도움이 되었습니다. 얼마되지 않는 포인트지만 그래도 먼저 답글을 써주신 sjsjin님께 답변채택드립니다. 근데 두분 모두 채택하는 기능은 없나요? ㅎㅎ
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT