뮤존님의 팁에서 질문드립니다. > 그누4 질문답변

그누4 질문답변

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

뮤존님의 팁에서 질문드립니다. 정보

뮤존님의 팁에서 질문드립니다.

본문

kcp 전자결제연동과 관련입니다.

http://sir.co.kr/bbs/tb.php/g4_tiptech/10323/dfdad909a8603c5aefa830dd1a59cb9a
뮤존님의 팁 결재완료 0000 값이 넘어온경우 회원정보 변경하기에서 질문드립니다.

결재성공후 결과페이지에서 새로 고침하면 아래의 과정이 진행되어 기간이 계속 늘어납니다.
윈도브라우저를 새로 고침하여도 아래를 한 번만 실행하려면 어떻게 해야할까요?

고수님의 도움을 바랍니다.

------------------------------------------------------------------------------------  

if ($res_cd == "0000")  //$res_cd == 0000, 정상처리,회원관련 db 처리를 실행한다.
            {

//유료결재시간 갱신
    //결재완료시간
  $current_time = time();
  $current_time = date("Ymd", $current_time);
  $plus_time    = 60*60*24*32 ;  //60초,60분,24시간,30일+2일  즉, 32일의 컬랜트 기간
  $update_time  = $current_time + $plus_time ;  //ex-  오늘:20070210  ==>  20070312  update
  $table_member      =  "g4_write_mypage_02";
  $mct_member        =  " mb_id  = '$member[mb_id]' ";
  // 회원등급을 5등급으로 상향조정하고, 회원기간을 결재완료시점에서 32일(수간기간 30일 +2 일) 연장시킨다
  $member_sql        =  " update from $table_mypage_02
                              set mb_level = '5',
  mb_1 = '$update_time'
                                where $mct_member ";
$member_result      =  sql_query($member_sql);

}


댓글 전체

방법은 업데이트를 하기 전에 예전 시간과 비교해서 예전 시간이 현재의 시간보다 더 적으면 업데이트를 하게 하면 될 것 같은데요... 문제가 있습니다.

위의 소스를 보면 시간 다루는 게 엉망입니다. $current_time은 스트링값으로 20090612와 같은 값을 갖습니다. 그런데 $plus_time은 32일에 해당하는 "초"값이 주어집니다. 이걸 더한 값이 $update_time으로 주어지므로 시간 계산하는 건 엉망이 됩니다. 즉 예전에 입력된 값이라도 현재의 $current_time보다는 클 경우가 많겠죠... 둘다 초로 다루어야 합니다. 그럴려면 $current_time = date("Ymd", $current_time); 이 코드를 제거하면 됩니다.

if ($res_cd == "0000")  //$res_cd == 0000, 정상처리,회원관련 db 처리를 실행한다.
{
//유료결재시간 갱신
//결재완료시간

$current_time = time(); // timestamp
$plus_time    = 60*60*24*32 ;  //60초,60분,24시간,30일+2일  즉, 32일의 time
$update_time  = $current_time + $plus_time ;  //오늘의 timestamp에 32일분의 time이 더해짐
$table_member      =  "g4_write_mypage_02";
$mct_member        =  " mb_id  = '$member[mb_id]' ";

$sql = "select mb_1 from $table_member where $mct_member ";
$ret = sql_fetch($sql);

if ($ret[mb_1] <= $current_time)
{
// 회원등급을 5등급으로 상향조정하고, 회원기간을 결재완료시점에서 32일(수간기간 30일 +2 일) 연장시킨다
$member_sql        =  " update from $table_member
set mb_level = '5',
mb_1 = '$update_time'
                                where $mct_member ";
$member_result      =  sql_query($member_sql);
}
}
만료일까지 기다려야 하는 단점이 있네요.

다른 방법이 없을까요. 변수에 특정값을 주고 업데이트하면 이 변수를 다른값 으로하여
이 변수값이 있을때에는 업데이트하지 않도록 if문으로 제어 할수있는 방법이 없을까요

실력이없어서요..
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

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