포인트 기능 복사

포인트 기능 복사

QA

포인트 기능 복사

답변 2

본문

포인트 기능을 복사해 새로운 package 테이블을 데이터베이스에 만들었습니다.

관리자 메뉴에 패키지 관리 기능도 만들었구요

아래 코드로 불러 왔을때 이미지 처럼 불러와지고 있습니다. 불러와지는 데이터는 하이디 sql 이용해서 넣은거구용

근데 관리자페이지에서 값을 넘기려고 하면 계속 포인트테이블에 데이터가 들어가요 ㅜㅜ


        while ($row = sql_fetch_array($result)) { ?>
            <tr>
                <td><?php echo $row['mb_id'] ?> </td>
                <td><?php echo $row['mb_name'] ?> </td>
                <td><?php  echo $row['pack_content'] ?> </td>
                <td><?php  echo $row['pack_point'] ?> </td>
                <td><?php  echo $row['pack_datetime'] ?> </td>
            </tr>
        <?php }?>
 

 

1981836402_1716800163.5299.png

 

 

point_update.php파일 복붙하여 package_update파일 만들었는데 아래 코드에 문제가 있어서 그런것 같습니다.. 어디가 문제인지 알아야 해결을 할텐데 아직 초보자라 어디가 문제인지 막막합니다

도움 부탁드립니다ㅜㅜ


<?php
$sub_menu = "200210";
require_once './_common.php';
 
auth_check_menu($auth, $sub_menu, 'w');
 
check_admin_token();
 
$mb_id = isset($_POST['mb_id']) ? strip_tags(clean_xss_attributes($_POST['mb_id'])) : '';
$pack_point = isset($_POST['pack_point']) ? (int)strip_tags(clean_xss_attributes($_POST['pack_point'])) : 0;
$pack_content = isset($_POST['po_content']) ? strip_tags(clean_xss_attributes($_POST['pack_content'])) : '';
$expire = isset($_POST['pack_expire_term']) ? preg_replace('/[^0-9]/', '', $_POST['pack_expire_term']) : '';
 
$mb = get_member($mb_id);
 
if (!$mb['mb_id']) {
    alert('존재하는 회원아이디가 아닙니다.', './point_list.php?' . $qstr);
}
 
if (($pack_point < 0) && ($pack_point * (-1) > $mb['mb_point'])) {
    alert('포인트를 깎는 경우 현재 포인트보다 작으면 안됩니다.', './point_list.php?' . $qstr);
}
 
insert_point($mb_id, $pack_point, $pack_content, '@passive', $mb_id, $member['mb_id'] . '-' . uniqid(''), $expire);
 
goto_url('./package_point_list.php?' . $qstr);
 

 

이 질문에 댓글 쓰기 :

답변 2

insert_point($mb_id, $pack_point, $pack_content, '@passive', $mb_id, $member['mb_id'] . '-' . uniqid(''), $expire);

 

 

이함수가 포인트함수입니다.

 

common.php 파일에서 인서트포인트 검색하면 함수 나오니깐 그걸 토대로 패키지 포인트 함수 하나더 만드세요

 

저도 2개 별도로 만들어서 쓰는중 ㅇㅅㅇ 

이부분 말씀하신게 맞나용?!


