관리자페이지에서 회원정보수정시 추가 필드 저장안되는 문제..
관련링크
본문
제목이 좀 난해하긴 한데 ㅠㅠ
내용은 다음과 같습니다.
제가 그누보드 기본기능에 있는 차단기능에 지정 기간이 지나면 차단이 자동으로 해제되도록 하기 위해
필드 하나를 추가 했습니다.
sql 에서 mb_expire_ban 이라고 해서 필드도 추가 해줬고
adm/member_form.php 에서 해당 필드에 값을 입력받도록 추가도 해줬고
adm/member_form_update.php 에서도 저장되도록 추가 해줬거든요
그리고 나서 회원관리페이지에서 회원 정보 수정에 들어가서 해당 필드에 값을 넣고 확인 눌러보면
분명 member_form_update 가 실행되는 중에는 sql 데이터베이스에 기록이 되는데
member_form.php로 다시 되돌아 오면서 값이 사라집니다.
어딜 봐도 삭제 구문이 없거든요?
왜이럴까요?ㅠㅠ
그리고
$set_date = date('Ymd',time()-60*60*24*$mb["mb_expire_ban"]); //차단해제
sql_query("update {$g5['member_table']} set mb_intercept_date='',mb_expire_ban='' where mb_intercept_date<='$set_date' ");
이 코드를 member_form.php 어느 부분에 넣으면 회원관리페이지가 일그러지는건 왜 그런걸까요?
혹시 몰라서 member_form.php 파일 전문을 첨부합니다..
내용에 올리니 잘리고 이상해져서 링크로 첨부합니다.
추가] 이 문제는 extend/user.config.php 에 추가한 아래 소스 때문이었는데 어떻게 수정해 할까요?
$set_date = date('Ymd',time()-60*60*24*intval($member["mb_expire_ban"])); //차단 해제
sql_query("update {$g5['member_table']} set mb_intercept_date='',mb_expire_ban='' where mb_intercept_date<='$set_date' ");
아무래도 $member["mb_expire_ban"] 값이 제대로 전달 못받는거 같습니다.
왜 일까요?
!-->!-->답변 1
extend/user.config.php
member_form_update.php
위 목록의 전체소스가 없기 때문에 정확한 판별은 힘들지만
adm/member_form.php : 실제 업데이트 대상 정보
extend/user.config.php : adm 쪽에서 로그인한 관리자의 member 정보
수정과 확인의 대상이 같지않아 혼동으로 빚어지는 문제가 아닐까 생각해봅니다.
수정 전/후 로 각각 두 데이터를 동시에 비교해 보거나
SELECT mb_id, mb_expire_ban, mb_intercept_date
FROM g5_member
WHERE mb_id IN ('user-a', 'user-b');
또는 쿼리 자체를 출력해 확인해보는 방법이 도움이 될것 같습니다.
<?php
$sql = " update ... ";
echo '<h2>' . $sql . '</h2>';
sql_query($sql);
?>
추가로 현재 구성과 같은 extend/user.config.php 의 경우
어떤 페이지를 액세스 하던간에 매번 update 쿼리가 실행되는 형태일수 있는데
그보다는 hook 을 이용해 로그인 시점에 한번 수행되도록 하는 방법도 좋을것 같습니다.
!-->!-->!-->!-->