결제창 팝업에서 한글(제품명,구매자명)이 ???로 출력되요~ > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

결제창 팝업에서 한글(제품명,구매자명)이 ???로 출력되요~ 정보

결제창 팝업에서 한글(제품명,구매자명)이 ???로 출력되요~

본문

며칠째 삽질중입니다.
고수님들의 답변 손꼽아 기다립니다.

현재 그누보드에 배추빌더를 이용해 uft-8으로 홈페이지 구축중인데
결제창 연동시에 뜨는 팝업에서 제품명과 구매자명이 ???로 출력됩니다.
phpMyAdmin 테이블에는 정상적으로 한글이 보입니다.

닷네임 호스팅을 사용 하고 있으며,
phpMyAdmin에서 보면 Mysql 문자셋 및 connection collation은
utf8-unicode-ci로 설정되있습니다. 
모든 스킨 역시 utf-8으로 설치했구요..

오픈 앞두고 테스트 중인데 도저히 어디가 문제인지 감을 못잡겠네요.
pg사에 연락해보니 문자셋 문제일 거라고 하고,
배추빌더 사용자게시판에도 질문 남겼는데
빌더 문제가 아니라고 하네요..

테스트 url남깁니다.
http://yoyoenglish2010.com/shop/

아시는 분 계시면 답변 꼭 부탁드려요~~
  • 복사

댓글 전체

1.  gnuboard4/config.php  파일에서
    $g4['charset'] = "utf-8"; 로 돼어 있나 확인하시구요
2.  $g4['charset'] = ""; 로 해보세요
3.  스킨을 찾기와 바꾸기를 통해 euc-kr를 검색해보세요
      분명 어디인가에  euc-kr 이눔이 숨어 있어요
답변 모두 감사합니다.
위 세분 답변을 참조했는데 아직 해결이 안되네요.

이글이글이글님 처럼 코드 수정했더니 한글 대신 %%% 이런식으로 나옵니다.

공수래공수거님 말씀대로 pg사(lg텔레콤)에 확인해보니 pg프로그램이 구버전이라 euc-kr만 적용이 된다구 하네요.
신버전이면 utf-8이 지원가능한데 activeX 방식이라 배추빌더에서 어딜 수정해야 할지 모르겠고..
홈페이지를 다시 euc-kr로 구축하라는데 이제와서 그럴 순 없고 미칠거 같아요..

skyda님 말씀처럼 config.php  파일에서
    $g4['charset'] = "utf-8"; 로 되있는걸
    $g4['charset'] = ""; 로 수정하니 글씨가 깨지고 에러가 나네요..
euc-kr만 지원되신다면 보내는 데이타도 euc-kr로 보내셔야 합니다.

php 함수 iconv를 이용하세요.

$문자열 = icon("utf-8","euc-kr","$문자열");

이렇게 한번 바꿔서 데이터를 pg사로 보내야합니다.

해당 결제 보시면, 카드사로 상품명과 구매자명 입력하는곳이 있을꺼에요.
답변 감사드려여..
근데 제가 php 문외한이라 잘 적용을 못하겠는데 아래 코드에 맞게 수정 부탁드려두 될까요?
구매자와 상품명 부분만 수정해주시면 감사여 ^^
아래파일은 shop/order_step3.php
----------------------------------------------------------------------------------------
<?
include("./_common.php");
include("$g4[path]/_head2.php");
$shop = get_shop();
$goods_dir = $g4[path]."/data/goods/";

$mid = $shop[shop_mid]; //Dacom 제공 상점아이디
$mertkey = $shop[shop_mertkey]; //데이콤에서 발급받은 키값

$shop_mode = $shop[shop_mode];

$home_url = "http://".$_SERVER["SERVER_NAME"]."/shop/order_success.php";
$note_url = "http://".$_SERVER["SERVER_NAME"]."/shop/note_url.php"; //결과 화면처리 페이지 (http 또는 https 로 시작하는 전체 URL 지정 : 직접제작)
$fail_url = "http://".$_SERVER["SERVER_NAME"]."/shop/order_fail.php"; //결제실패 처리 화면