// 자동로그인 부분에서 첫로그인에 포인트 부여하던것을 로그인중일때로 변경하면서 코드도 대폭 수정하였습니다.
if (isset($_SESSION['ss_mb_id']) && $_SESSION['ss_mb_id']) { // 로그인중이라면
    $member = get_member($_SESSION['ss_mb_id']);

    // 차단된 회원이면 ss_mb_id 초기화, 또는 세션에 저장된 회원 토큰값을 비교하여 틀리면 초기화
    if( ($member['mb_intercept_date'] && $member['mb_intercept_date'] <= date("Ymd", G5_SERVER_TIME)) 
        || ($member['mb_leave_date'] && $member['mb_leave_date'] <= date("Ymd", G5_SERVER_TIME))
        || (function_exists('check_auth_session_token') && !check_auth_session_token($member['mb_datetime'])) 
        ) {
        set_session('ss_mb_id', '');
        $member = array();
    } else {
        // 오늘 처음 로그인 이라면
        if (substr($member['mb_today_login'], 0, 10) != G5_TIME_YMD) {
            // 첫 로그인 포인트 지급
            insert_point($member['mb_id'], $config['cf_login_point'], G5_TIME_YMD.' 첫로그인', '@login', $member['mb_id'], G5_TIME_YMD);

            // 오늘의 로그인이 될 수도 있으며 마지막 로그인일 수도 있음
            // 해당 회원의 접근일시와 IP 를 저장
            $sql = " update {$g5['member_table']} set mb_today_login = '".G5_TIME_YMDHIS."', mb_login_ip = '{$_SERVER['REMOTE_ADDR']}' where mb_id = '{$member['mb_id']}' ";
            sql_query($sql);
        }
    }
} else {

죄송합니다.

lib/common.lib.php 파일에 있습니다.


// 포인트 부여
function insert_point($mb_id, $point, $content='', $rel_table='', $rel_id='', $rel_action='', $expire=0)
{
    global $config;
    global $g5;
    global $is_admin;

    // 포인트 사용을 하지 않는다면 return
    if (!$config['cf_use_point']) { return 0; }

    // 포인트가 없다면 업데이트 할 필요 없음
    if ($point == 0) { return 0; }

    // 회원아이디가 없다면 업데이트 할 필요 없음
    if ($mb_id == '') { return 0; }
    $mb = sql_fetch(" select mb_id from {$g5['member_table']} where mb_id = '$mb_id' ");
    if (!$mb['mb_id']) { return 0; }

    // 회원포인트
    $mb_point = get_point_sum($mb_id);

    // 이미 등록된 내역이라면 건너뜀
    if ($rel_table || $rel_id || $rel_action)
    {
        $sql = " select count(*) as cnt from {$g5['point_table']}
                  where mb_id = '$mb_id'
                    and po_rel_table = '$rel_table'
                    and po_rel_id = '$rel_id'
                    and po_rel_action = '$rel_action' ";
        $row = sql_fetch($sql);
        if ($row['cnt'])
            return -1;
    }

    // 포인트 건별 생성
    $po_expire_date = '9999-12-31';
    if($config['cf_point_term'] > 0) {
        if($expire > 0)
            $po_expire_date = date('Y-m-d', strtotime('+'.($expire - 1).' days', G5_SERVER_TIME));
        else
            $po_expire_date = date('Y-m-d', strtotime('+'.($config['cf_point_term'] - 1).' days', G5_SERVER_TIME));
    }

    $po_expired = 0;
    if($point < 0) {
        $po_expired = 1;
        $po_expire_date = G5_TIME_YMD;
    }
    $po_mb_point = $mb_point + $point;

    $sql = " insert into {$g5['point_table']}
                set mb_id = '$mb_id',
                    po_datetime = '".G5_TIME_YMDHIS."',
                    po_content = '".addslashes($content)."',
                    po_point = '$point',
                    po_use_point = '0',
                    po_mb_point = '$po_mb_point',
                    po_expired = '$po_expired',
                    po_expire_date = '$po_expire_date',
                    po_rel_table = '$rel_table',
                    po_rel_id = '$rel_id',
                    po_rel_action = '$rel_action' ";
    sql_query($sql);

    // 포인트를 사용한 경우 포인트 내역에 사용금액 기록
    if($point < 0) {
        insert_use_point($mb_id, $point);
    }

    // 포인트 UPDATE
    $sql = " update {$g5['member_table']} set mb_point = '$po_mb_point' where mb_id = '$mb_id' ";
    sql_query($sql);

    return 1;
}

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
filter #sql ×
전체 728
© SIRSOFT
현재 페이지 제일 처음으로