php소스 한번 봐주십시오 고수님 (__) 정보
php소스 한번 봐주십시오 고수님 (__)첨부파일
본문
레벨업 기간이 지나면 다운(원래로복귀) 시키는 것을 수정하고 있습니다.
예를들어 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]'으로 돌려주는 것 같은데 실행이 되질 않고 있습니다. ㅠㅠ
예를들어 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'] 아 같이 일반 문자열로 파싱하는게 맞습니다.
| 구분자로 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"]))) {
이렇게 하시는것도 좋을듯 하구요.
하시죠?
님 코드 해석하면
set mb_level= 3 되는데요?
그리고 mb_9 = '', 는 하지 마세요.
나중에 문제 생기면 그거 보고 복구 시켜야 하니깐요.
if $mb['mb_level'] == 3 && ($mb["mb_10"] && (strtotime($mb["mb_10"]) < $g4["server_time"]))) {
이렇게 하시는것도 좋을듯 하구요.
두분다 감사드립니다. 모두 도움이 되었습니다. 얼마되지 않는 포인트지만 그래도 먼저 답글을 써주신 sjsjin님께 답변채택드립니다. 근데 두분 모두 채택하는 기능은 없나요? ㅎㅎ

님이 스킨만드세요.
ㅡㅡ; 우째 기분 좋은 댓글은 아니네요...