간단한 상품명 중복검사 하기 정보
간단한 상품명 중복검사 하기본문
/adm/shop_admin/itemform.php 파일을 열고
<tr>
<th scope="row"><label for="it_name">상품명</label></th>
<td colspan="2">
<?php echo help("HTML 입력이 불가합니다."); ?>
<input type="text" name="it_name" value="<?php echo get_text(cut_str($it['it_name'], 250, "")); ?>" id="it_name" required class="frm_input required" size="95">
</td>
</tr>
이 부분을 찾아
<tr>
<th scope="row"><label for="it_name">상품명</label></th>
<td colspan="2">
<?php echo help("HTML 입력이 불가합니다."); ?>
<input type="text" name="it_name" value="<?php echo get_text(cut_str($it['it_name'], 250, "")); ?>" id="it_name" required class="frm_input required" size="95">
<button type="button" onclick="adp_check_duplicate_name();" class="btn_02 btn">중복검사</button>
</td>
</tr>
<script>
function adp_check_duplicate_name(){
var itemName = $('#it_name').val().trim();
if(!itemName) {
alert('상품명을 입력해주세요.');
$('#it_name').focus();
return false;
}
$.ajax({
type: "POST",
url: "<?php echo G5_ADMIN_URL; ?>/shop_admin/itemform_namechk_ajax.php",
data: {
"it_name": itemName
},
success: function(msg){
if(msg == "ok"){
alert('중복되지 않은 상품명 입니다.');
return false;
} else if(msg == "duplicate") {
alert('이미 등록된 상품명입니다.');
return false;
}
},
error: function(){
alert('오류가 발생했습니다 - 에러코드 : itemform_namechk_ajax');
}
});
}
</script>
이렇게 변경.
그리고
/adm/shop_admin/itemform_namechk_ajax.php
파일을 신규로 만든뒤 아래 코드 넣기.
<?php
include_once('./_common.php');
if($member['mb_level'] != 10) {
echo 'auth';
exit;
}
$it_name = sql_escape_string(trim($_POST['it_name']));
if(empty($it_name)) {
echo 'empty';
exit;
}
$sql = "SELECT COUNT(*) as cnt FROM {$g5['g5_shop_item_table']} WHERE it_name = '$it_name'";
$row = sql_fetch($sql);
if($row['cnt'] > 0){
echo 'duplicate';
} else {
echo 'ok';
}
?>

단순 채크 이므로 강제성이 없으며 채크를 무시하고 등록이 가능합니다.
!-->!-->!-->
추천
1
1
댓글 1개

쿼리문을 sql 공격 방지용으로 권장합니다.
$stmt = $mysqli->prepare("SELECT COUNT(*) as cnt FROM {$g5['g5_shop_item_table']} WHERE it_name = ?");
$stmt->bind_param("s", $it_name);
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();