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

/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 팁자료실

+
제목 글쓴이 날짜 조회
어제 조회 31
1개월 전 조회 421
1개월 전 조회 367
2개월 전 조회 444
2개월 전 조회 613
3개월 전 조회 818
3개월 전 조회 418
3개월 전 조회 551
3개월 전 조회 707
3개월 전 조회 530
3개월 전 조회 482
4개월 전 조회 624
4개월 전 조회 673
4개월 전 조회 515
4개월 전 조회 509
4개월 전 조회 663
4개월 전 조회 674
4개월 전 조회 513
5개월 전 조회 798
5개월 전 조회 811
5개월 전 조회 649
5개월 전 조회 750
6개월 전 조회 663
6개월 전 조회 768
6개월 전 조회 697
6개월 전 조회 774
6개월 전 조회 605
6개월 전 조회 736
7개월 전 조회 727
7개월 전 조회 833
🐛 버그신고