if(trim($_SESSION["g4_cart"])!="")
{

$oid = "O".time().rand(10,99); //주문번호

$CART = explode("/",$_SESSION["g4_cart"]);

$tmpCart = explode("|",$CART[0]);

$tmpCartGcode = explode("OP",$tmpCart[0]);

$tmpGoods = get_goods($tmpCartGcode[0]);
if(count($CART) > 1)
{
$o_subject_str = " 외 ".number_format(count($CART) - 1)."건";
}

$o_subject = $tmpGoods[g_name].$o_subject_str;
$pay_price = str_replace(",","",$pay_price);
$pay_tranc = str_replace(",","",$pay_tranc);
$pay_point = str_replace(",","",$pay_point);
$pay_amount = str_replace(",","",$pay_amount);
$pay_pid = $pay_pid1.$pay_pid2;

if($pay_method == "iche"){$pay_user = $pay_iche_user;}else{$pay_iche_user = "";}
if($pay_method == "bank"){$pay_user = $bank_user;$pay_info = $bank_info;}else{$bank_user = ""; $bank_info = "";}
$status = "0";
$status_history = "0|".date("Y-m-d H:i:s");


$sql = "insert into g4_order set ";
$sql.= "oid = '".$oid."', ";
$sql.= "mb_id = '".$mb_id."', ";
$sql.= "mb_part = '".$mb_part."', ";
$sql.= "o_subject = '".$o_subject."', ";
$sql.= "o_name = '".$o_name."', ";
$sql.= "o_email = '".$o_email."', ";
$sql.= "o_tel = '".$o_tel."', ";
$sql.= "o_hp = '".$o_hp."', ";
$sql.= "o_zip = '".$o_zip."', ";
$sql.= "o_addr1 = '".$o_addr1."', ";
$sql.= "o_addr2 = '".$o_addr2."', ";
$sql.= "s_name = '".$s_name."', ";
$sql.= "s_email = '".$s_email."', ";
$sql.= "s_tel = '".$s_tel."', ";
$sql.= "s_hp = '".$s_hp."', ";
$sql.= "s_zip = '".$s_zip."', ";
$sql.= "s_addr1 = '".$s_addr1."', ";
$sql.= "s_addr2 = '".$s_addr2."', ";
$sql.= "s_memo = '".$s_memo."', ";
$sql.= "pay_amount = '".$pay_amount."', ";
$sql.= "pay_method = '".$pay_method."', ";
$sql.= "pay_point = '".$pay_point."', ";
$sql.= "pay_tranc = '".$pay_tranc."', ";
$sql.= "pay_price = '".$pay_price."', ";
$sql.= "pay_info = '".$pay_info."', ";
$sql.= "status = '".$status."', ";
$sql.= "status_history = '".$status_history."', ";
$sql.= "pay_user = '".$pay_user."', ";
$sql.= "pay_pid = '".$pay_pid."', ";
$sql.= "remote_ip = '".$_SERVER["REMOTE_ADDR"]."', ";
$sql.= "buy_datetime = now() ";

$rst = mysql_query($sql);

if($rst)
{
if(trim($_SESSION["g4_cart"]))
{
for($i=0;$i<count($CART);$i++)
{
$tmpRecord = explode("|",$CART[$i]);
$tmpCartRow = explode("OP",$tmpRecord[0]);

$tmpCartGoods = get_goods($tmpCartRow[0]);
$tmpOption = get_option($tmpCartGoods[g_option],$tmpCartRow[1]);

$tot_price = ($tmpCartGoods[g_price]+$tmpOption[1]) * $tmpRecord[1];
$sql2 = "insert into g4_order_goods set ";
$sql2.= "oid = '".$oid."', ";
$sql2.= "mb_id = '".$mb_id."', ";
$sql2.= "mb_part = '".$mb_part."', ";
$sql2.= "g_code = '".$tmpCartGoods[g_code]."', ";
$sql2.= "g_name = '".$tmpCartGoods[g_name]."', ";
$sql2.= "g_option = '".$tmpOption[0]."|".$tmpOption[1]."', ";
$sql2.= "cnt = '".$b_mem."', ";
$sql2.= "cnt1 = '".$s_mem."', ";
$sql2.= "g_price = '".$g_price."', ";
$sql2.= "g_price1 = '".$g_price1."', ";
$sql2.= "g_tranc = '".$tmpCartGoods[g_tranc]."', ";
$sql2.= "tot_price = '".$tot_price."', ";
$sql2.= "buy_datetime = now() ";

$rst2 = mysql_query($sql2);

if($rst2)
{
$goods_sql = "update g4_goods set g_cnt = g_cnt - ".$tmpRecord[1].", g_sale = g_sale + ".$tmpRecord[1]." where g_code = '".$tmpCartGoods[g_code]."' limit 1";
$goods_rst = mysql_query($goods_sql);
}
}
}
}

if($mb_part == "member" && $pay_point > 0)
{
$sql3 = "insert into g4_point set ";
$sql3.= "mb_id = '".$mb_id."', ";
$sql3.= "po_datetime = now(), ";
$sql3.= "po_content = '주문번호 [".$oid."]건 결제', ";
$sql3.= "po_point = '-".$pay_point."', ";
$sql3.= "po_rel_table = '@shop', ";
$sql3.= "po_rel_id = 'system', ";
$sql3.= "po_rel_action = '".date("Y-m-d")."' ";

$rst3 = mysql_query($sql3);

if($rst3)
{
$sql4 = "update g4_member set mb_point = mb_point - ".$pay_point." where mb_id = '".$mb_id."' limit 1";
$rst4 = mysql_query($sql4);
}
}

$_SESSION["g4_cart"] = "";
$_SESSION["g4_oid"] = $oid;
}
elseif(trim($_SESSION["g4_oid"])!="")
{
$oid = trim($_SESSION["g4_oid"]);
}
else
{
echo("<script>alert('잘못된 접속입니다.');location.href='".$g4[path]."/shop/goods_list.php';</script>");
}

