2026, 새로운 도약을 시작합니다.

간단한 상품명 중복검사 하기

/adm/shop_admin/itemform.php 파일을 열고

[code]

        <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>

[/code]

이 부분을 찾아

[code]

        <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>

[/code]

이렇게 변경.

그리고

/adm/shop_admin/itemform_namechk_ajax.php

파일을 신규로 만든뒤 아래 코드 넣기.

[code]

<?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';
}
?>

[/code]

3698860916_1759639785.8868.png

3698860916_1759639864.1216.png

3698860916_1759639881.4117.png

단순 채크 이므로 강제성이 없으며 채크를 무시하고 등록이 가능합니다.

|

댓글 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();

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

영카트5 팁자료실

번호 제목 글쓴이 날짜 조회
441 3주 전 조회 239
440 1개월 전 조회 188
439 1개월 전 조회 290
438 1개월 전 조회 458
437 2개월 전 조회 657
436 2개월 전 조회 269
435 2개월 전 조회 381
434 3개월 전 조회 536
433 3개월 전 조회 368
432 3개월 전 조회 338
431 3개월 전 조회 442
430 3개월 전 조회 406
429 3개월 전 조회 359
428 3개월 전 조회 367
427 4개월 전 조회 509
426 4개월 전 조회 535
425 4개월 전 조회 353
424 4개월 전 조회 628
423 4개월 전 조회 599
422 4개월 전 조회 520
421 5개월 전 조회 571
420 5개월 전 조회 489
419 5개월 전 조회 570
418 5개월 전 조회 513
417 5개월 전 조회 622
416 5개월 전 조회 428
415 6개월 전 조회 564
414 6개월 전 조회 566
413 6개월 전 조회 661
412 7개월 전 조회 551
🐛 버그신고