4.30 오류문제 정보
4.30 오류문제본문
소스를 쭉 살펴보니까 다음의 문제로 인해 비로그인 사용자가 문제가 되는 것 같습니다.
이번에 새 버젼을 내면서 관리자님이 cf_use_norobot을 항상 1값으로 정하여 비로그인시 항상 로봇체크를 하도록 구상을 하면서 adm/config_form.php 에서 "자동등록방지 사용"란을 아예 제외시켰습니다. 문제는 여기서 발생합니다. 만일 사용자가 포인트나 아니면 다른 이유로 config_form.php를 통하여 config값을 변동하게되면 다음 config_form_update.php로 그값이 넘어가서 config값들이 저장이 됩니다.
문제는 config_form.php에서 "자동등록방지 사용" 부분을 주석처리하였기 때문에 config_form_update.php에 전송되는 cf_use_norobot 값은 항상 null값이 됩니다. 값 자체가 없으니까요. 그래서 이 값이 config에 저장이 됩니다.
그렇게 되면 config 상에 cf_use_norobot값은 0값이 됩니다. 왜냐면 integer 형이니까요. 즉 한번이라도 config_form.php를 통하여 config 값을 변동하게 되면 자동으로 cf_use_norobot 값은 0으로 변경이 됩니다. 그래서 글쓰기시 자동등록방지 코드가 생성이 되지 않게 됩니다. (자세한 것은 bbs/norobot.inc.php코드를 참조하면 됩니다.) 그렇게 되면 비로그인 사용자의 경우 "정상적인 접근이 아닌 것 같습니다"란 에러를 보이게 됩니다. 자동등록방지 코드를 write_update.php 에서 요구하는데 넘어오지 않기 때문이죠.
해결책은 config_form.php에서 <form>안에 <input type="hidden" value="1" name="cf_use_norobot" /> 를 추가하면 간단하게 됩니다.
** 글을 수정하면서 보니 cheditor에 큰 버그가 있네요. 태그를 넣고 소스보기를 하면 < 나 > 등으로 교체되어야 마땅한데 그렇지 못하네요. **
이번에 새 버젼을 내면서 관리자님이 cf_use_norobot을 항상 1값으로 정하여 비로그인시 항상 로봇체크를 하도록 구상을 하면서 adm/config_form.php 에서 "자동등록방지 사용"란을 아예 제외시켰습니다. 문제는 여기서 발생합니다. 만일 사용자가 포인트나 아니면 다른 이유로 config_form.php를 통하여 config값을 변동하게되면 다음 config_form_update.php로 그값이 넘어가서 config값들이 저장이 됩니다.
문제는 config_form.php에서 "자동등록방지 사용" 부분을 주석처리하였기 때문에 config_form_update.php에 전송되는 cf_use_norobot 값은 항상 null값이 됩니다. 값 자체가 없으니까요. 그래서 이 값이 config에 저장이 됩니다.
그렇게 되면 config 상에 cf_use_norobot값은 0값이 됩니다. 왜냐면 integer 형이니까요. 즉 한번이라도 config_form.php를 통하여 config 값을 변동하게 되면 자동으로 cf_use_norobot 값은 0으로 변경이 됩니다. 그래서 글쓰기시 자동등록방지 코드가 생성이 되지 않게 됩니다. (자세한 것은 bbs/norobot.inc.php코드를 참조하면 됩니다.) 그렇게 되면 비로그인 사용자의 경우 "정상적인 접근이 아닌 것 같습니다"란 에러를 보이게 됩니다. 자동등록방지 코드를 write_update.php 에서 요구하는데 넘어오지 않기 때문이죠.
해결책은 config_form.php에서 <form>안에 <input type="hidden" value="1" name="cf_use_norobot" /> 를 추가하면 간단하게 됩니다.
** 글을 수정하면서 보니 cheditor에 큰 버그가 있네요. 태그를 넣고 소스보기를 하면 < 나 > 등으로 교체되어야 마땅한데 그렇지 못하네요. **
추천
6
6
댓글 6개

웁스 잘 모르겠지만. 일단 추천;

웁스 잘 모르겠지만. 일단 추천; (2)

일단 문제가 많은것 같아.. 설치는 안하고 있지만..
자잘한 문제들이 있는가 보네요..
letsgolee 님은 항상 예리하신거 같에요^^
자잘한 문제들이 있는가 보네요..
letsgolee 님은 항상 예리하신거 같에요^^
이거 외에는 큰 문제 없어요. 이전 소스와 일일이 비교해 보았습니다.

그래서 주석처리 하였던거였군요.
어렴풋이 이해하고 있었는데 letsgolee님께서 콕 짚어주시니 속이 시원하네요.
요 팁좀 퍼갈께요.
감사합니다.^^
아, 참 그리고 마지막부분에 언급하신 버그가 cheditor 에서 글쓰고 수정할때 이전내용이 변경 안되는 부분과 관계가 있나요?
어렴풋이 이해하고 있었는데 letsgolee님께서 콕 짚어주시니 속이 시원하네요.
요 팁좀 퍼갈께요.
감사합니다.^^
아, 참 그리고 마지막부분에 언급하신 버그가 cheditor 에서 글쓰고 수정할때 이전내용이 변경 안되는 부분과 관계가 있나요?

adm/config_form.php 내용중에서
<td>복사, 이동시 로그</td>
<td colspan=3><input type='checkbox' name='cf_use_copy_log' value='1' <?=$config[cf_use_copy_log]?'checked':'';?>> 남김
<?=help("게시물 아래에 누구로 부터 복사, 이동됨 표시")?></td>
<!-- <td>자동등록방지 사용</td>
<td><input type='checkbox' name='cf_use_norobot' value='1' <?=$config[cf_use_norobot]?'checked':'';?>> 사용
<?=help("자동 회원가입과 글쓰기를 방지")?></td> -->
를 아래와 같이 변경하세요....
<td>복사, 이동시 로그</td>
<td><input type='checkbox' name='cf_use_copy_log' value='1' <?=$config[cf_use_copy_log]?'checked':'';?>> 남김
<?=help("게시물 아래에 누구로 부터 복사, 이동됨 표시")?></td>
<td>자동등록방지 사용</td>
<td><input type='checkbox' name='cf_use_norobot' value='1' <?=$config[cf_use_norobot]?'checked':'';?>> 사용
<?=help("자동 회원가입과 글쓰기를 방지")?></td>
<td>복사, 이동시 로그</td>
<td colspan=3><input type='checkbox' name='cf_use_copy_log' value='1' <?=$config[cf_use_copy_log]?'checked':'';?>> 남김
<?=help("게시물 아래에 누구로 부터 복사, 이동됨 표시")?></td>
<!-- <td>자동등록방지 사용</td>
<td><input type='checkbox' name='cf_use_norobot' value='1' <?=$config[cf_use_norobot]?'checked':'';?>> 사용
<?=help("자동 회원가입과 글쓰기를 방지")?></td> -->
를 아래와 같이 변경하세요....
<td>복사, 이동시 로그</td>
<td><input type='checkbox' name='cf_use_copy_log' value='1' <?=$config[cf_use_copy_log]?'checked':'';?>> 남김
<?=help("게시물 아래에 누구로 부터 복사, 이동됨 표시")?></td>
<td>자동등록방지 사용</td>
<td><input type='checkbox' name='cf_use_norobot' value='1' <?=$config[cf_use_norobot]?'checked':'';?>> 사용
<?=help("자동 회원가입과 글쓰기를 방지")?></td>