config 여분필드의 값이 자꾸 삭제되는 이유
본문
기본 여분필드인 cf_1 에 값을 입력해놓으면 처음엔 잘 표시되다가 어느 정도 시간이 지나면
값이 삭제되어 있습니다. 관리자 접속후 실수로 지워졌나 했는데 자동으로 삭제가 되고 있습니다.
cf_1 에 KOR 이라는 값을 넣고 한글버전으로 표시, ENG일 경우 영어버전으로 표시 로 사용중인데요.
소스는 아래와 같습니다.
<li><span class="sb">LAN
<form name="fwrite" id="fwrite" action = "/langchange.php" method = "post" onsubmit="return fwrite_submit(this);">
<?php if($config['cf_1'] == "KOR") {?>
<input type = "hidden" name = "cf_1" value ="ENG">
<?}else{?>
<input type = "hidden" name = "cf_1" value ="KOR">
<?}?>
<input type = "submit" value = "<?echo $config['cf_1'];?>" id="langs">
</form>
</span></li>
langchange.php
<?
include_once('./_common.php');
$_POST['cf_1'];
$cf_1 = $_POST['cf_1'];
$sql = " update g5_config set cf_1 = '$cf_1'";
$row = sql_fetch($sql);
?>
<script>
location.href='/';
</script>
이 상태로 사이트에서 한/영이 잘 작동하고 관리자에 들어가보면 cf_1 항목에 값이 들어가 있는 상태인데,
몇시간 혹은 하루 정도 지나고 나면 값이 사라져있는데 어떤 이유가 있을 수 있을까요?
답변 4
$_post[cf_1] 값이 없는경우 막아보시는게 좋을 것 같습니다 .
if(isset($_POST['cf_1']) && $_POST['cf_1'] != ""){
$cf_1 = $_POST['cf_1'];
$sql = " update g5_config set cf_1 = '$cf_1'";
sql_query($sql);
}
langchange.php에 아무조건이 없으니 봇이 화일에 접근하면 update가 실행되어버리겠네요
3행에 추가
if(!$is_admin) die;
어디선가 update 되는게 없는지 체크해 보셔야 할듯 합니다.
insert, update, delete문에는 sql_query()를 사용합니다.
* langchange.php
$row = sql_fetch($sql);
→
sql_query($sql);