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

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

+
제목 글쓴이 날짜 조회
1주 전 조회 64
1주 전 조회 153
1주 전 조회 77
3주 전 조회 260
3주 전 조회 375
2개월 전 조회 708
2개월 전 조회 661
2개월 전 조회 719
3개월 전 조회 902
4개월 전 조회 1,097
4개월 전 조회 682
4개월 전 조회 850
4개월 전 조회 992
4개월 전 조회 808
4개월 전 조회 858
4개월 전 조회 899
5개월 전 조회 1,004
5개월 전 조회 824
5개월 전 조회 807
5개월 전 조회 983
5개월 전 조회 973
5개월 전 조회 846
6개월 전 조회 1,131
6개월 전 조회 1,173
6개월 전 조회 962
6개월 전 조회 1,022
6개월 전 조회 979
7개월 전 조회 1,096
7개월 전 조회 1,035
7개월 전 조회 1,075