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

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

QA

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

본문

https://sir.kr/g5_convert/9 를 적용해봤습니다.

 

 

 

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

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

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

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

 

xe_document_convert.php


<?php
$g5['title'] = "XE 게시판 자료 이전";
include_once("_head.php");
?>
<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; }
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>
<div id="title">XE 게시글 이전</div>
<div id="description">
제작자의 환경에 맞춰진 이전 프로그램입니다.<br>
타 서버에서 사용시 불안정 할 수 있습니다.
</div>
<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>
<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");
?>

 

xe_document_convert_update.php


<?php
$g5['title'] = "XE 게시판 자료 이전";
include_once("_head.php");
include_once("convert.write.lib.php");
$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));
$bo_table = $_POST['g5_write_table'];
$write_table = $g5['write_prefix'].$bo_table;
$wr_num = get_next_num($write_table);
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]");
    
}
sql_query("update $g5[board_table] set bo_count_write = bo_count_write + $document_cnt where bo_table = '$bo_table'");
echo "게시글 복사 완료      $document_cnt" ."<br>";

include_once("_tail.php");
?>

 

convert.write.lib.php


<?
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();
    // 부모 아이디에 UPDATE
    sql_query(" update $write_table set wr_parent = '$wr_id' where wr_id = '$wr_id' ");
    // 새글 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' ) ");
    // 포인트 증가
    //insert_point($member[mb_id], "300", $wr_name . " 자동올리기");
    // 코멘트 복사
    $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]");
    }
    // 첨부파일 복사
    $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);
        }
    }

}
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);
}
?>

 

이 질문에 댓글 쓰기 :

답변 1

xe_document_convert_update.php 파일 11라인 다음에

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

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

 

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

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

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

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

답변을 작성하시기 전에 로그인 해주세요.
전체 123,658 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT