상품 문의 질문드립니다.

상품 문의 질문드립니다.

QA

SIR 제작의뢰 - 견적무료/익명보정/호스팅, DB 이전/단기개발. 이젠 ' 의뢰인'이 원하는 '제작자'에게만 연락처를 알릴 수 있습니다.

상품 문의 질문드립니다.

본문

상품문의 커스텀을 조금해서.

상품 상세 페이지와 (item.php)

상품 문의 페이지 (itemqalist.php) 에서도 답변이 가능하게 만들어 놓았습니다.

(답변시 에디터에 원문이 출력됨)

 

문제는 2가지가 있는데요.

1. 아래 그림은 상품 상세페이지 상품문의 섹션, 상품 문의 페이지 답변하기 눌렀을때 입니다.

---------------------------- 에디터----------------------

|답변입니다. blahblah~                                     |

|                                                                  |

| ------- 문의내용--------                                   |

|안녕하세요 질문있습니다.                                 |

|---------------------------------------------------------|

이렇게 답변을 하게 만들었는데요.

[원문내용]

안녕하세요 질문있습니다.

위의 문구를 아래 코드처럼 해서 넣어놓았습니다. (itemqaawform.php <- 만든파일)

if ($w == "u") { 
    $qa['iq_answer'] = "<br><br>"
        .get_view_thumbnail($iq['iq_answer'])
        ."<div id=\"originalQuestion\">"
        ."------------------------------------ 문의내용 ------------------------------------"
        ."<br>"
        ."제목 : ".($iq['iq_subject'])
        ."<br>"
        .get_view_thumbnail($iq['iq_question'])
        ."</div>";
}

 

 

그리고, itemqaawform.skin.php(<-만든파일) 에서

제이쿼리로

$(document).ready(function(){
    $('#fitemqaaw').submit(function(){
        // submit 순간 원문 삭제
        $(".cheditor-editarea").contents().find("#originalQuestion").empty();
    });
});

이렇게 originalQuestion 이 갖고 있는 요소를 모두 비워주었는데요.

출력되는것을 보면 원문내용이 들어가있습니다..

즉, 서브밋 순간 id가 originalQuestion 인 요소 아래 것들은 모두

삭제하고 서브밋 하고 싶은데 어떻게 해야할지 모르겠습니다;;

 

 

2. 답변을 작성할때 에디터로 이미지를 삽입후 작성한 뒤 메일을 확인해보면, 

답변단 내용의 이미지만 url 값이 들어가 있지 않습니다. 이건 어디를 확인해 봐야할까요 ㅠ

원문에서 첨부된 에디터 이미지는 메일에서도 잘 출력됩니다만.. 

이 글을 내 페이스북 계정으로 보내기 이 글을 내 트위터 계정으로 보내기 이 글을 내 구글플러스 계정으로 보내기

이 질문에 댓글 쓰기 :

답변 5

채택됨

Policia님의 답변

굳이 $qa['iq_answer']담으실필요가..없을듯한데요

그냥 출력만 보이게끔하고 submit할때 담아서 보내면되는거지않습니까?

if ($w == "u") { 
    $qa['iq_answer'] = "<br><br>"
        .get_view_thumbnail($iq['iq_answer'])
        ."<div id=\"originalQuestion\">"
        ."------------------------------------ 문의내용 ------------------------------------"
        ."<br>"
        ."제목 : ".($iq['iq_subject'])
        ."<br>"
        .get_view_thumbnail($iq['iq_question'])
        ."</div>";
}

이부분 그냥 지우시구요

 