if($oid != "")
{

$sql = "select * from g4_order where oid='".$oid."' limit 1";
$rst = mysql_query($sql);
$order_row = mysql_fetch_array($rst);

$hashdata = md5($mid.$oid.$order_row[pay_amount].$mertkey);
?>
<link rel="stylesheet" href="<?=$g4['path']?>/shop/style.css" type="text/css">
<script language="javascript" src="<?=$g4['path']?>/shop/shop.js"></script>
<DIV id="PG_BG_LAYER" style="z-index:99;width:1280;height:1024;position:absolute;left:0px;top:0px;background:#000000;display:none;filter:alpha(style='0', opacity='70');"></DIV>
<DIV id="PG_LAYER" style="z-index:100;position:absolute;width:330px;height:450px;left:50%;margin-left:-165px;top:100px;display:none;">
  <DIV style="width:330px;height:20px;background:#3399FF;text-align:right"><span style="color:#FFFFFF;cursor:pointer" onclick="PG_CLOSE();">닫기</span></div>
  <iframe name="payFrame" width="330" height="430" frameborder="0" scrolling="no"></iframe>
</DIV>
<table cellpadding="0" cellspacing="0" border="0" width="100%">
  <tr>
    <td colspan="2" height="60" valign="bottom" style="padding:0 0 15px 0;"><img src="../sub4/sub4_img/title_03.gif" alt="수강신청" width="132" height="33" /></td>
  </tr>
</table>
<table cellpadding="0" cellspacing="0" border="0" width="660">
  <tr>
    <td height="10"></td>
  </tr>
  <tr>
    <td><table cellpadding="0" cellspacing="0" border="0" width="100%">
        <tr>
          <td height="30" class="blog_index2">결제정보</td>
        </tr>
        <tr>
          <td><table cellpadding="5" cellspacing="0" border="0" width="100%" style="border:solid 1px #DDDDDD">
              <tr>
                <td class="orderIndex">총결제금액</td>
                <td><span style="text-align:center;border:none;font-size:14px;font-weight:bold;color:red">
                  <?=number_format($order_row[pay_amount])?>
                  원</span></td>
              </tr>
              <tr>
                <td colspan="2" height="1" bgcolor="#DDDDDD"></td>
              </tr>
              <tr>
                <td class="orderIndex">결제방법</td>
                <td><?=get_paymethod($order_row[pay_method])?>
                  &nbsp;&nbsp;&nbsp;
                  <?if($order_row[pay_method] == "bank"){?>
                  입금계좌 :
                  <?=str_replace("|","&nbsp;&nbsp;",$order_row[pay_info])?>
                  &nbsp;&nbsp;&nbsp;입금자명 :
                  <?=$order_row[pay_user]?>
                  <?}elseif($order_row[pay_method] == "iche"){?>
                  결제자명 :
                  <?=$order_row[pay_user]?>
                  &nbsp;&nbsp;&nbsp;주민번호 :
                  <?=$order_row[pay_pid]?>
                  <?}else{?>
                  결제자명 :
                  <?=$order_row[pay_user]?>
                  <?}?>
                </td>
              </tr>
            </table></td>
        </tr>
      </table></td>
  </tr>
  <tr>
    <td align="center" height="50"><button class="cart_btn1" onclick="order_step4();">결제하기</button>
      <button class="cart_btn1" onclick="if(confirm('취소 하시겠습니까?')){location.href='order_cancel.php';}">취소</button></td>
  </tr>
</table>
<!-- 데이콤 결제 폼 -->
<form name="payForm" method="post" target="payFrame">
  <input type="hidden" name="shop_mode" value="<?= $shop_mode ?>">
  <input type="hidden" name="pay_method" value="<?= $order_row[pay_method] ?>">
  <input type="hidden" name="hashdata" value="<?= $hashdata ?>">
  <!-- 결제요청 검증(무결성) 필드-->
  <input type="hidden" name="mid" value="<?= $mid?>">
  <!-- 상점ID -->
  <input type="hidden" name="oid" value="<?= $oid?>">
  <!-- 주문번호 -->
  <input type="hidden" name="amount" value="<?=$order_row[pay_amount]?>">
  <!-- 결제금액 -->
  <input type="hidden" name="buyer" value="<?=$order_row[pay_user]?>">
  <!-- 구매자 -->
  <input type="hidden" name="pid" value="<?=$order_row[pay_pid]?>">
  <!-- 구매자 주민번호-->
  <input type="hidden" name="productinfo" value="<?=$order_row[o_subject]?>">
  <!-- 상품명 -->
  <input type="hidden" name="home_url" value="<?= $home_url?>">
  <!-- 팝업창 사용시 화면처리 URL (프레임 이용시 home_url 사용) -->
  <input type="hidden" name="note_url" value="<?= $note_url?>">
  <!-- 결제결과 DB처리 URL(웹전송연동방식일때 : 필수) -->
  <input type="hidden" name="fail_url" value="<?= $fail_url?>">
  <!-- 실패처리 URL(웹전송연동방식일때 : 필수) -->
  <input type="hidden" name="buyeremail" value="<?=$order_row[o_email]?>">
</form>
<?
}
else
{
echo("<script>alert('잘못된 접속입니다.');location.href='".$g4[path]."/shop/goods_list.php';</script>");
}
include("$g4[path]/_tail.php");

?>
이글이글님~ 완전 감사요..
/shop/shop.js에서
document.charset = 'euc-kr'; --> 한줄 추가하니 바로 한글이 보이네요..
오늘 종일~ 해맸는데 넘 감사해여^^

채택은 안됐지만, 답변 달아주신 다른 분들께도 감사인사 꾸벅 ^_^
© SIRSOFT
현재 페이지 제일 처음으로