테스트 사이트 - 개발 중인 베타 버전입니다

XE 게시판글들을 그누보드5 게시판으로 이전관련 채택완료

망이망소이 7년 전 조회 2,455

https://sir.kr/g5_convert/9" target="_blank">https://sir.kr/g5_convert/9 를 적용해봤습니다.

 

 

 

아래 xe_document_convert.php 파일을 브라우저에서 실행하면

화면상에 실제 XE게시판명과 글수는 불러와지는데

XE디비명,XE module_srl,대상게시판명 쓰고 실제 변환버튼을 누르면

결과는 안됩니다. 어디가 문제일지 좀 짚어주세요~^^

 

xe_document_convert.php

</p>

<p><?php

$g5['title'] = "XE 게시판 자료 이전";

include_once("_head.php");

?></p>

<p><style type="text/css">

#title { font-weight:bold; font-size:16px; border-bottom:1px solid #D9D9D9; padding:0 0 10px 0; }

#description { margin:5px 0 20px 0; color:#6F6F6F; letter-spacing:-1px; line-height: 20px; }</p>

<p>table {border-top: 1px solid #D0D0D0; border-bottom: 1px solid #D0D0D0;}

table .title {padding-left:10px;color:#585858;font-weight:bold;height:50px;background-color:#F7F7F7;}

table td:nth-child(2) {padding-left:20px;}

table td input[type="text"],input[type="password"] {height:30px;width:250px;padding:0 10px;}

table td.submit {}

</style></p>

<p><div id="title">XE 게시글 이전</div>

<div id="description">

제작자의 환경에 맞춰진 이전 프로그램입니다.


타 서버에서 사용시 불안정 할 수 있습니다.

</div></p>

<p><form action="<?php echo G5_URL;?>/page/xe_document_convert_update.php" method="POST">

<table width="100%" cellpadding=0 cellspacing=0 border=0>

<tr>

  <td width="150" class="title">XE DB명</td>

  <td valign="middle"><input type="text" name="xe_db"></td>

</tr>

<tr>

  <td width="150" class="title">XE module_srl</td>

  <td valign="middle"><input type="text" name="xe_module_srl"></td>

</tr>

<tr>

  <td width="150" class="title">그누보드5 게시판 테이블(g5_write_ 제외)</td>

  <td valign="middle"><input type="text" name="g5_write_table"></td>

</tr>

<tr>

  <td width="100%" colspan="2" class="submit">

    <input type="submit" value="전송">

  </td>

</tr>

</table>

</form></p>

<p><div id="title" style="margin-top:10px;border:0;">XE 게시판 모듈 리스트(module = board)</div>

<table width="100%" cellpadding=0 cellspacing=0 border=0>

<tr>

  <td width="150" class="title" height="30">module_srl (게시글 수)</td>

  <td valign="middle">게시판 이름</td>

</tr>

<?php

$sql = " SELECT * FROM `xe_modules` where module = 'board' ";

$qry = sql_query($sql);

for($i=0; $row=sql_fetch_array($qry);$i++){

$sql_cn = " SELECT * FROM xe_documents where module_srl = {$row[module_srl]}  ";

$re_cn = sql_num_rows(sql_query($sql_cn));

?>

<tr>

  <td width="150" class="title" height="30"><?php echo $row[module_srl];?> (<?php echo $re_cn; ?>)</td>

  <td valign="middle"><?php echo $row[browser_title];?></td>

</tr>

<?php } ?>

</table>

<?php

include_once("_tail.php");

?></p>

<p>

 

xe_document_convert_update.php

</p>

<p><?php

$g5['title'] = "XE 게시판 자료 이전";

include_once("_head.php");

include_once("convert.write.lib.php");</p>

<p>$sql = "SELECT * FROM {$_POST['xe_db']}_documents where module_srl = {$_POST['xe_module_srl']}";

$qry = sql_query($sql);

$document_cnt = sql_num_rows(sql_query($sql));</p>

<p>$bo_table = $_POST['g5_write_table'];

$write_table = $g5['write_prefix'].$bo_table;

$wr_num = get_next_num($write_table);</p>

<p>for($i=0;$row=sql_fetch_array($qry);$i++){

    $wr_num = get_next_num($write_table);

    

    $time = $row[last_update];

    $Y = substr($time,0,4);

    $m = substr($time,4,2);

    $d = substr($time,6,2);

    $H = substr($time,8,2);

    $i = substr($time,10,2);

    $s = substr($time,12,2);

    $wr_time = $Y."-".$m."-".$d." ".$H.":".$i.":".$s;

    

    if($row[category_srl]){

        $sql_ca = " SELECT * FROM {$_POST['xe_db']}_document_categories where module_srl = {$_POST['xe_module_srl']} and category_srl = '$row[category_srl]' ";

        $row_ca = sql_fetch($sql_ca);

    } else {

        $row_ca[title] = "";    

    }

    board_write($wr_num, "$bo_table", "$row[title]", "$row[content]", "$row[nick_name]", "$row[user_id]", "$wr_time", "$row[comment_count]", "$row[document_srl]", "$row_ca[title]");

    

}</p>

<p>sql_query("update $g5[board_table] set bo_count_write = bo_count_write + $document_cnt where bo_table = '$bo_table'");

echo "게시글 복사 완료      $document_cnt" ."
";</p>

<p>

include_once("_tail.php");

?></p>

<p>

 

convert.write.lib.php

</p>

<p><?

function board_write($wr_num, $bo_table, $wr_subject, $wr_content, $wr_name, $wr_user_id, $wr_time, $wr_comment, $wr_document_srl, $wr_ca_name="") {

    global $g5, $member;

    

    $write_table = $g5['write_prefix'] . "$bo_table";

    $html = "html1";

    $g5_time = G5_TIME_YMDHIS;

        

    $sql = " insert into $write_table

                set wr_num = '$wr_num',

                    wr_comment = '$wr_comment',

                    ca_name = '$wr_ca_name',

                    wr_option = '$html',

                    wr_subject = '$wr_subject',

                    wr_content = '".addslashes($wr_content)."',

                    wr_link1_hit = 0,

                    wr_link2_hit = 0,

                    wr_hit = 0,

                    wr_good = 0,

                    wr_nogood = 0,

                    mb_id = '$wr_user_id',

                    wr_password = '',

                    wr_name = '$wr_name',

                    wr_datetime = '$wr_time',

                    wr_last = '$wr_time',

                    wr_ip = '$_SERVER[REMOTE_ADDR]' ";

    $result = sql_query($sql);

    $wr_id = sql_insert_id();</p>

<p>    // 부모 아이디에 UPDATE

    sql_query(" update $write_table set wr_parent = '$wr_id' where wr_id = '$wr_id' ");</p>

<p>    // 새글 INSERT

    sql_query(" insert into $g5[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '$bo_table', '$wr_id', '$wr_id', '$wr_time', '$wr_user_id' ) ");</p>

<p>    // 포인트 증가

    //insert_point($member[mb_id], "300", $wr_name . " 자동올리기");</p>

<p>    // 코멘트 복사

    $sql2 = "SELECT * FROM {$_POST['xe_db']}_comments where document_srl = '$wr_document_srl' ";

    $qry2 = sql_query($sql2);

    

    for($c=0;$c=$com=sql_fetch_array($qry2);$c++){

        $time = $com[last_update];

        $Y = substr($time,0,4);

        $m = substr($time,4,2);

        $d = substr($time,6,2);

        $H = substr($time,8,2);

        $i = substr($time,10,2);

        $s = substr($time,12,2);

        

        $wr_time = $Y."-".$m."-".$d." ".$H.":".$i.":".$s;

        comment_write($wr_num, "$bo_table", "$com[content]", "$com[nick_name]", "$com[user_id]", "$wr_time", $wr_id, "$com[ipaddress]");

    }</p>

<p>    // 첨부파일 복사

    $file_sql = " SELECT * FROM {$_POST['xe_db']}_files where upload_target_srl = '$wr_document_srl' and module_srl = {$_POST['xe_module_srl']} ";

    $file_qry = sql_query($file_sql);

    

    if(sql_num_rows($file_qry) > 0) {

        // 첨부파일이 있는경우 G5 디렉토리에 복사

        for($f=0;$file_row=sql_fetch_array($file_qry);$f++){

            $file_time = $file_row[regdate];

            $Y = substr($file_time,0,4);

            $m = substr($file_time,4,2);

            $d = substr($file_time,6,2);

            $H = substr($file_time,8,2);

            $i = substr($file_time,10,2);

            $s = substr($file_time,12,2);

            $file_time = $Y."-".$m."-".$d." ".$H.":".$i.":".$s;

            

            $only_file_name = $file_row[uploaded_filename];

            $only_file_name = explode("/",$only_file_name);

            $only_file_name = $only_file_name[count($only_file_name)-1];

            copy("../."."$file_row[uploaded_filename]","../data/file/".$bo_table."/".$only_file_name);

            

            $file_in_sql = "

            insert into $g5[board_file_table]

                set bo_table = '$bo_table',

                    wr_id = '$wr_id',

                    bf_no = '$f',

                    bf_source = '$file_row[source_filename]',

                    bf_file = '$only_file_name',

                    bf_download = '$file_row[download_count]',

                    bf_content = '',

                    bf_filesize = '$file_row[file_size]',

                    bf_datetime = '$file_time'

            ";    

            sql_query($file_in_sql);

            $sql_update = " update `$write_table` set wr_file = wr_file + 1 where wr_id = $wr_id ";

            sql_query($sql_update);

        }

    }</p>

<p>

}</p>

<p>function comment_write($wr_num, $bo_table, $wr_content, $wr_name, $wr_user_id, $wr_time, $wr_id, $wr_ip) {

    global $g5, $member;

    

    $write_table = $g5['write_prefix'] . "$bo_table";

    $wr_reply = "";

    $html = "html1";

    $wr_subject = $wr_subject;

    $wr_link1 = "";    

    $wr_password = $member[mb_password];    

    $g5_time = G5_TIME_YMDHIS;

        

    $sql_c = " insert into $write_table

                set wr_num = '$wr_num',

                    wr_reply = '$wr_reply',

                    ca_name = '$ca_name',

                    wr_is_comment = 1,

                    wr_parent = '$wr_id',

                    wr_option = '$html',

                    wr_subject = '$wr_subject',

                    wr_content = '$wr_content',

                    wr_link1 = '$wr_link1',

                    wr_link1_hit = 0,

                    wr_link2_hit = 0,

                    wr_hit = 0,

                    wr_good = 0,

                    wr_nogood = 0,

                    mb_id = '$wr_user_id',

                    wr_password = '',

                    wr_name = '$wr_name',

                    wr_datetime = '$wr_time',

                    wr_last = '$wr_time',

                    wr_ip = '$wr_ip' ";

    sql_query($sql_c);

}

?></p>

<p>

 

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
7년 전

xe_document_convert_update.php 파일 11라인 다음에

var_dump($row); 찍어보세요~ 위 코드만 보고 알기는 어렵네요..

(그런데 _common.php 파일은 어디서 불러오나요?)

 

그리고.. 개인적으로 board_write 처럼 함수 만들어서 하는 것보다 인라인으로 집어넣고

$result = sql_query($sql); 위쪽에

echo $sql; exit; 형식으로 sql구문이 정상적인지 확인 먼저 하는게 저는 편하더군요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

망이망소이
7년 전
답변갑사합니다. 주말지나고 봤습니다. ^^
_common.php는 동일한 곳에 있습니다. root에 common.php인쿠르드해서요.
알려주신대로 한번 해보고 답변남기겠습니다 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인