상품 주문시 추가내용 및 파일을 받을 수 있게 하는 팁 정보
상품 주문시 추가내용 및 파일을 받을 수 있게 하는 팁본문
이 기능은 상품 주문시에 메모와 파일을 첨부한 채로 주문을 할 수 있는 기능입니다.
예를 들어 인쇄업체에서 인쇄내용을 첨부한채로 주문시, 별도의 게시판을 필요로 없이 할 수 있게끔 하는 기능이라고 보시면됩니다.
(영카트4에서는 옵션을 입력받게끔 수정해서 사용하던 것과 비슷한 팁입니다)
고급이지 못한 실력으로 차례차례 밟아간 터라,
내용이 매끄럽지 못할것입니다.
내용이 많으니 잘 따라오세요~
참고로 영카트 본체파일을 건드려야 하니, 꼭 백업해두세요~
먼저, 필드를 두개 추가해주셔야 합니다.
/adm/config_form.php
파일에 넣었습니다만, 필드추가를 위한 부분이니 아무데나 넣고 웹에서 실행시켜줍니다.
// 주문시 추가내용/파일 입력위한 추가
sql_query(" ALTER TABLE `{$g5['g5_shop_cart_table']}`
ADD `ct_msg` varchar(255) NOT NULL DEFAULT '' AFTER `ct_select`,
ADD `ct_file` varchar(255) NOT NULL DEFAULT '' AFTER `ct_msg` ", true);
이제 mysql 은 준비되었으니,
주문하는 페이지부터 시작입니다.
/skin/shop/basic/item.form.skin.php
약 8번째줄
<form name="fitem" method="post" action="<?php echo $action_url; ?>" onsubmit="return fitem_submit(this);">
이부분을
<form name="fitem" method="post" enctype="MULTIPART/FORM-DATA" action="<?php echo $action_url; ?>" onsubmit="return fitem_submit(this);">
바꿔줍니다.
약 340번줄 즈음에
<!-- 다른 상품 보기 시작 { -->
.....
<!-- } 다른 상품 보기 끝 -->
다음에 아래를 추가해줍니다.
<!-- 별도 작업 요청사항 시작 { -->
<div id="sit_spinput">
<textarea name="work_msg"></textarea>
<input type="file" name="work_file">
</div>
<!-- } 별도 작업 요청사항 끝 -->
디자인은 알아서 잡으시구요~ ㅋ
눈에 보이는 부분이 끝났습니다.
/shop/cartupdate.php
에서 처리할 부분은 실제로 내용을 입력, 제거시 첨부파일을 삭제하는 내용입니다.
약 50번째줄
else if ($act == "alldelete") // 모두 삭제이면
이부분의 바로다음,
$sql = " delete from {$g5['g5_shop_cart_table']}
이부분의 바로 전에,
//첨부 파일 삭제
$sqld = " select ct_file from {$g5['g5_shop_cart_table']} where od_id = '$tmp_cart_id' ";
$dwresult = sql_query($sqld);
for ($i=0; $row=mysql_fetch_array($dwresult); $i++)
@unlink(G5_DATA_PATH."/odfile/".$row[ct_file]);
추가해줍니다.
약 60번째줄
else if ($act == "seldelete") // 선택삭제
이부분 다음에
$it_id = $_POST['it_id'][$i];
의 바로 아래에
//첨부 파일 삭제
$sqld = " select ct_file from {$g5['g5_shop_cart_table']} where it_id = '$it_id' and od_id = '$tmp_cart_id' ";
$dw = sql_fetch($sqld);
@unlink(G5_DATA_PATH."/odfile/".$dw[ct_file]);
추가해줍니다.
내용을 db에 입력하고 파일을 업로드할차례입니다.
같은 파일에
약 206번째줄
$sql = " INSERT INTO {$g5['g5_shop_cart_table']}
( od_id, mb_id, it_id, it_name, it_sc_type, it_sc_method, it_sc_price, it_sc_minimum, it_sc_qty, ct_status, ct_price, ct_point, ct_point_use, ct_stock_use, ct_option, ct_qty, ct_notax, io_id, io_type, io_price, ct_time, ct_ip, ct_send_cost, ct_direct, ct_select )
VALUES ";
이부분을
$sql = " INSERT INTO {$g5['g5_shop_cart_table']}
( od_id, mb_id, it_id, it_name, it_sc_type, it_sc_method, it_sc_price, it_sc_minimum, it_sc_qty, ct_status, ct_price, ct_point, ct_point_use, ct_stock_use, ct_option, ct_qty, ct_notax, io_id, io_type, io_price, ct_time, ct_ip, ct_send_cost, ct_direct, ct_select, ct_msg, ct_file )
VALUES ";
보면 끝에 두 필드가 추가되있습니다.
268번째줄정도에
// 배송비결제
....
else if($it['it_sc_type'] > 1 && $it['it_sc_method'] == 1)
$ct_send_cost = 1; // 착불
이부분이 있습니다. 바로 다음에 추가해줍니다.
//작업용 파일 업로드 추가
if($_FILES['work_file']['name']){
$ct_file_dir = G5_DATA_PATH.'/odfile';
if(!is_dir($ct_file_dir)) {
@mkdir($ct_file_dir, G5_DIR_PERMISSION);
@chmod($ct_file_dir, G5_DIR_PERMISSION);
}
$f_pt = "/[#\&\+\-%@=\/\\:;,'\"\^`~\|\!\?\*\$#<>\(\)\[\]\{\}]/";
$work_file = $_FILES['work_file']['name'];
$work_file = preg_replace("/\s+/", "", $work_file);
$work_file = preg_replace( $f_pt, "", $work_file);
$work_file = preg_replace_callback(
"/[가-힣]+/",
create_function('$matches', 'return base64_encode($matches[0]);'),
$work_file);
$work_file = preg_replace( $f_pt, "", $work_file );
$work_file_check=strtolower(array_pop(explode('.',$work_file)));
$deny_file = array("php","php3","exe","cgi","phtml","html","htm","pl","asp","jsp","inc","dll");
if(in_array($work_file_check,$deny_file))
alert('$filename 파일은 업로드할수 없는 확장자의 파일입니다.');
$work_file = $tmp_cart_id."_".$work_file;
upload_file($_FILES['work_file']['tmp_name'], $work_file, $ct_file_dir);
}
그 바로 아래에
$sql .= $comma."( '$tmp_cart_id', '{$member['mb_id']}', '{$it['it_id']}', '".addslashes($it['it_name'])."', '{$it['it_sc_type']}', '{$it['it_sc_method']}', '{$it['it_sc_price']}', '{$it['it_sc_minimum']}', '{$it['it_sc_qty']}', '쇼핑', '{$it['it_price']}', '$point', '0', '0', '$io_value', '$ct_qty', '{$it['it_notax']}', '$io_id', '$io_type', '$io_price', '".G5_TIME_YMDHIS."', '$REMOTE_ADDR', '$ct_send_cost', '$sw_direct', '$ct_select' )";
이부부을
$sql .= $comma."( '$tmp_cart_id', '{$member['mb_id']}', '{$it['it_id']}', '".addslashes($it['it_name'])."', '{$it['it_sc_type']}', '{$it['it_sc_method']}', '{$it['it_sc_price']}', '{$it['it_sc_minimum']}', '{$it['it_sc_qty']}', '쇼핑', '{$it['it_price']}', '$point', '0', '0', '$io_value', '$ct_qty', '{$it['it_notax']}', '$io_id', '$io_type', '$io_price', '".G5_TIME_YMDHIS."', '$REMOTE_ADDR', '$ct_send_cost', '$sw_direct', '$ct_select', '".addslashes($work_msg)."', '$work_file' )";
와 같이 변경해줍니다.
cartupdate.php 부분이 끝났습니다.
이제 입력된 내용을 관리자가 확인해야겠습니다.
저는
/adm/shop_admin/orderform.php
파일에서만 내용을 확인하면 되겠다고 판단했습니다.
약 164번째줄에
$sql = " select ct_id, it_id, ct_price, ct_point, ct_qty, ct_option, ct_status, cp_price, ct_stock_use, ct_point_use, ct_send_cost, io_type, io_price
이 쿼리문을
$sql = " select ct_id, it_id, ct_price, ct_point, ct_qty, ct_option, ct_status, cp_price, ct_stock_use, ct_point_use, ct_send_cost, io_type, io_price, ct_msg, ct_file
와 같이 바꿔줍니다.
약 241번째줄이 </tr>입니다. 한 주문상품의 for 문중 테이블 라인이 끝나는 부분이지요.
이 바로 다음에 추가해줍니다.
<?php
if($opt['ct_msg'] || $opt['ct_file']) {
?>
<tr>
<th>추가작업내용</th>
<td colspan="8" class="td_mngsmall"><?php echo stripslashes($opt['ct_msg']); ?></td>
<th>첨부파일</th>
<td colspan="2" class="td_mngsmall"><a href="<?php echo G5_DATA_URL."/odfile/".$opt['ct_file']?>">다운받기</a></td>
</tr>
<?php
}
?>
이 내용으로 인해 주문이 들어왔을때 메세지 혹은 파일이 있을경우 한줄이 추가되어 확인가능해집니다.
이제 주문서를 삭제했을때를 위해 수정합니다.
yc5는 리스트에서 "주문"으로 검색시 해당되는 부분만 삭제버튼이 나타나게 되어있습니다.
때문에 /adm/shop_admin/orderlistdelete.php 파일만 수정합니다.
약 14번째줄 if (!$od) continue; 다음에
//첨부 파일 삭제
$sqld = " select ct_file from {$g5['g5_shop_cart_table']} where od_id = '$od_id' ";
$dwresult = sql_query($sqld);
for ($i=0; $row=mysql_fetch_array($dwresult); $i++)
@unlink(G5_DATA_PATH."/odfile/".$row[ct_file]);
위 내용을 추가해줍니다.
이정도 까지 하면 주문할때 문제가 없고,
관리자가 확인할 때 문제가 없으며,
사용자던, 관리자던 주문서를 삭제했을때는 서버에 쓰레기 파일이 남지 않을것입니다.
관리자가 확인하고 삭제시 처리하는 부분을 응용해서,
주문확인에서도 적용시킬 수 있겠지요.
혹은 주문확인에서 본 내용만을 수정하게도 가능할것입니다.
내용이 복잡해서 미루다가 이제서야 올립니다.
아직 오픈할정도로 테스트는 이루어지지않았습니다.
버그나 오작동 할 경우 알려주세요 ^^;
예를 들어 인쇄업체에서 인쇄내용을 첨부한채로 주문시, 별도의 게시판을 필요로 없이 할 수 있게끔 하는 기능이라고 보시면됩니다.
(영카트4에서는 옵션을 입력받게끔 수정해서 사용하던 것과 비슷한 팁입니다)
고급이지 못한 실력으로 차례차례 밟아간 터라,
내용이 매끄럽지 못할것입니다.
내용이 많으니 잘 따라오세요~
참고로 영카트 본체파일을 건드려야 하니, 꼭 백업해두세요~
먼저, 필드를 두개 추가해주셔야 합니다.
/adm/config_form.php
파일에 넣었습니다만, 필드추가를 위한 부분이니 아무데나 넣고 웹에서 실행시켜줍니다.
// 주문시 추가내용/파일 입력위한 추가
sql_query(" ALTER TABLE `{$g5['g5_shop_cart_table']}`
ADD `ct_msg` varchar(255) NOT NULL DEFAULT '' AFTER `ct_select`,
ADD `ct_file` varchar(255) NOT NULL DEFAULT '' AFTER `ct_msg` ", true);
이제 mysql 은 준비되었으니,
주문하는 페이지부터 시작입니다.
/skin/shop/basic/item.form.skin.php
약 8번째줄
<form name="fitem" method="post" action="<?php echo $action_url; ?>" onsubmit="return fitem_submit(this);">
이부분을
<form name="fitem" method="post" enctype="MULTIPART/FORM-DATA" action="<?php echo $action_url; ?>" onsubmit="return fitem_submit(this);">
바꿔줍니다.
약 340번줄 즈음에
<!-- 다른 상품 보기 시작 { -->
.....
<!-- } 다른 상품 보기 끝 -->
다음에 아래를 추가해줍니다.
<!-- 별도 작업 요청사항 시작 { -->
<div id="sit_spinput">
<textarea name="work_msg"></textarea>
<input type="file" name="work_file">
</div>
<!-- } 별도 작업 요청사항 끝 -->
디자인은 알아서 잡으시구요~ ㅋ
눈에 보이는 부분이 끝났습니다.
/shop/cartupdate.php
에서 처리할 부분은 실제로 내용을 입력, 제거시 첨부파일을 삭제하는 내용입니다.
약 50번째줄
else if ($act == "alldelete") // 모두 삭제이면
이부분의 바로다음,
$sql = " delete from {$g5['g5_shop_cart_table']}
이부분의 바로 전에,
//첨부 파일 삭제
$sqld = " select ct_file from {$g5['g5_shop_cart_table']} where od_id = '$tmp_cart_id' ";
$dwresult = sql_query($sqld);
for ($i=0; $row=mysql_fetch_array($dwresult); $i++)
@unlink(G5_DATA_PATH."/odfile/".$row[ct_file]);
추가해줍니다.
약 60번째줄
else if ($act == "seldelete") // 선택삭제
이부분 다음에
$it_id = $_POST['it_id'][$i];
의 바로 아래에
//첨부 파일 삭제
$sqld = " select ct_file from {$g5['g5_shop_cart_table']} where it_id = '$it_id' and od_id = '$tmp_cart_id' ";
$dw = sql_fetch($sqld);
@unlink(G5_DATA_PATH."/odfile/".$dw[ct_file]);
추가해줍니다.
내용을 db에 입력하고 파일을 업로드할차례입니다.
같은 파일에
약 206번째줄
$sql = " INSERT INTO {$g5['g5_shop_cart_table']}
( od_id, mb_id, it_id, it_name, it_sc_type, it_sc_method, it_sc_price, it_sc_minimum, it_sc_qty, ct_status, ct_price, ct_point, ct_point_use, ct_stock_use, ct_option, ct_qty, ct_notax, io_id, io_type, io_price, ct_time, ct_ip, ct_send_cost, ct_direct, ct_select )
VALUES ";
이부분을
$sql = " INSERT INTO {$g5['g5_shop_cart_table']}
( od_id, mb_id, it_id, it_name, it_sc_type, it_sc_method, it_sc_price, it_sc_minimum, it_sc_qty, ct_status, ct_price, ct_point, ct_point_use, ct_stock_use, ct_option, ct_qty, ct_notax, io_id, io_type, io_price, ct_time, ct_ip, ct_send_cost, ct_direct, ct_select, ct_msg, ct_file )
VALUES ";
보면 끝에 두 필드가 추가되있습니다.
268번째줄정도에
// 배송비결제
....
else if($it['it_sc_type'] > 1 && $it['it_sc_method'] == 1)
$ct_send_cost = 1; // 착불
이부분이 있습니다. 바로 다음에 추가해줍니다.
//작업용 파일 업로드 추가
if($_FILES['work_file']['name']){
$ct_file_dir = G5_DATA_PATH.'/odfile';
if(!is_dir($ct_file_dir)) {
@mkdir($ct_file_dir, G5_DIR_PERMISSION);
@chmod($ct_file_dir, G5_DIR_PERMISSION);
}
$f_pt = "/[#\&\+\-%@=\/\\:;,'\"\^`~\|\!\?\*\$#<>\(\)\[\]\{\}]/";
$work_file = $_FILES['work_file']['name'];
$work_file = preg_replace("/\s+/", "", $work_file);
$work_file = preg_replace( $f_pt, "", $work_file);
$work_file = preg_replace_callback(
"/[가-힣]+/",
create_function('$matches', 'return base64_encode($matches[0]);'),
$work_file);
$work_file = preg_replace( $f_pt, "", $work_file );
$work_file_check=strtolower(array_pop(explode('.',$work_file)));
$deny_file = array("php","php3","exe","cgi","phtml","html","htm","pl","asp","jsp","inc","dll");
if(in_array($work_file_check,$deny_file))
alert('$filename 파일은 업로드할수 없는 확장자의 파일입니다.');
$work_file = $tmp_cart_id."_".$work_file;
upload_file($_FILES['work_file']['tmp_name'], $work_file, $ct_file_dir);
}
그 바로 아래에
$sql .= $comma."( '$tmp_cart_id', '{$member['mb_id']}', '{$it['it_id']}', '".addslashes($it['it_name'])."', '{$it['it_sc_type']}', '{$it['it_sc_method']}', '{$it['it_sc_price']}', '{$it['it_sc_minimum']}', '{$it['it_sc_qty']}', '쇼핑', '{$it['it_price']}', '$point', '0', '0', '$io_value', '$ct_qty', '{$it['it_notax']}', '$io_id', '$io_type', '$io_price', '".G5_TIME_YMDHIS."', '$REMOTE_ADDR', '$ct_send_cost', '$sw_direct', '$ct_select' )";
이부부을
$sql .= $comma."( '$tmp_cart_id', '{$member['mb_id']}', '{$it['it_id']}', '".addslashes($it['it_name'])."', '{$it['it_sc_type']}', '{$it['it_sc_method']}', '{$it['it_sc_price']}', '{$it['it_sc_minimum']}', '{$it['it_sc_qty']}', '쇼핑', '{$it['it_price']}', '$point', '0', '0', '$io_value', '$ct_qty', '{$it['it_notax']}', '$io_id', '$io_type', '$io_price', '".G5_TIME_YMDHIS."', '$REMOTE_ADDR', '$ct_send_cost', '$sw_direct', '$ct_select', '".addslashes($work_msg)."', '$work_file' )";
와 같이 변경해줍니다.
cartupdate.php 부분이 끝났습니다.
이제 입력된 내용을 관리자가 확인해야겠습니다.
저는
/adm/shop_admin/orderform.php
파일에서만 내용을 확인하면 되겠다고 판단했습니다.
약 164번째줄에
$sql = " select ct_id, it_id, ct_price, ct_point, ct_qty, ct_option, ct_status, cp_price, ct_stock_use, ct_point_use, ct_send_cost, io_type, io_price
이 쿼리문을
$sql = " select ct_id, it_id, ct_price, ct_point, ct_qty, ct_option, ct_status, cp_price, ct_stock_use, ct_point_use, ct_send_cost, io_type, io_price, ct_msg, ct_file
와 같이 바꿔줍니다.
약 241번째줄이 </tr>입니다. 한 주문상품의 for 문중 테이블 라인이 끝나는 부분이지요.
이 바로 다음에 추가해줍니다.
<?php
if($opt['ct_msg'] || $opt['ct_file']) {
?>
<tr>
<th>추가작업내용</th>
<td colspan="8" class="td_mngsmall"><?php echo stripslashes($opt['ct_msg']); ?></td>
<th>첨부파일</th>
<td colspan="2" class="td_mngsmall"><a href="<?php echo G5_DATA_URL."/odfile/".$opt['ct_file']?>">다운받기</a></td>
</tr>
<?php
}
?>
이 내용으로 인해 주문이 들어왔을때 메세지 혹은 파일이 있을경우 한줄이 추가되어 확인가능해집니다.
이제 주문서를 삭제했을때를 위해 수정합니다.
yc5는 리스트에서 "주문"으로 검색시 해당되는 부분만 삭제버튼이 나타나게 되어있습니다.
때문에 /adm/shop_admin/orderlistdelete.php 파일만 수정합니다.
약 14번째줄 if (!$od) continue; 다음에
//첨부 파일 삭제
$sqld = " select ct_file from {$g5['g5_shop_cart_table']} where od_id = '$od_id' ";
$dwresult = sql_query($sqld);
for ($i=0; $row=mysql_fetch_array($dwresult); $i++)
@unlink(G5_DATA_PATH."/odfile/".$row[ct_file]);
위 내용을 추가해줍니다.
이정도 까지 하면 주문할때 문제가 없고,
관리자가 확인할 때 문제가 없으며,
사용자던, 관리자던 주문서를 삭제했을때는 서버에 쓰레기 파일이 남지 않을것입니다.
관리자가 확인하고 삭제시 처리하는 부분을 응용해서,
주문확인에서도 적용시킬 수 있겠지요.
혹은 주문확인에서 본 내용만을 수정하게도 가능할것입니다.
내용이 복잡해서 미루다가 이제서야 올립니다.
아직 오픈할정도로 테스트는 이루어지지않았습니다.
버그나 오작동 할 경우 알려주세요 ^^;
추천
3
3
댓글 52개
찾던 팁이었습니다 고맙습니다 추천 +2!!
적용해보겠습니다. 그리고 혹시 하나 부탁을 드릴 수 있는지요(__)
가령 디자인 샘플이미지도 직접 업로드하거나 갤러리게시판을 버튼으로 띄워서
샘플 썸네일을 선택하면 이미지를 넣어서 메모와 같이 주문할 수있게 해주시면
정말 감사하겠습니다^^;;
이것때문에 계속 검색하고 따라해봐도 스킨만 이용하여 조금씩
쓰는 초보입장에서는 구현하기가 막막하네요ㅠㅠ
프로그래머분들께서는 어렵지 않을지모르는데 정말 며칠을 밤새워 고생중입니다...
다시한번 부턱드리겠습니다...;;;
적용해보겠습니다. 그리고 혹시 하나 부탁을 드릴 수 있는지요(__)
가령 디자인 샘플이미지도 직접 업로드하거나 갤러리게시판을 버튼으로 띄워서
샘플 썸네일을 선택하면 이미지를 넣어서 메모와 같이 주문할 수있게 해주시면
정말 감사하겠습니다^^;;
이것때문에 계속 검색하고 따라해봐도 스킨만 이용하여 조금씩
쓰는 초보입장에서는 구현하기가 막막하네요ㅠㅠ
프로그래머분들께서는 어렵지 않을지모르는데 정말 며칠을 밤새워 고생중입니다...
다시한번 부턱드리겠습니다...;;;
적용했습니다. 별다른 오류는 없이 잘 처리됩니다^^
팁올려주시기전에는 shop>orderform.php 에서 입력받아 바로 orderinquiryview.php에
까지는 어떻게 처리했고 admin 파일도 작업해보려했는데 덕분에 잘 처리하게되서
다시 감사드립니다 ^~ 이제 샘플이미지 처리하는게 문제가 남았는데 여러분들의
관심 부탁드립니다(__)
팁올려주시기전에는 shop>orderform.php 에서 입력받아 바로 orderinquiryview.php에
까지는 어떻게 처리했고 admin 파일도 작업해보려했는데 덕분에 잘 처리하게되서
다시 감사드립니다 ^~ 이제 샘플이미지 처리하는게 문제가 남았는데 여러분들의
관심 부탁드립니다(__)
적용이 잘 되셨다니 다행입니다.
지금 보고계신 팁도 몇일 개발한분량입니다. ^^;;;
영카트5자체도 개발된지 얼마되지 않았고, 분석하는 시간도 있어야해서 쉽게는 만들어지지않죠.... 복잡해지기도하고...
말씀하신 기능은 다른 방식으로 적용해보시는것이 현명합니다.
샘플을 직접 등록하는 기능, 그걸 보는 기능, 그 샘플을 선택하고 저장해야 하는 기능등.
간단히 생각해도 많은 절차가 필요합니다.
예상 개발기간만 일주일이 좀 넘을듯싶네요.
가령, item.form.skin.php 파일에 샘플보는 메뉴를 넣으시고,
샘플 html 파일 하나 만드셔서,
주문받으실때 메모란에 기재해달란말을 남긴다던가 하는 방식으로 흘러가는것이
간단하게 해결할 수 있는 방법일듯 싶습니다. ^^;
도움이되어드리지 못해 죄송합니다.
지금 보고계신 팁도 몇일 개발한분량입니다. ^^;;;
영카트5자체도 개발된지 얼마되지 않았고, 분석하는 시간도 있어야해서 쉽게는 만들어지지않죠.... 복잡해지기도하고...
말씀하신 기능은 다른 방식으로 적용해보시는것이 현명합니다.
샘플을 직접 등록하는 기능, 그걸 보는 기능, 그 샘플을 선택하고 저장해야 하는 기능등.
간단히 생각해도 많은 절차가 필요합니다.
예상 개발기간만 일주일이 좀 넘을듯싶네요.
가령, item.form.skin.php 파일에 샘플보는 메뉴를 넣으시고,
샘플 html 파일 하나 만드셔서,
주문받으실때 메모란에 기재해달란말을 남긴다던가 하는 방식으로 흘러가는것이
간단하게 해결할 수 있는 방법일듯 싶습니다. ^^;
도움이되어드리지 못해 죄송합니다.
안녕하세요.
팁 올려려주신 덕에 쉽게 처리할 수 있어 많은 도움이 되었습니다^^
감사합니다
그리고 저도 말씀하신 item.form.skin.php에 이미지를 넣는방식이
갤러리 이미지불러오는것보다는 간단하리라 생각해서 그쪽으로
시도해보려합니다
그누보드를 안지 몇년되었지만 지식이 없고 필요할때만 관심을 가지다
보니 도움만 청하게 되네요^^;;
하시는일 모두 번창하시기 바랍니다
감사합니다~
팁 올려려주신 덕에 쉽게 처리할 수 있어 많은 도움이 되었습니다^^
감사합니다
그리고 저도 말씀하신 item.form.skin.php에 이미지를 넣는방식이
갤러리 이미지불러오는것보다는 간단하리라 생각해서 그쪽으로
시도해보려합니다
그누보드를 안지 몇년되었지만 지식이 없고 필요할때만 관심을 가지다
보니 도움만 청하게 되네요^^;;
하시는일 모두 번창하시기 바랍니다
감사합니다~
감사합니다. ^^
추가 설명 남깁니다.
옵션이 있을경우 $opt 이부분이 지속적으로 호출이 됨으로,
있을경우 별도의 함수에 저장을 하고, 테이블의 tr 이 끝난 뒤에 저장된 함수로 불러오게 변경하면됩니다.
약 주문 조회 페이지들의 라인의
for($k=0; $opt=sql_fetch_array($res); $k++) {
위 for문이 있는 곳에
$add_msg = $opt['ct_msg'];
$add_file = $opt['ct_file'];
두줄 추가하시고
for문이 닫힌 바로 다음에
if($add_msg || $add_file) {
?>
<tr>
<th>추가작업내용</th>
<td colspan="4" class="td_mngsmall"><?php echo stripslashes($add_msg); ?></td>
<th>첨부파일</th>
<td colspan="2" class="td_mngsmall"><a href="<?php echo G5_DATA_URL."/odfile/".$add_file?>" target="_blank">다운받기</a></td>
</tr>
<?php
}
이 내용을 추가하시면 됩니다.
피드백 감사합니다.
옵션이 있을경우 $opt 이부분이 지속적으로 호출이 됨으로,
있을경우 별도의 함수에 저장을 하고, 테이블의 tr 이 끝난 뒤에 저장된 함수로 불러오게 변경하면됩니다.
약 주문 조회 페이지들의 라인의
for($k=0; $opt=sql_fetch_array($res); $k++) {
위 for문이 있는 곳에
$add_msg = $opt['ct_msg'];
$add_file = $opt['ct_file'];
두줄 추가하시고
for문이 닫힌 바로 다음에
if($add_msg || $add_file) {
?>
<tr>
<th>추가작업내용</th>
<td colspan="4" class="td_mngsmall"><?php echo stripslashes($add_msg); ?></td>
<th>첨부파일</th>
<td colspan="2" class="td_mngsmall"><a href="<?php echo G5_DATA_URL."/odfile/".$add_file?>" target="_blank">다운받기</a></td>
</tr>
<?php
}
이 내용을 추가하시면 됩니다.
피드백 감사합니다.
두번 출력되는 문제가 이미 제작된 쇼핑몰엔 해결이 되어있었네요 ^^;;;;
되는거 보고 팁이랍시고 맘급하게 올려서 완성도 떨어지는내용을 기재해서 죄송합니다.
마지막 추가된 내용 참고하셔서 응용하시면
문제없이 작동되리라 생각합니다.
되는거 보고 팁이랍시고 맘급하게 올려서 완성도 떨어지는내용을 기재해서 죄송합니다.
마지막 추가된 내용 참고하셔서 응용하시면
문제없이 작동되리라 생각합니다.
찾던 기능인데 화일을 어떻게 다운로드 받아야할까요?ㅠ
수정된 파일은 올리지 않았습니다.
쇼핑몰의 경우는 수정이 빈번해서 파일적용하시면 기존내용이 날라갈 여지가 많습니다.
에디터를 이용해 내용을 적용해주세요.
쇼핑몰의 경우는 수정이 빈번해서 파일적용하시면 기존내용이 날라갈 여지가 많습니다.
에디터를 이용해 내용을 적용해주세요.
감사합니다.
적용하니 장바구니가 비었습니다. 라고 얼럿창이 뜨네요~
youngcart5.0.34 버전입니다.
youngcart5.0.34 버전입니다.
이 팁은 정식오픈 전의 팁입니다.
장바구니가 비었다는것은, cartupdate 부분을 처리하지 못해 일어나는듯합니다.
ct_msg, ct_file
이 두 필드를 추가하고,
sql update 부분을 팁 내용 그대로 복사하지 마시고,
원래의 코드에서 추가를 해주세요.
이미 영카트 버전이 올라가면서 DB구조는 달라져있을것입니다.
주의해서 적용하셔야합니다.
장바구니가 비었다는것은, cartupdate 부분을 처리하지 못해 일어나는듯합니다.
ct_msg, ct_file
이 두 필드를 추가하고,
sql update 부분을 팁 내용 그대로 복사하지 마시고,
원래의 코드에서 추가를 해주세요.
이미 영카트 버전이 올라가면서 DB구조는 달라져있을것입니다.
주의해서 적용하셔야합니다.
저도 적용을 해보니 장바구니가 비었습니다라고 뜨네요
그대로 복사안하고 필드 추가만 했습니다.
$sql = " INSERT INTO {$g5['g5_shop_cart_table']}
( od_id, mb_id, it_id, it_name, it_sc_type, it_sc_method, it_sc_price, it_sc_minimum, it_sc_qty, ct_status, ct_price, ct_point, ct_point_use, ct_stock_use, ct_option, ct_qty, ct_notax, io_id, io_type, io_price, ct_time, ct_ip, ct_send_cost, ct_direct, ct_select, ct_select_time, ct_msg, ct_file )
VALUES ";
그대로 복사안하고 필드 추가만 했습니다.
$sql = " INSERT INTO {$g5['g5_shop_cart_table']}
( od_id, mb_id, it_id, it_name, it_sc_type, it_sc_method, it_sc_price, it_sc_minimum, it_sc_qty, ct_status, ct_price, ct_point, ct_point_use, ct_stock_use, ct_option, ct_qty, ct_notax, io_id, io_type, io_price, ct_time, ct_ip, ct_send_cost, ct_direct, ct_select, ct_select_time, ct_msg, ct_file )
VALUES ";
본 소스를 최근 버전에 맞춰 다시 수정해야 합니다만, 아직은 여유가 없습니다.
알려주신 쿼리만으로는 증상을 판단하기가 어렵네요.
장바구니 담긴부분이 어디서 누락되는지 검토해보셔서 그부분을 수정하셔야 합니다.
많은 도움이 되드리지 못해 죄송합니다.
알려주신 쿼리만으로는 증상을 판단하기가 어렵네요.
장바구니 담긴부분이 어디서 누락되는지 검토해보셔서 그부분을 수정하셔야 합니다.
많은 도움이 되드리지 못해 죄송합니다.
답변주셔서 정말 감사합니다^^
제가 찾아본 부분은 이 부분인데요~~
// 장바구니에 Insert
// 바로구매일 경우 장바구니가 체크된것으로 강제 설정
if($sw_direct)
$ct_select = 1;
else
$ct_select = 0;
이 부분이 버전5에서는
// 장바구니에 Insert
// 바로구매일 경우 장바구니가 체크된것으로 강제 설정
if($sw_direct) {
$ct_select = 1;
$ct_select_time = G5_TIME_YMDHIS;
} else {
$ct_select = 0;
$ct_select_time = '0000-00-00 00:00:00';
}
이렇게 $ct_select_time이 추가 되어 있더라구요
필드가 한개 더 추가되어있던데 혹시 연관되있는건지 몰라서 올려봐요
나중에 시간나시면 부탁드릴게요~
제가 찾아본 부분은 이 부분인데요~~
// 장바구니에 Insert
// 바로구매일 경우 장바구니가 체크된것으로 강제 설정
if($sw_direct)
$ct_select = 1;
else
$ct_select = 0;
이 부분이 버전5에서는
// 장바구니에 Insert
// 바로구매일 경우 장바구니가 체크된것으로 강제 설정
if($sw_direct) {
$ct_select = 1;
$ct_select_time = G5_TIME_YMDHIS;
} else {
$ct_select = 0;
$ct_select_time = '0000-00-00 00:00:00';
}
이렇게 $ct_select_time이 추가 되어 있더라구요
필드가 한개 더 추가되어있던데 혹시 연관되있는건지 몰라서 올려봐요
나중에 시간나시면 부탁드릴게요~
해결하셨나요?
cartupdate.php 에서 328번줄 아래로
$sql .= $comma."( '$tmp_cart_id', '{$member['mb_id']}', '{$it['it_id']}', '".addslashes($it['it_name'])."', '{$it['it_sc_type']}', '{$it['it_sc_method']}', '{$it['it_sc_price']}', '{$it['it_sc_minimum']}', '{$it['it_sc_qty']}', '쇼핑', '{$it['it_price']}', '$point', '0', '0', '$io_value', '$ct_qty', '{$it['it_notax']}', '$io_id', '$io_type', '$io_price', '".G5_TIME_YMDHIS."', '$REMOTE_ADDR', '$ct_send_cost', '$sw_direct', '$ct_select', '$ct_select_time')";
이 부분이 보이실 거에요.
거기 끝에다가 '$ct_msg', '$ct_file' 을 추가해주시면 됩니다.
cartupdate.php 에서 328번줄 아래로
$sql .= $comma."( '$tmp_cart_id', '{$member['mb_id']}', '{$it['it_id']}', '".addslashes($it['it_name'])."', '{$it['it_sc_type']}', '{$it['it_sc_method']}', '{$it['it_sc_price']}', '{$it['it_sc_minimum']}', '{$it['it_sc_qty']}', '쇼핑', '{$it['it_price']}', '$point', '0', '0', '$io_value', '$ct_qty', '{$it['it_notax']}', '$io_id', '$io_type', '$io_price', '".G5_TIME_YMDHIS."', '$REMOTE_ADDR', '$ct_send_cost', '$sw_direct', '$ct_select', '$ct_select_time')";
이 부분이 보이실 거에요.
거기 끝에다가 '$ct_msg', '$ct_file' 을 추가해주시면 됩니다.
Rini님 팁을 이용해서 잘 적용했습니다
그런데 파일이 하나만 올라가게 되어있어서
파일을 여러개 올릴 수 있게 하려면 어떻게 수정해야할지요^^;;
멀티업로드로 검색도해보고 수정해보려고 했는데 도저히 안되서요
배열로 처리하라고 되있는거같은데 저에게는 너무 어렵네요ㅠㅠ
며칠을 끙끙대다가 도움을 요청드립니다.
그런데 파일이 하나만 올라가게 되어있어서
파일을 여러개 올릴 수 있게 하려면 어떻게 수정해야할지요^^;;
멀티업로드로 검색도해보고 수정해보려고 했는데 도저히 안되서요
배열로 처리하라고 되있는거같은데 저에게는 너무 어렵네요ㅠㅠ
며칠을 끙끙대다가 도움을 요청드립니다.
파일 업로드 부분에 함수들을 file, file1, file2 등으로 관련 부분 모두를 강제로 늘려주시는 방법이 가장 쉽고 빠른 방법이지 싶습니다. 너무 답변이 늦어 죄송합니다.
감사합니다!!
orderinquiryview.php에서 확인하는 법을 아시는 분은 안계신가요. 주문자도 자기가 입력한 것을 확인할 수 있도록요.
<a href="<?php echo G5_DATA_URL."/odfile/".$add_file?>" target="_blank">
<?php echo stripslashes($add_file); ?></a> <a href="<?php echo G5_DATA_URL."/odfile/".$add_file?>" target="_blank">
다운받기</a>
로 해서, 주문자가 첨부한 화일명을 바로 볼 수 있도록 했습니다. 다들 아시지만, 제가 또 잊어버릴까 싶어서 올려놉니다.
<?php echo stripslashes($add_file); ?></a> <a href="<?php echo G5_DATA_URL."/odfile/".$add_file?>" target="_blank">
다운받기</a>
로 해서, 주문자가 첨부한 화일명을 바로 볼 수 있도록 했습니다. 다들 아시지만, 제가 또 잊어버릴까 싶어서 올려놉니다.
추가 팁 감사합니다~
Rini님 쪽지사절이란걸 이제서야 봤네요;; 쪽지로 질문 드렸는데 죄송합니다ㅠㅜㅠ
혹 댓글을 보신다면 현재 Rini님께서 올려주신 내용으로 많은 도움을 받았는데요.. 한가지만 질문을 더 드려도 이해해 주세요~!! 현재 위 내용을 구축하여 사용하는데 <input name="aaa[]" value="aaa1"><input name="aaa[]" value="aaa2"><input name="aaa[]" value="aaa3"><input name="aaa[]" value="aaa4">라는 input가 몇개가 있는데 name이 같고 이걸 배열[]로 나열하였는데 이걸 위 내용에 접목하여 저장 및 출력페이지에 보여지게 하려면 어떻게 하면 좋을지 제가 이걸 해결해 볼려고 이리저리 뒤져도 보고 다 해봤는데.. 도무지 해결이 안되네요 ㅠㅠ 너무 제가 허접한지라;; 도움좀 주시면 안될까요?? ㅠㅠ
혹 댓글을 보신다면 현재 Rini님께서 올려주신 내용으로 많은 도움을 받았는데요.. 한가지만 질문을 더 드려도 이해해 주세요~!! 현재 위 내용을 구축하여 사용하는데 <input name="aaa[]" value="aaa1"><input name="aaa[]" value="aaa2"><input name="aaa[]" value="aaa3"><input name="aaa[]" value="aaa4">라는 input가 몇개가 있는데 name이 같고 이걸 배열[]로 나열하였는데 이걸 위 내용에 접목하여 저장 및 출력페이지에 보여지게 하려면 어떻게 하면 좋을지 제가 이걸 해결해 볼려고 이리저리 뒤져도 보고 다 해봤는데.. 도무지 해결이 안되네요 ㅠㅠ 너무 제가 허접한지라;; 도움좀 주시면 안될까요?? ㅠㅠ
쪽지 사절은 어디서 보셨나요...? 쪽지 잘 받고있습니다. ^^;;;;
말씀하신 내용은 html로 내용을 받아 php 업데이트 부분에서 처리하기위한 코드를 짜내야합니다.
item.form.skin.php 이 부분에서 input을 추가하셨을거고
submit 이후에 cartupdate.php 나 query 하는 부분들의 파일들을 건드려주셔야 합니다.
물론 input의 배열 내용이 담길 필드도 추가하셔야 하구요.
또한, 배열을 어떤식으로 저장할지도 염두하셔야 합니다.
질문내용이 짧아 대략적으로 손보셔야 할 부분만 답변드립니다. ^^;
말씀하신 내용은 html로 내용을 받아 php 업데이트 부분에서 처리하기위한 코드를 짜내야합니다.
item.form.skin.php 이 부분에서 input을 추가하셨을거고
submit 이후에 cartupdate.php 나 query 하는 부분들의 파일들을 건드려주셔야 합니다.
물론 input의 배열 내용이 담길 필드도 추가하셔야 하구요.
또한, 배열을 어떤식으로 저장할지도 염두하셔야 합니다.
질문내용이 짧아 대략적으로 손보셔야 할 부분만 답변드립니다. ^^;
처리 하셨는지 모르겠습니다. 제가 예전에 도와드렸는지도 오래되서 기억이 나질않네요 ㅠㅠ
잘 처리되셨길 바랍니다~
잘 처리되셨길 바랍니다~
업로드 된 파일명이 깨지던데 안깨지게 하는 방법은 없나요?
위 방법대로 해도 깨지신다면 서버, 프로그램등의 언어셋을 보셔서
파일명 작성 부분에 iconv 등으로 처리하시면 될듯합니다.
파일명 작성 부분에 iconv 등으로 처리하시면 될듯합니다.
좋은 팁 감사합니다. 몇일 걸려서 겨우 했네요.. ^^
누군가에겐 한달이 넘을수도, 하루만에 해결할수도 있는 팁이라...
그래도 성공이란것에 축하드립니다! ^^
저도 만드는데 시간이 많이 걸려 뿌듯한 맘에 올렸던 기억이 있네요 하하;;;
그래도 성공이란것에 축하드립니다! ^^
저도 만드는데 시간이 많이 걸려 뿌듯한 맘에 올렸던 기억이 있네요 하하;;;
원글 토대로 아무리 해도 주문내역에서 추가한 내용이 확인이 안되서 애먹었네요.댓글까지 꼼꼼히 확인하고 이렇게 저렇게 해서 이틀만에 해결했습니다.
버전이 많이 바뀐데다 간단하게 적용 가능한 부분이 아니어서...
포스팅을 삭제해야 할지 고민입니다. ㅠㅠ
잘 되신다니 다행입니다~
포스팅을 삭제해야 할지 고민입니다. ㅠㅠ
잘 되신다니 다행입니다~
저는 5.3 버전에서 적용해 보려고 아래와 같이 한 부분에서
/adm/shop_admin/orderform.php
A) 약 156번째줄에
// 상품의 옵션정보
$sql = " select ct_id, it_id, ct_price, ct_point, ct_qty, ct_option, ct_status, cp_price, ct_stock_use, ct_point_use, ct_send_cost, io_type, io_price
이 쿼리문을
$sql = " select ct_id, it_id, ct_price, ct_point, ct_qty, ct_option, ct_status, cp_price, ct_stock_use, ct_point_use, ct_send_cost, io_type, io_price, ct_msg, ct_file
와 같이 바꿔주었더니
관리자 주문내역-> 보기 눌러서 보면 상품이 사라졌습니다.
그래서 확인해 본결과 위에서마지막에 있는 "ct_file" 부분을 삭제 하니 나타 나더군요
"ct_file" 부분만 추가 하면 상품이 사라지더군요
어떻게 하면 해결이 될까요?
/adm/shop_admin/orderform.php
A) 약 156번째줄에
// 상품의 옵션정보
$sql = " select ct_id, it_id, ct_price, ct_point, ct_qty, ct_option, ct_status, cp_price, ct_stock_use, ct_point_use, ct_send_cost, io_type, io_price
이 쿼리문을
$sql = " select ct_id, it_id, ct_price, ct_point, ct_qty, ct_option, ct_status, cp_price, ct_stock_use, ct_point_use, ct_send_cost, io_type, io_price, ct_msg, ct_file
와 같이 바꿔주었더니
관리자 주문내역-> 보기 눌러서 보면 상품이 사라졌습니다.
그래서 확인해 본결과 위에서마지막에 있는 "ct_file" 부분을 삭제 하니 나타 나더군요
"ct_file" 부분만 추가 하면 상품이 사라지더군요
어떻게 하면 해결이 될까요?
해당 필드가 있는지 점검해보시는것이 가장 맞는것같습니다. 리스트화를 시킬때 where 문이나 for문 안에서 if($row[cf_title]){ 과같은게 있지 않는 바에는 원인은 필드가 없는것밖에 찾지 못하겠네요. 화이팅 하시길 바랍니다~
좋은팁 감사합니다.
갑사합니다
죄송한데 적용다하고나니까 오류인지 결제창 페이지로 안넘어가네요 ㅠㅠ
지금버전이랑 조금 틀려진부분이 있는걸까요?
지금버전이랑 조금 틀려진부분이 있는걸까요?
youngcart5.3.2.3 그대로 복사안하고 추가하면서 하니 잘됩니다...감사합니다
댓글 모두 참고해서 해봤는데...
cartupdate.php 파일의
$sql = " INSERT INTO {$g5['g5_shop_cart_table']}
( od_id, mb_id, it_id, it_name, it_sc_type, it_sc_method, it_sc_price, it_sc_minimum, it_sc_qty, ct_status, ct_price, ct_point, ct_point_use, ct_stock_use, ct_option, ct_qty, ct_notax, io_id, io_type, io_price, ct_time, ct_ip, ct_send_cost, ct_direct, ct_select, ct_msg, ct_file )
VALUES ";
이부분부터 갑자기 장바구니가 비었다고합니다..
즉, ct_msg, ct_file을 추가할때부터 장바구니가 비었다고 나옵니다
그래서 그 아래에 댓글에 말씀해주신것처럼
$sql .= $comma."( '$tmp_cart_id', '{$member['mb_id']}', '{$it['it_id']}', '".addslashes($it['it_name'])."', '{$it['it_sc_type']}', '{$it['it_sc_method']}', '{$it['it_sc_price']}', '{$it['it_sc_minimum']}', '{$it['it_sc_qty']}', '쇼핑', '{$it['it_price']}', '$point', '0', '0', '$io_value', '$ct_qty', '{$it['it_notax']}', '$io_id', '$io_type', '$io_price', '".G5_TIME_YMDHIS."', '$remote_addr', '$ct_send_cost', '$sw_direct', '$ct_select', '$ct_select_time', '$ct_msg', '$ct_file' )";
이렇게 끝에 '$ct_msg', '$ct_file'을 추가해도 장바구니가 비었다고 나오는건 똑같습니다...
이부분부터가 문제인거같은데 이문제 해결하신분 계신가요?
물론 바로구매를 눌렀을때 입니다.
cartupdate.php 파일의
$sql = " INSERT INTO {$g5['g5_shop_cart_table']}
( od_id, mb_id, it_id, it_name, it_sc_type, it_sc_method, it_sc_price, it_sc_minimum, it_sc_qty, ct_status, ct_price, ct_point, ct_point_use, ct_stock_use, ct_option, ct_qty, ct_notax, io_id, io_type, io_price, ct_time, ct_ip, ct_send_cost, ct_direct, ct_select, ct_msg, ct_file )
VALUES ";
이부분부터 갑자기 장바구니가 비었다고합니다..
즉, ct_msg, ct_file을 추가할때부터 장바구니가 비었다고 나옵니다
그래서 그 아래에 댓글에 말씀해주신것처럼
$sql .= $comma."( '$tmp_cart_id', '{$member['mb_id']}', '{$it['it_id']}', '".addslashes($it['it_name'])."', '{$it['it_sc_type']}', '{$it['it_sc_method']}', '{$it['it_sc_price']}', '{$it['it_sc_minimum']}', '{$it['it_sc_qty']}', '쇼핑', '{$it['it_price']}', '$point', '0', '0', '$io_value', '$ct_qty', '{$it['it_notax']}', '$io_id', '$io_type', '$io_price', '".G5_TIME_YMDHIS."', '$remote_addr', '$ct_send_cost', '$sw_direct', '$ct_select', '$ct_select_time', '$ct_msg', '$ct_file' )";
이렇게 끝에 '$ct_msg', '$ct_file'을 추가해도 장바구니가 비었다고 나오는건 똑같습니다...
이부분부터가 문제인거같은데 이문제 해결하신분 계신가요?
물론 바로구매를 눌렀을때 입니다.
잘됩니다...윗분들이 다 굉장한 분들..감사합니다
대단히 잘되네요....감사합니다
유용한 정보 감사합니다. ^^
파일첨부기능 스크랩먼저 하고 적용해보겠습니다.
고맙습니다.^^
고맙습니다.^^
s
스크랩하고 적용 예정이요 ...
먼저 소스 감사합니다~~~
근데, 글쓰신 날자가 오래 되었는데,
최신 버전에 적용해 보신 분 있으신가요?
2020년 이후 최신 버전에 그대로 적용해도 되나요?
최신 버전 호환성 관련 수정 사항은 따로 없나요?
저도 이 기능 필요한데, 적용 전 궁굼해서 댓글 씁니다.
소스 감사합니다.
근데, 글쓰신 날자가 오래 되었는데,
최신 버전에 적용해 보신 분 있으신가요?
2020년 이후 최신 버전에 그대로 적용해도 되나요?
최신 버전 호환성 관련 수정 사항은 따로 없나요?
저도 이 기능 필요한데, 적용 전 궁굼해서 댓글 씁니다.
소스 감사합니다.
혹시 적용해보셨는지 여쭤봐도 될까요?
저도 적용해야할거같은데..ㅠㅠ
저도 적용해야할거같은데..ㅠㅠ
아직입니다. 프로그램 방향을 어떻게 할까 고민중에 있습니다. 도움 못드려 미안합니다.
상품 주문
정말 필요한 기능인데
// 주문시 추가내용/파일 입력위한 추가
sql_query(" ALTER TABLE `{$g5['g5_shop_cart_table']}`
ADD `ct_msg` varchar(255) NOT NULL DEFAULT '' AFTER `ct_select`,
ADD `ct_file` varchar(255) NOT NULL DEFAULT '' AFTER `ct_msg` ", true);
이부분만 삽입하면 에러가 나네요..
// 주문시 추가내용/파일 입력위한 추가
sql_query(" ALTER TABLE `{$g5['g5_shop_cart_table']}`
ADD `ct_msg` varchar(255) NOT NULL DEFAULT '' AFTER `ct_select`,
ADD `ct_file` varchar(255) NOT NULL DEFAULT '' AFTER `ct_msg` ", true);
이부분만 삽입하면 에러가 나네요..
너무 좋은글입니다 시간이 지났어도 삭제하지마세요 ㅠ 좋은팁 올려주셔서 감사합니다
현재 버전에 적용 하신 분 있으신가요?
감사합니다. 덕분에 잘 적용했습니다.
$work_file = preg_replace_callback( "/[가-힣]+/", create_function('$matches', 'return base64_encode($matches[0]);'), $work_file);
이 부분은 php8에서 create_function 이 사용되지 않게 됨에 따라 작동하지 않습니다.
$work_file = preg_replace_callback(
"/[가-힣]+/",
function ($matches) {
return base64_encode($matches[0]);
},
$work_file
);
이렇게 수정하시면 됩니다.