영카트4 장바구니 에러좀 알려주세요
관련링크
http://영카트4
152회 연결
본문
영카트 에러 좀 봐주세요 --
소스는 아래와 같습니다. 잘 되던건데 서버 옴기고 에러가 있습니다.
insert yc4_cart set on_uid = 'c4b9b7d47d2a59254abe3cacc1a71b2b', it_id = '1684305850', it_opt1 = '', it_opt2 = '', it_opt3 = '', it_opt4 = '', it_opt5 = '', it_opt6 = '', ct_status = '쇼핑', ct_amount = '88000', ct_amount_piece = '4400', ct_point = '0', ct_point_use = '0', ct_stock_use = '0', ct_qty = '0', ct_qty_piece = '1', ct_time = '2023-06-09 17:52:07', ct_ip = '61.101.127.20', ct_direct = '', mb_no = '799', mb_id_limit = 'wowhost', ct_box_payy = '0'
1366 : Incorrect integer value: '' for column 'ct_direct' at row 1
error file : /shop/cartupdate_direct.php
<?
include_once("./_common.php");
$fr_date_extra = date("Y-m-d", time()); // 하루구매 검사를 위한 오늘날짜 추출
if ($sw_direct) {
$tmp_on_uid = get_session("ss_on_direct");
}
else {
$tmp_on_uid = get_session("ss_on_uid");
}
// 브라우저에서 쿠키를 허용하지 않은 경우라고 볼 수 있음.
if (!$tmp_on_uid)
{
alert("더 이상 작업을 진행할 수 없습니다.\\n\\n브라우저의 쿠키 허용을 사용하지 않음으로 설정한것 같습니다.\\n\\n브라우저의 인터넷 옵션에서 쿠키 허용을 사용으로 설정해 주십시오.\\n\\n그래도 진행이 되지 않는다면 쇼핑몰 운영자에게 문의 바랍니다.");
}
// 관리자가 개별 상품 추가 입력체크
if($item_insert == 'item_insert_ok'){
$on_uid_insert_temp = $_SESSION['on_uid_insert'];
if (!$on_uid_insert_temp)
{
alert("주문번호가 없습니다.\\n\\n관리자 화면의 주문리스트에서 주문번호를 다시 선택해주세요.");
}
}
// 레벨(권한)이 상품구입 권한보다 작다면 상품을 구입할 수 없음.
if ($member[mb_level] < $default[de_level_sell])
{
alert("상품을 구입할 수 있는 권한이 없습니다.");
}
if ($w == "d") // 삭제이면
{
$sql = " delete from $g4[yc4_cart_table]
where ct_id = '$ct_id'
and mb_no = '$member[mb_no]' ";
sql_query($sql);
}
else if ($w == "multiwishdelete") // 선택 삭제이면
{
$fldcnt = count($_POST[chk]);
for ($i=0; $i<$fldcnt; $i++)
{
$sql = " delete from $g4[yc4_wish_table]
where mb_id = '$member[mb_id]' and wi_id = '{$_POST[wi_id][$i]}' ";
sql_query($sql);
}
goto_url("$g4[shop_url]/wishlist.php");
}
else if ($w == "multicartdelete") // 장바구니 선택 삭제이면
{
$fldcnt = count($_POST[chk]);
for ($i=0; $i<$fldcnt; $i++)
{
$sql = " delete from $g4[yc4_cart_table]
where mb_no = '$member[mb_no]' and ct_id = '{$_POST[ct_id][$i]}' and it_id = '{$_POST[it_id][$i]}' ";
sql_query($sql);
}
}
else if ($w == "alldelete") // 모두 삭제이면
{
$sql = " delete from $g4[yc4_cart_table]
where on_uid = '$tmp_on_uid' ";
sql_query($sql);
}
else if ($w == "allupdate") // 수량 변경이면 : 모두 수정이면
{
$fldcnt = count($_POST[ct_id]);
// 수량 변경, 재고등을 검사
$error = "";
for ($i=0; $i<$fldcnt; $i++)
{
// 재고 구함
$stock_qty = get_it_stock_qty($_POST[it_id][$i]);
// 변경된 수량이 재고수량보다 크면 오류
if ($_POST[ct_qty][$i] > $stock_qty || $_POST[ct_qty_piece][$i] > $stock_qty)
$error .= "{$_POST[it_name][$i]} 재고수량이 부족합니다. 현재 재고수량 : $stock_qty 개\\n\\n";
}
// 오류가 있다면 오류메세지 출력
if ($error != "") { alert($error); }
for ($i=0; $i<$fldcnt; $i++)
{
// 박스당 가격이 0일경우 장바구니 담지않기 (## supertiger ##)
if ($_POST[ct_amount][$i] <= 0){
$_POST[ct_qty][$i] = 0;
}
// 개당 가격이 0일경우 장바구니 담지않기 (## supertiger ##)
if( $_POST[ct_amount_piece][$i] <= 0){
$_POST[ct_qty_piece][$i] = 0;
}
$sql = " update $g4[yc4_cart_table]
set ct_qty = '{$_POST[ct_qty][$i]}', ct_qty_piece = '{$_POST[ct_qty_piece][$i]}'
where ct_id = '{$_POST[ct_id][$i]}'
and on_uid = '$tmp_on_uid' ";
sql_query($sql);
// 업데이트를 먼저 실행 후 하루 구매할 수 있는 수량을 조정
$sql_extra_item = " select it_today_box_buy_limit, it_today_piece_buy_limit from $g4[yc4_item_table] where it_id = '{$_POST[it_id][$i]}' ";
$cart_extra_item = sql_fetch($sql_extra_item);
$it_today_box_buy_limit = $cart_extra_item[it_today_box_buy_limit]; // 하루 구매가능한 박스량
$it_today_piece_buy_limit = $cart_extra_item[it_today_piece_buy_limit]; // 하루 구매가능한 낱개량
// 장바구니에 있는 상품 검사 시작
$it_today_box_buy_limit_extra = 0;
$it_today_piece_buy_limit_extra = 0;
$sql_extra = " select
SUM(IF(ct_status = '쇼핑',ct_qty_piece, 0)) as ct_status_1_2,
SUM(IF(ct_status = '쇼핑',ct_qty, 0)) as ct_status_1_1,
SUM(IF(ct_status = '주문',ct_qty_piece, 0)) as ct_status_2_2,
SUM(IF(ct_status = '주문',ct_qty, 0)) as ct_status_2_1,
SUM(IF(ct_status = '준비',ct_qty_piece, 0)) as ct_status_3_2,
SUM(IF(ct_status = '준비',ct_qty, 0)) as ct_status_3_1,
SUM(IF(ct_status = '배송',ct_qty_piece, 0)) as ct_status_4_2,
SUM(IF(ct_status = '배송',ct_qty, 0)) as ct_status_4_1
from $g4[yc4_cart_table] ";
$sql_extra .= " where it_id = '{$_POST[it_id][$i]}' and ct_time between '$fr_date_extra 00:00:00' and '$fr_date_extra 23:59:59' and mb_id_limit = '$member[mb_id]' ";
$cart_extra = sql_fetch($sql_extra);
$it_today_box_buy_limit_extra = $cart_extra[ct_status_1_1] + $cart_extra[ct_status_2_1] + $cart_extra[ct_status_3_1] + $cart_extra[ct_status_4_1];
$it_today_piece_buy_limit_extra = $cart_extra[ct_status_1_2] + $cart_extra[ct_status_2_2] + $cart_extra[ct_status_3_2] + $cart_extra[ct_status_4_2];
// 장바구니에 있는 상품 검사 끝
// 하루 구매량보다 많을 경우 원래 값으로 리턴
if($it_today_box_buy_limit > 0){ //구매 가능량이 제한이 있는지 검사
if( $it_today_box_buy_limit_extra > $it_today_box_buy_limit ){
$_POST[ct_qty][$i] = $_POST[ct_qty_extra][$i];
$sql = " update $g4[yc4_cart_table]
set ct_qty = '{$_POST[ct_qty][$i]}'
where ct_id = '{$_POST[ct_id][$i]}'
and on_uid = '$tmp_on_uid' ";
sql_query($sql);
}
}
// 하루 구매량보다 많을 경우 원래 값으로 리턴
if($it_today_piece_buy_limit > 0){ //구매 가능량이 제한이 있는지 검사
if( $it_today_piece_buy_limit_extra > $it_today_piece_buy_limit ){
$_POST[ct_qty_piece][$i] = $_POST[ct_qty_piece_extra][$i];
$sql = " update $g4[yc4_cart_table]
set ct_qty_piece = '{$_POST[ct_qty_piece][$i]}'
where ct_id = '{$_POST[ct_id][$i]}'
and on_uid = '$tmp_on_uid' ";
sql_query($sql);
}
}
}
}
else if ($w == "multi") // 온라인견적(등)에서 여러개의 상품이 한꺼번에 들어옴.
{
// 보관함에서 금액이 제대로 반영되지 않던 오류를 수정
$fldcnt = count($_POST[it_name]);
// 재고등을 검사
$error = "";
for ($i=0; $i<$fldcnt; $i++)
{
$ct_qty_tmp = $_POST[ct_qty][$i] + $_POST[ct_qty_piece][$i];
if ($_POST[it_id][$i] == "" || $ct_qty_tmp <= 0 ) { continue; }
// 비회원가격과 회원가격이 다르다면
if (!$is_member && $default[de_different_msg])
{
$sql = " select it_amount, it_amount2 from $g4[yc4_item_table] where it_id = '{$_POST[it_id][$i]}' ";
$row = sql_fetch($sql);
if ($row[it_amount2] && $row[it_amount] != $row[it_amount2]) {
$error .= "\"{$_POST[it_name][$i]}\" 의 비회원가격과 회원가격이 다릅니다. 로그인 후 구입하여 주십시오.\\n\\n";
}
}
//--------------------------------------------------------
// 변조 검사
//--------------------------------------------------------
$sql = " select * from $g4[yc4_item_table] where it_id = '{$_POST[it_id][$i]}' ";
$it = sql_fetch($sql);
$amount = get_amount($it);
$amount_piece = get_amount_piece($it); //개당가격 추가
// 상품가격이 다름
if ((int)$amount !== (int)$_POST[it_amount][$i])
die("Error..");
// 개당 가격이 다름
if ((int)$amount_piece !== (int)$_POST[it_amount_piece][$i])
die("Error..");
$point = $it[it_point];
// 포인트가 다름
if ((int)$point !== (int)$_POST[it_point][$i] && $config[cf_use_point])
die("Error...");
//--------------------------------------------------------
// 이미 장바구니에 있는 같은 상품의 수량합계를 구한다.
$sql = " select SUM(ct_qty) as cnt from $g4[yc4_cart_table] where it_id = '{$_POST[it_id][$i]}' and on_uid = '$tmp_on_uid' ";
$row = sql_fetch($sql);
$sum_qty = $row[cnt];
// 재고 구함
$it_stock_qty = get_it_stock_qty($_POST[it_id][$i]);
if ($_POST[ct_qty][$i] + $sum_qty > $it_stock_qty) {
$error .= "{$_POST[it_name][$i]} 재고수량이 부족합니다. 현재 재고수량 : $it_stock_qty\\n\\n";
}
// 이미 장바구니에 있는 같은 상품의 낱개 수량합계를 구한다.
$sql_piece = " select SUM(ct_qty) as cnt from $g4[yc4_cart_table] where it_id = '{$_POST[it_id][$i]}' and on_uid = '$tmp_on_uid' ";
$row_piece = sql_fetch($sql_piece);
$sum_qty_piece = $row_piece[cnt];
// 재고 구함
$it_stock_piece_qty = get_it_stock_qty($_POST[it_id][$i]);
if ($_POST[ct_qty_piece][$i] + $sum_qty_piece > $it_stock_piece_qty) {
$error .= "{$_POST[it_name][$i]} 재고수량이 부족합니다. 현재 재고수량 : $it_stock_qty\\n\\n";
}
}
// 오류가 있다면 오류메세지 출력
if ($error != "") { alert($error); }
$ct_qty_sum_count = 0; // 구매상품이 1개이상인지 검사
for ($i=0; $i<$fldcnt; $i++)
{
$ct_qty_tmp = $_POST[ct_qty][$i] + $_POST[ct_qty_piece][$i];
if ($_POST[it_id][$i] == "" || $ct_qty_tmp <= 0) continue;
// 포인트 사용하지 않는다면
if (!$config[cf_use_point]) $_POST[it_point][$i] = 0;
// 박스당 가격이 0일경우 장바구니 담지않기 (## supertiger ##)
if ($_POST[it_amount][$i] <= 0){
$_POST[ct_qty][$i] = 0;
}
// 개당 가격이 0일경우 장바구니 담지않기 (## supertiger ##)
if( $_POST[it_amount_piece][$i] <= 0){
$_POST[ct_qty_piece][$i] = 0;
}
$sql_payy = " select * from $g4[yc4_item_table] where it_id = '{$_POST[it_id][$i]}' ";
$it_payy = sql_fetch($sql_payy);
// 장바구니에 Insert
$sql = " insert $g4[yc4_cart_table]
set on_uid = '$tmp_on_uid',
it_id = '{$_POST[it_id][$i]}',
ct_status = '쇼핑',
ct_amount = '{$_POST[it_amount][$i]}',
ct_amount_piece = '{$_POST[it_amount_piece][$i]}',
ct_point = '{$_POST[it_point][$i]}',
ct_point_use = '0',
ct_stock_use = '0',
ct_qty = '{$_POST[ct_qty][$i]}',
ct_qty_piece = '{$_POST[ct_qty_piece][$i]}',
ct_time = '$g4[time_ymdhis]',
ct_ip = '$REMOTE_ADDR',
mb_no = '$member[mb_no]',
mb_id_limit = '$member[mb_id]',
ct_box_payy = '{$it_payy[it_box_payy]}' ";
if( $_POST[ct_qty][$i] != 0 || $_POST[ct_qty_piece][$i] != 0){ //낱개 또는 박스중 수량이 1개 이상경우에만 장바구니에 담기
sql_query($sql);
}
$ct_qty_tmp = "";
//개당수량과 박스수량을 합계, 주문량 입력
$sql_it_box_piece = " select it_box_piece from $g4[yc4_item_table] where it_id = '{$_POST[it_id][$i]}' ";
$row_it_box_piece = sql_fetch($sql_it_box_piece);
$sum_it_box_piece = $row_it_box_piece[it_box_piece];
$it_order_sell_sum = $_POST[ct_qty_piece][$i] + ($sum_it_box_piece * $_POST[ct_qty][$i]);
if($it_order_sell_sum > 0){
$sql = " update $g4[yc4_item_table]
set it_order_sell = it_order_sell + '{$it_order_sell_sum}'
where it_id = '{$_POST[it_id][$i]}' ";
sql_query($sql);
$ct_qty_sum_count = $ct_qty_sum_count + $it_order_sell_sum;
$it_order_sell_sum = "";
}
}
if($ct_qty_sum_count <= 0){ // 구매상품이 하나도 없을경우 메세지 처리
if($search_str){
alert("구매할 제품 수량을 1개 이상 선택해주세요.","search.php?search_type=$search_type&search_str=$search_str");
}
if($ca_id){
alert("구매할 제품 수량을 1개 이상 선택해주세요.","list.php?ca_id=$ca_id");
}
}
if($ca_id){
alert("선택하신 상품이 장바구니에 담겼습니다.","list.php?ca_id=$ca_id");
}
if($search_str){
alert("선택하신 상품이 장바구니에 담겼습니다.","search.php?search_type=$search_type&search_str=$search_str");
}
}
else // 개별 상품 장바구니에 담기
{
if (!$_GET[it_id]){
alert("장바구니에 담을 상품을 선택하여 주십시오.");
}
$ct_qty_tmp = $_GET[ct_qty] + $_GET[ct_qty_piece];
if ($ct_qty_tmp <= 0){
alert("수량을 한개 이상 선택하여 주십시오.");
}
// 비회원가격과 회원가격이 다르다면
if (!$is_member && $default[de_different_msg])
{
$sql = " select it_amount, it_amount2 from $g4[yc4_item_table] where it_id = '$_GET[it_id]' ";
$row = sql_fetch($sql);
if ($row[it_amount2] && $row[it_amount] != $row[it_amount2]) {
echo "<meta http-equiv=\"content-type\" content=\"text/html; charset=$g4[charset]\">";
echo "<script>alert('비회원가격과 회원가격이 다릅니다. 로그인 후 구입하여 주십시오.');</script>";
}
}
//--------------------------------------------------------
// 변조 검사
//--------------------------------------------------------
$opt_amount = 0;
$sql = " select * from $g4[yc4_item_table] where it_id = '$_GET[it_id]' ";
$it = sql_fetch($sql);
for ($i=1; $i<=6; $i++) {
//$dst_opt = $_POST["it_opt".$i];
$dst_opt = trim($_POST["it_opt".$i]);
if ($dst_opt) {
$org_opt = $it["it_opt".$i];
$exp_opt = explode("\n", trim($org_opt));
$exists = false;
for ($k=0; $k<count($exp_opt); $k++) {
$opt = trim($exp_opt[$k]);
if ($dst_opt == $opt) {
$exists = true;
$exp_option = explode(";", $opt);
$opt_amount += (int)$exp_option[1];
break;
}
}
if ($exists == false) {
// 옵션이 다름
die("Error.");
}
}
}
$sql = " select * from $g4[yc4_item_table] where it_id = '{$_GET[it_id]}' ";
$it = sql_fetch($sql);
$amount = get_amount($it);
$amount_piece = get_amount_piece($it); //개당가격 추가
$it_amount_tmp = str_replace(',', '', $_GET[it_amount]);
$it_amount_piece_tmp = str_replace(',', '', $_GET[it_amount_piece]);
// 상품가격이 다름
if ((int)$amount !== (int)$it_amount_tmp)
die("Error..1");
if ((int)$amount_piece !== (int)$it_amount_piece_tmp)
die("Error..2");
//$point = $it[it_point];
// 포인트가 다름
//if ((int)$point !== (int)$_POST[it_point] && $config[cf_use_point])
// die("Error...");
//--------------------------------------------------------
//--------------------------------------------------------
// 재고 검사
//--------------------------------------------------------
// 이미 장바구니에 있는 같은 상품의 수량합계를 구한다.
$sql = " select SUM(ct_qty) as cnt from $g4[yc4_cart_table]
where it_id = '$_GET[it_id]'
and on_uid = '$tmp_on_uid' ";
$row = sql_fetch($sql);
$sum_qty = $row[cnt];
// 재고 구함
$it_stock_qty = get_it_stock_qty($_GET[it_id]);
if ($ct_qty + $sum_qty > $it_stock_qty)
{
alert("$it_name 재고수량이 부족합니다.\\n\\n현재 재고수량 : " . number_format($it_stock_qty) . " 개");
}
//--------------------------------------------------------
//--------------------------------------------------------
// 개별 재고 검사
//--------------------------------------------------------
// 이미 장바구니에 있는 같은 상품의 수량합계를 구한다.
$sql_piece = " select SUM(ct_qty_piece) as cnt from $g4[yc4_cart_table]
where it_id = '$_GET[it_id]'
and on_uid = '$tmp_on_uid' ";
$row_piece = sql_fetch($sql_piece);
$sum_qty_piece = $row_piece[cnt];
// 재고 구함
$it_stock_qty = get_it_stock_qty($_GET[it_id]);
if ($ct_qty_piece + $sum_qty_piece > $it_stock_qty)
{
alert("$it_name 재고수량이 부족합니다.\\n\\n현재 재고수량 : " . number_format($it_stock_qty) . " 개");
}
//--------------------------------------------------------
// 바로구매에 있던 장바구니 자료를 지운다.
$result = sql_query(" delete from $g4[yc4_cart_table] where on_uid = '$tmp_on_uid' and ct_direct = 1 ", false);
if (!$result) {
// 삭제중 에러가 발생했다면 필드가 없다는 것이므로 바로구매 필드를 생성한다.
sql_query(" ALTER TABLE `$g4[yc4_cart_table]` ADD `ct_direct` TINYINT NOT NULL ");
}
// 포인트 사용하지 않는다면
if (!$config[cf_use_point]) { $_GET[it_point] = 0; }
// 박스당 가격이 0일경우 장바구니 담지않기 (## supertiger ##)
if ($it_amount_tmp <= 0){
$_GET[ct_qty] = 0;
}
// 개당 가격이 0일경우 장바구니 담지않기 (## supertiger ##)
if( $it_amount_piece_tmp <= 0){
$_GET[ct_qty_piece] = 0;
}
// 관리자가 개별 상품 추가 입력체크
if($item_insert == 'item_insert_ok'){
if ($on_uid_insert_temp)
{
$tmp_on_uid = $on_uid_insert_temp;
$ct_status = '주문';
}
}else{
$ct_status = '쇼핑';
}
// 장바구니에 Insert
$sql = " insert $g4[yc4_cart_table]
set on_uid = '$tmp_on_uid',
it_id = '$_GET[it_id]',
it_opt1 = '$_GET[it_opt1]',
it_opt2 = '$_GET[it_opt2]',
it_opt3 = '$_GET[it_opt3]',
it_opt4 = '$_GET[it_opt4]',
it_opt5 = '$_GET[it_opt5]',
it_opt6 = '$_GET[it_opt6]',
ct_status = '$ct_status',
ct_amount = '$it_amount_tmp',
ct_amount_piece = '$it_amount_piece_tmp',
ct_point = '$_GET[it_point]',
ct_point_use = '0',
ct_stock_use = '0',
ct_qty = '$_GET[ct_qty]',
ct_qty_piece = '$_GET[ct_qty_piece]',
ct_time = '$g4[time_ymdhis]',
ct_ip = '$REMOTE_ADDR',
ct_direct = '$sw_direct',
mb_no = '$member[mb_no]',
mb_id_limit = '$member[mb_id]',
ct_box_payy = '{$it[it_box_payy]}'
";
if( $_GET[ct_qty] != 0 || $_GET[ct_qty_piece] != 0){ //낱개 또는 박스중 수량이 1개 이상경우에만 장바구니에 담기
sql_query($sql);
}
//개당수량과 박스수량을 합계, 주문량 입력
$sql_it_box_piece = " select it_box_piece from $g4[yc4_item_table] where it_id = '{$_GET[it_id]}' ";
$row_it_box_piece = sql_fetch($sql_it_box_piece);
$sum_it_box_piece = $row_it_box_piece[it_box_piece];
$it_order_sell_sum = $_GET[ct_qty_piece] + ($sum_it_box_piece * $_GET[ct_qty]);
if($it_order_sell_sum > 0){
$sql = " update $g4[yc4_item_table]
set it_order_sell = it_order_sell + '{$it_order_sell_sum}'
where it_id = '{$_GET[it_id]}' ";
sql_query($sql);
$ct_qty_sum_count = $ct_qty_sum_count + $it_order_sell_sum;
$it_order_sell_sum = "";
}
if($ct_qty_sum_count <= 0){ // 구매상품이 하나도 없을경우 메세지 처리
if($search_str){
alert("구매할 제품 수량을 1개 이상 선택해주세요.","search.php?search_type=$search_type&search_str=$search_str");
}
if($ca_id){
alert("구매할 제품 수량을 1개 이상 선택해주세요.","list.php?ca_id=$ca_id");
}
}
// 관리자가 개별 상품 추가 입력체크
if($item_insert == 'item_insert_ok'){
if ($on_uid_insert_temp)
{
if($search_str){
alert("선택하신 상품이 주문추가 되었습니다.","search.php?search_type=$search_type&search_str=$search_str");
}
if($ca_id){
alert("선택하신 상품이 주문추가 되었습니다.","list.php?ca_id=$ca_id");
}
}
}
if($search_str){
alert("선택하신 상품이 장바구니에 담겼습니다.","search.php?search_type=$search_type&search_str=$search_str");
}
if($ca_id){
alert("선택하신 상품이 장바구니에 담겼습니다.","list.php?ca_id=$ca_id");
}
}
// 바로 구매일 경우
if ($sw_direct)
{
if ($member[mb_id])
{
goto_url("$g4[shop_url]/orderform.php?sw_direct=$sw_direct");
}
else
{
goto_url("$g4[url]/$g4[bbs]/login.php?url=".urlencode("$g4[shop_path]/orderform.php?sw_direct=$sw_direct"));
}
}
else
{
goto_url("$g4[shop_url]/cart_direct.php");
}
?>
!-->
답변 2
// 장바구니에 Insert <---이런 내용 보이죠?
다음행에 추가하세요
if(!$sw_direct) $sw_direct=0;
리뉴얼 하신게 어떨까요? 영카트 5.5로 나온지 꽤 됐는데~ 이전하신게 나을듯해요
유지보수만해도 만만히 않을듯합니다.
답변을 작성하시기 전에 로그인 해주세요.