출력부분에서(출력부분이 어떻게 되어있는지는 모르겠으나 재 생각대로 적겠습니다

//내용출력부분
<td class="wr_content">
 <?php echo $editor_html; ?> //에디터 사용중이라고하셔서 그냥 기본 글쓰기스킨을 참고하였습니다
 <?php if($w == "u") { ?>
 <div id="originalQuestion">
  ------------------------------------ 문의내용 ------------------------------------<br>
  제목 : <?php echo $iq['iq_subject'];?><br>
  <?php echo get_view_thumbnail($iq['iq_question'])?>
 </div>
 <?php } ?>
</td>

 

이렇게 굳이 에디터에 넣지않고 아래쪽에 추가하여서 내용만 출력되게끔하면되는거아닌가요?

주소복사
채택됨
답변의 댓글
Policia님의 댓글
그럼 그냥 처리할때 삭제하시면돼요


$iq_answer = preg_replace('#<div id="originalQuestion">(.*?)</div>#', '', $iq_answer );

POST로 받아온곳 처리하는부분에서 저렇게 하시면 해당div는 제거되고 담을수있습니다
lacomparte님의 댓글
post 받아온곳이면
update 문 바로 위에서 처리해주면 되는건가요!?

해봤는데..
header나 다른데서 주신소스로 테스트를 해보았는데
코드는 정상작동 하는데..

제꺼에선 안되네요 ㅠ
(<div id="originalQuestion"> 을 article로 변경했습니다.)
if ($w == "u")
{
	$sql_q = "SELECT * FROM {$g5['g5_shop_item_qa_table']} WHERE iq_id = '$iq_id'";
	$row_q = sql_fetch($sql_q);
	$iq_subject = $row_q['iq_subject'];
	$iq_question = $row_q['iq_question'];
	$iq_answer2 = preg_replace('#<article>(.*?)</article>#','',$iq_answer);
	
	$sql = "update {$g5['g5_shop_item_qa_table']}
               set iq_subject = '$iq_subject',
                   iq_question = '$iq_question',
                   iq_answer = '$iq_answer',
				   qa_link1_a = '$qa_link1_a',
				   qa_link2_a = '$qa_link2_a'
             where iq_id = '$iq_id' ";
    sql_query($sql);

Policia님의 댓글
preg_replace시킨 변수값을 저장하셔야하는데 지금 코드보시면

preg_replace시키기 전에 변수를 저장하고계십니다

iq_answer = '$iq_answer2' 로바꾸셔야 정상적으로 저장될것같네요
Policia님의 댓글
<article>안의 내용이 삭제되지않으셨다구요?

정규식도 맞고 테스트해보니 정상적으로 삭제되어 출력되는데 .. 흠 무슨문제인지 모르겠네요

$iq_answer = 'qwrwqrqwrqwrasbdtkastktsktaktk'
    ."<article>"
    ."------------------------------------ 문의내용 ------------------------------------"
    ."<br>"
    ."제목 : qwqrwqrwqrwqr"
    ."<br>"
    ."삼ㄴ사ㅏ사ㅈ밥ㅈ갖바갖뷰갖ㅂ규ㅏㅂㅈ가ㅠㅂ갖ㅂ"
    ."</article>";
$iq_answer2 = preg_replace('#<article>(.*?)</article>#','',$iq_answer);

echo $iq_answer2;
lacomparte님의 댓글
<?php
include_once('./_common.php');

$itemqalist = 'itemqalist';
$mypage = 'mypage_';

if(strpos($prev_url,$itemqalist) == true) {
	if(strpos($prev_url,$mypage)){
		$url = "./mypage_itemqalist.php";
	} else {
		$url = "./itemqalist.php"; 
	}
} else {
	if($is_mobile_shop)
		$url = "./item.php?it_id=$it_id&_=".get_token()."#itemqa";
	else
		$url = "./item.php?it_id=$it_id&_=".get_token()."#sit_use";

}

// 2018-04-04 링크 추가
$qa_link1_a = '';
if (isset($_POST['qa_link1_a'])) {
    $qa_link1_a = substr($_POST['qa_link1_a'],0,1000);
    $qa_link1_a = trim(strip_tags($qa_link1_a));
    $qa_link1_a = preg_replace("#[\\\]+$#", "", $qa_link1_a);
}

$qa_link2_a = '';
if (isset($_POST['qa_link2_a'])) {
    $qa_link2_a = substr($_POST['qa_link2_a'],0,1000);
    $qa_link2_a = trim(strip_tags($qa_link2_a));
    $qa_link2_a = preg_replace("#[\\\]+$#", "", $qa_link2_a);
}
echo $iq_answer;
echo "<br>***<br>";

$iq_answer2 = preg_replace('#<article>(.*?)</article>#','',$iq_answer);
echo $iq_answer2;
if ($w == "u")
{
	$sql_q = "SELECT * FROM {$g5['g5_shop_item_qa_table']} WHERE iq_id = '$iq_id'";
	$row_q = sql_fetch($sql_q);
	$iq_subject = $row_q['iq_subject'];
	$iq_question = $row_q['iq_question'];
	$sql = "update {$g5['g5_shop_item_qa_table']}
               set iq_subject = '$iq_subject',
                   iq_question = '$iq_question',
                   iq_answer = '$iq_answer2',
				   qa_link1_a = '$qa_link1_a',
				   qa_link2_a = '$qa_link2_a'
             where iq_id = '$iq_id' ";
    sql_query($sql);

	

    if(trim($iq_answer)) {
        $sql = " select a.iq_email, a.iq_hp, b.it_name
                    from {$g5['g5_shop_item_qa_table']} a left join {$g5['g5_shop_item_table']} b on ( a.it_id = b.it_id )
                    where a.iq_id = '$iq_id' ";
        $row = sql_fetch($sql);

        // SMS 알림
        if($config['cf_sms_use'] == 'icode' && $row['iq_hp']) {
            $sms_content = get_text($row['it_name']).' 상품문의에 답변이 등록되었습니다.';
            $send_number = preg_replace('/[^0-9]/', '', $default['de_admin_company_tel']);
            $recv_number = preg_replace('/[^0-9]/', '', $row['iq_hp']);

            if($recv_number) {
                if($config['cf_sms_type'] == 'LMS') {
                    include_once(G5_LIB_PATH.'/icode.lms.lib.php');

                    $port_setting = get_icode_port_type($config['cf_icode_id'], $config['cf_icode_pw']);

                    // SMS 모듈 클래스 생성
                    if($port_setting !== false) {
                        $SMS = new LMS;
                        $SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $port_setting);

                        $strDest     = array();
                        $strDest[]   = $recv_number;
                        $strCallBack = $send_number;
                        $strCaller   = iconv_euckr(trim($default['de_admin_company_name']));
                        $strSubject  = '';
                        $strURL      = '';
                        $strData     = iconv_euckr($sms_content);
                        $strDate     = '';
                        $nCount      = count($strDest);

                        $res = $SMS->Add($strDest, $strCallBack, $strCaller, $strSubject, $strURL, $strData, $strDate, $nCount);

                        $SMS->Send();
                        $SMS->Init(); // 보관하고 있던 결과값을 지웁니다.
                    }
                } else {
                    include_once(G5_LIB_PATH.'/icode.sms.lib.php');

                    $SMS = new SMS; // SMS 연결
                    $SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']);
                    $SMS->Add($recv_number, $send_number, $config['cf_icode_id'], iconv_euckr(stripslashes($sms_content)), "");
                    $SMS->Send();
                }
            }
        }

        // 답변 이메일전송
        if(trim($row['iq_email'])) {
            include_once(G5_LIB_PATH.'/mailer.lib.php');

            $subject = '[1:1문의 답변알림] '.$row['it_name'];
			$content = '<strong style="font-size: 16px; font-family: 돋움; font-weight: bold; color: #000; letter-spacing: -1px">[답변내용]</strong><br>';
            $content .= conv_content($iq_answer, 1);
			$content .= '<br><strong style="font-size: 16px; font-family: 돋움; font-weight: bold; color: #000; letter-spacing: -1px">[문의내용]</strong>';
			$content .= '<br>제목 : '.get_text($iq_subject);
			$content .= conv_content($iq_question, 1);

            mailer('팜스트림', $config['cf_admin_email'], $row['iq_email'], $subject, $content, 1);
        }
    }

Policia님의 답변

if ($w == "u") { 
    $qa['iq_answer'] = "<br><br>"
        .get_view_thumbnail($iq['iq_answer'])
        ."<div id=\"originalQuestion\">"
        ."------------------------------------ 문의내용 ------------------------------------"
        ."<br>"
        ."제목 : ".($iq['iq_subject'])
        ."<br>"
        .get_view_thumbnail($iq['iq_question'])
        ."</div>";
}

 

이부분을 다시 봐야겠는데요 어떻게 바꼈는지...

 

제가 가지고있는 그누보드로 테스트를해보니 아티클을 제외한 내용을 정상적으로 저장하는걸 확인했습니다

 

그럼 생각할수있는문제는 아티클이 잘못설정되어있다던가 오타가났다던가밖에생각이안나네요..

주소복사
답변의 댓글
lacomparte님의 댓글
if ($w == "u") { 
	$originalQuestion = '<br><br>'
		.get_view_thumbnail($iq['iq_answer'])
		.'<article>'
		.'------------------------------------ 문의내용 ------------------------------------'
		.'<br>'
		.'제목 : '.($iq['iq_subject'])
		.'<br>'
		.get_view_thumbnail($iq['iq_question'])
		.'</article>';
}

$is_dhtml_editor = false;
// 모바일에서는 DHTML 에디터 사용불가
if ($config['cf_editor'] && (!is_mobile() || defined('G5_IS_MOBILE_DHTML_USE') && G5_IS_MOBILE_DHTML_USE)) {
    $is_dhtml_editor = true;
}
$editor_html = editor_html('iq_answer', get_text($originalQuestion, 1), $is_dhtml_editor);
$editor_js = '';
$editor_js .= get_editor_js('iq_answer', $is_dhtml_editor);
$editor_js .= chk_editor_js('iq_answer', $is_dhtml_editor);

$itemqaawform_skin = G5_SHOP_SKIN_PATH.'/itemqaawform.skin.php';


이렇게 해서 불러옵니다.
Policia님의 댓글
음 그럼 되야 정상인데..........
모든 조건을 똑같이하고 테스트해봤는데 저는 아티클안에 내용은 빼고 잘 저장까지 확인되는걸 방금 봤습니다

기존 div로다시 롤백하셔도 똑같으신가요?
lacomparte님의 댓글
한가지 의심스러운건
에디터를 쓴다는점인데..

에디터가 흠... 에디터라서 그런걸까요?;

div로 해도 마찬가지입니다 ㅠ
업데이트 하기전에
iq_answer, iq_answer2 값 찍어서 개발자 도구로 보면

아래처럼 나오네요/

<div=\"originalquestion\">------------------------------------ 문의내용 ------------------------------------<br>제목 : ㅁㄴㅁㅇㄴㅁㅇㄴㅁ<br>
  <p>ㅊㅊㅊ</p>
  </div=\"originalquestion\">

Policia님의 답변

<div=\"originalquestion\">------------------------------------ 문의내용 ------------------------------------<br>제목 : ㅁㄴㅁㅇㄴㅁㅇㄴㅁ<br> 
  <p>ㅊㅊㅊ</p> 
  </div=\"originalquestion\">

<div=\"originalquestion\">------------------------------------ 문의내용 ------------------------------------<br>제목 : ㅁㄴㅁㅇㄴㅁㅇㄴㅁ<br> 
  <p>ㅊㅊㅊ</p> 
  </div=\"originalquestion\">

당연한 이야기겠지만.. 혹시나싶어서

이렇게 두번나오시나요?한번만나오시나요?

주소복사
답변의 댓글

lacomparte님의 답변

thumb-2040835312_1524729236.7042_730x825.png

 

thumb-2040835312_1524729273.8827_730x617.png

 

콘솔에러는 파비콘에러라 무시하시면됩니다.

코드는

itemqaawform.php 에는

if ($w == "u") { 
    $originalQuestion = '<br><br>'
        .get_view_thumbnail($iq['iq_answer'])
        .'<article>'
        .'------------------------------------ 문의내용 ------------------------------------'
        .'<br>'
        .'제목 : '
        .$iq['iq_subject']
        .'<br>'
        .get_view_thumbnail($iq['iq_question'])
        .'</article>';
}
$is_dhtml_editor = false;
// 모바일에서는 DHTML 에디터 사용불가
if ($config['cf_editor'] && (!is_mobile() || defined('G5_IS_MOBILE_DHTML_USE') && G5_IS_MOBILE_DHTML_USE)) {
    $is_dhtml_editor = true;
}
$editor_html = editor_html('iq_answer', get_text($originalQuestion, 1), $is_dhtml_editor);
$editor_js = '';
$editor_js .= get_editor_js('iq_answer', $is_dhtml_editor);
$editor_js .= chk_editor_js('iq_answer', $is_dhtml_editor);

 

 

itemqaawformupdate.php에는

echo "iq_answer <br>";
echo $iq_answer;
echo "<br>***************************************************************************************<br>";
$iq_answer2 = preg_replace('#<article>(.*?)</article>#','',$iq_answer);
echo "iq_answer2 <br>";
echo $iq_answer2;
주소복사
답변의 댓글

Policia님의 답변

ㅎㅎ답을 찾아왔습니다 아니 만들었습니다

 

preg_replace에 패턴을 !<article(.*?)<\/article>!is 이렇게 주십시오

 

그럼 정상작동합니다

 

어고 에디터 부터물어볼껄그랬어요 ㅋㅋ

주소복사
답변의 댓글
lacomparte님의 댓글
와 ㅋㅋㅋ
대박입니다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
정규식은 정말 어렵군요.........


근데 혹시
상품문의 답변을 하게되면 메일로 날라가자나요.
이때 에디터로 첨부한 이미지가 메일에서 보면
url 값이 <img src="%5/"> 이렇게 되버리는데
이것도 이유를 아시나요!?


근데 문의글에서 에디터로 첨부하면
메일에서도 출력이 잘됩니다.

또 답변에서 에디터로 첨부한 이미지가
메일에서만 url 이 저렇게 변하는데..-_-;;;;;;
view페이지에서 출력은 잘됩니다.
답변을 작성하시기 전에 로그인 해주세요.
전체 73,521 | RSS
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색

회원로그인

(주)에스아이알소프트 (06253) 서울특별시 강남구 도곡로1길 14, 6층 624호 (역삼동, 삼일프라자) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT