diff --git a/g4_import.php b/g4_import.php index d290d67cf..4d57e48cf 100644 --- a/g4_import.php +++ b/g4_import.php @@ -1,8 +1,10 @@ -
-

- 이 프로그램은 그누보드5 설치 후 바로 실행하셔야만 합니다.
- 만약 그누보드5 사이트를 운영 중에 이 프로그램을 실행하시면 DB 데이터가 망실되거나 데이터의 오류가 발생할 수 있습니다.
- 또한 중복해서 실행하실 경우에도 DB 데이터의 오류가 발생할 수 있으니 반드시 한번만 실행해 주십시오. -

-

프로그램을 실행하시려면 그누보드4의 config.php 파일 경로를 입력하신 후 확인을 클릭해 주십시오.

+ +
+

-
-
- - - + + +
+ + + +
+ 사이트 내 전체검색 + + + + + + + + + +
+ + + +
+ + + + +
- -

- 경로는 그누보드5 설치 루트를 기준으로 그누보드4의 config.php 파일의 상대경로입니다.
- 예를 들어 그누보드4를 웹루트에 설치하셨고 그누보드5를 g5라는 하위 폴더에 설치하셨다면 입력하실 경로는 ../config.php 입니다. -

+
+ +
+ + +
+ + +
+
+ +
+
+
+ +
+

+ 이 프로그램은 그누보드5 설치 후 바로 실행하셔야만 합니다.
+ 만약 그누보드5 사이트를 운영 중에 이 프로그램을 실행하시면 DB 데이터가 망실되거나 데이터의 오류가 발생할 수 있습니다.
+ 또한 중복해서 실행하실 경우에도 DB 데이터의 오류가 발생할 수 있으니 반드시 한번만 실행해 주십시오. +

+

프로그램을 실행하시려면 그누보드4의 config.php 파일 경로를 입력하신 후 확인을 클릭해 주십시오.

+ +
+
+ + + +
+
+ +

+ 경로는 그누보드5 설치 루트를 기준으로 그누보드4의 config.php 파일의 상대경로입니다.
+ 예를 들어 그누보드4를 웹루트에 설치하셨고 그누보드5를 g5라는 하위 폴더에 설치하셨다면 입력하실 경로는 ../config.php 입니다. +

+ +
+ + + +
+
+ + + +
+ + +
+
<?php echo G5_VERSION ?>
+
+

+ Copyright © 소유하신 도메인. All rights reserved.
+ 상단으로 +

+
\ No newline at end of file diff --git a/g4_import_run.php b/g4_import_run.php index c436e0698..f21ede9a6 100644 --- a/g4_import_run.php +++ b/g4_import_run.php @@ -1,11 +1,16 @@ '; @@ -56,347 +61,487 @@ document.onkeydown = noRefresh ; #g4_import_run #run_msg {padding:30px 0;text-align:center} -
-
    - +
    +

    -// g4의 confing.php -require($g4_config_file); + -if(preg_replace('/[^a-z]/', '', strtolower($g4['charset'])) == 'euckr') - $is_euckr = true; +
    -// member table 복사 -$columns = array(); -$fields = mysql_list_fields(G5_MYSQL_DB, $g5['member_table']); -$count = mysql_num_fields($fields); -for ($i = 0; $i < $count; $i++) { - $fld = mysql_field_name($fields, $i); - $columns[] = $fld; -} + -$sql = " select * from {$g4['member_table']} "; -$result = sql_query($sql); -for($i=0; $row=sql_fetch_array($result); $i++) { - if($is_euckr) - $row = array_map('iconv_utf8', $row); +
    + 사이트 내 전체검색 +
    + + + + + +
    - // 중복체크 - $sql2 = " select count(*) as cnt from {$g5['member_table']} where mb_id = '{$row['mb_id']}' "; - $row2 = sql_fetch($sql2); - if($row2['cnt']) - continue; + +
    - // 첨부파일개수 - $wr_id = $row3['wr_id']; - $sql4 = " select count(*) as cnt from {$g4['board_file_table']} where bo_table = '$bo_table' and wr_id = '$wr_id' "; - $row4 = sql_fetch($sql4); + - $sql_common3 .= " , wr_file = '{$row4['cnt']}' "; +
    + + + + +
    +
    - sql_query(" INSERT INTO $create_table SET $sql_common3 "); +
    + + +
    + + +
    + + +
    +
    + +
    +
    +
    + +
    +
      + '.str_replace(G5_TABLE_PREFIX.'write_', '', $create_table).' 게시글 복사'; - } -} + $sql = " select * from {$g4['member_table']} "; + $result = sql_query($sql); + for($i=0; $row=sql_fetch_array($result); $i++) { + if($is_euckr) + $row = array_map('iconv_utf8', $row); -unset($columns); -unset($fiels); - -// 그외 테이블 복사 -$tables = array('board_file', 'board_new', 'board_good', 'mail', 'memo', 'group_member', 'auth', 'popular', 'poll', 'poll_etc', 'scrap'); - -foreach($tables as $table) { - $columns = array(); - $fields = mysql_list_fields(G5_MYSQL_DB, $g5[$table.'_table']); - $count = mysql_num_fields($fields); - for ($i = 0; $i < $count; $i++) { - $fld = mysql_field_name($fields, $i); - $columns[] = $fld; - } - - $src_table = $g4[$table.'_table']; - $dst_table = $g5[$table.'_table']; - $sql = " select * from $src_table "; - $result = sql_query($sql); - for($i=0; $row=sql_fetch_array($result); $i++) { - if($is_euckr) - $row = array_map('iconv_utf8', $row); - - $comma = ''; - $sql_common = ''; - - foreach($row as $key=>$val) { - if(!in_array($key, $columns)) + // 중복체크 + $sql2 = " select count(*) as cnt from {$g5['member_table']} where mb_id = '{$row['mb_id']}' "; + $row2 = sql_fetch($sql2); + if($row2['cnt']) continue; - $sql_common .= $comma . " $key = '".addslashes($val)."' "; + $comma = ''; + $sql_common = ''; - $comma = ','; + foreach($row as $key=>$val) { + if($key == 'mb_no') + continue; + + if(!in_array($key, $columns)) + continue; + + $sql_common .= $comma . " $key = '".addslashes($val)."' "; + + $comma = ','; + } + + sql_query(" INSERT INTO {$g5['member_table']} SET $sql_common "); } - $result2 = sql_query(" INSERT INTO $dst_table SET $sql_common ", false); + echo '
    1. member table 복사
    2. '.PHP_EOL; + unset($columns); + unset($fiels); - if(!$result2) - continue; - } + // point table 복사 + $sql = " select * from {$g4['point_table']} "; + $result = sql_query($sql); + for($i=0; $row=sql_fetch_array($result); $i++) { + if($is_euckr) + $row = array_map('iconv_utf8', $row); - echo '
    3. '.$table.' table 복사
    4. '.PHP_EOL; -} + $comma = ''; + $sql_common = ''; -unset($columns); -unset($fiels); + foreach($row as $key=>$val) { + if($key == 'po_id') + continue; -echo '
    '.PHP_EOL; + $sql_common .= $comma . " $key = '".addslashes($val)."' "; -echo '
    그누보드4 DB 데이터 이전 완료
    '.PHP_EOL; + $comma = ','; + } -// 실행완료 세션에 기록 -set_session('tables_copied', 'done'); -?> + sql_query(" INSERT INTO {$g5['point_table']} SET $sql_common "); + } + echo '
  1. point table 복사
  2. '.PHP_EOL; + + // login table 복사 + $sql = " select * from {$g4['login_table']} "; + $result = sql_query($sql); + for($i=0; $row=sql_fetch_array($result); $i++) { + if($is_euckr) + $row = array_map('iconv_utf8', $row); + + // 중복체크 + $sql2 = " select count(*) as cnt from {$g5['login_table']} where lo_ip = '{$row['lo_ip']}' "; + $row2 = sql_fetch($sql2); + if($row2['cnt']) + continue; + + $comma = ''; + $sql_common = ''; + + foreach($row as $key=>$val) { + $sql_common .= $comma . " $key = '".addslashes($val)."' "; + + $comma = ','; + } + + sql_query(" INSERT INTO {$g5['login_table']} SET $sql_common "); + } + echo '
  3. login table 복사
  4. '.PHP_EOL; + + // visit table 복사 + $sql = " select * from {$g4['visit_table']} "; + $result = sql_query($sql); + for($i=0; $row=sql_fetch_array($result); $i++) { + if($is_euckr) + $row = array_map('iconv_utf8', $row); + + // 중복체크 + $sql2 = " select count(*) as cnt from {$g5['visit_table']} where vi_ip = '{$row['vi_ip']}' and vi_date = '{$row['vi_date']}' "; + $row2 = sql_fetch($sql2); + if($row2['cnt']) + continue; + + $comma = ''; + $sql_common = ''; + + foreach($row as $key=>$val) { + $sql_common .= $comma . " $key = '".addslashes($val)."' "; + + $comma = ','; + } + + sql_query(" INSERT INTO {$g5['visit_table']} SET $sql_common "); + } + echo '
  5. visit table 복사
  6. '.PHP_EOL; + + // visit sum table 복사 + $sql = " select * from {$g4['visit_sum_table']} "; + $result = sql_query($sql); + for($i=0; $row=sql_fetch_array($result); $i++) { + if($is_euckr) + $row = array_map('iconv_utf8', $row); + + // 중복체크 + $sql2 = " select count(*) as cnt from {$g5['visit_sum_table']} where vs_date = '{$row['vs_date']}' "; + $row2 = sql_fetch($sql2); + if($row2['cnt']) + continue; + + $comma = ''; + $sql_common = ''; + + foreach($row as $key=>$val) { + $sql_common .= $comma . " $key = '".addslashes($val)."' "; + + $comma = ','; + } + + sql_query(" INSERT INTO {$g5['visit_sum_table']} SET $sql_common "); + } + echo '
  7. visit sum table 복사
  8. '.PHP_EOL; + + // group table 복사 + $columns = array(); + $fields = mysql_list_fields(G5_MYSQL_DB, $g5['group_table']); + $count = mysql_num_fields($fields); + for ($i = 0; $i < $count; $i++) { + $fld = mysql_field_name($fields, $i); + $columns[] = $fld; + } + + $sql = " select * from {$g4['group_table']} "; + $result = sql_query($sql); + for($i=0; $row=sql_fetch_array($result); $i++) { + if($is_euckr) + $row = array_map('iconv_utf8', $row); + + // 중복체크 + $sql2 = " select count(*) as cnt from {$g5['group_table']} where gr_id = '{$row['gr_id']}' "; + $row2 = sql_fetch($sql2); + if($row2['cnt']) + continue; + + $comma = ''; + $sql_common = ''; + + foreach($row as $key=>$val) { + if(!in_array($key, $columns)) + continue; + + $sql_common .= $comma . " $key = '".addslashes($val)."' "; + + $comma = ','; + } + + sql_query(" INSERT INTO {$g5['group_table']} SET $sql_common "); + } + + echo '
  9. group table 복사
  10. '.PHP_EOL; + unset($columns); + unset($fiels); + + // board 복사 + $columns = array(); + $fields = mysql_list_fields(G5_MYSQL_DB, $g5['board_table']); + $count = mysql_num_fields($fields); + for ($i = 0; $i < $count; $i++) { + $fld = mysql_field_name($fields, $i); + $columns[] = $fld; + } + + $sql = " select * from {$g4['board_table']} "; + $result = sql_query($sql); + for($i=0; $row=sql_fetch_array($result); $i++) { + if($is_euckr) + $row = array_map('iconv_utf8', $row); + + // 중복체크 + $sql2 = " select count(*) as cnt from {$g5['board_table']} where bo_table = '{$row['bo_table']}' "; + $row2 = sql_fetch($sql2); + if($row2['cnt']) + continue; + + $comma = ''; + $sql_common = ''; + + foreach($row as $key=>$val) { + if(!in_array($key, $columns)) + continue; + + $sql_common .= $comma . " $key = '".addslashes($val)."' "; + + $comma = ','; + } + + sql_query(" INSERT INTO {$g5['board_table']} SET $sql_common "); + + // 게시판 테이블 생성 + $bo_table = $row['bo_table']; + $file = file(G5_ADMIN_PATH.'/sql_write.sql'); + $sql = implode($file, "\n"); + + $create_table = $g5['write_prefix'] . $bo_table; + + $source = array('/__TABLE_NAME__/', '/;/'); + $target = array($create_table, ''); + $sql = preg_replace($source, $target, $sql); + + // 게시글 복사 + if(sql_query($sql, FALSE)) { + $write_table = $g4['write_prefix'].$bo_table; + $columns2 = array(); + $fields2 = mysql_list_fields(G5_MYSQL_DB, $create_table); + $count2 = mysql_num_fields($fields2); + for ($j = 0; $j < $count2; $j++) { + $fld = mysql_field_name($fields2, $j); + $columns2[] = $fld; + } + + $sql3 = " select * from $write_table "; + $result3 = sql_query($sql3); + + for($k=0; $row3=sql_fetch_array($result3); $k++) { + if($is_euckr) + $row3 = array_map('iconv_utf8', $row3); + + $comma3 = ''; + $sql_common3 = ''; + + foreach($row3 as $key=>$val) { + if(!in_array($key, $columns2)) + continue; + + $sql_common3 .= $comma3 . " $key = '".addslashes($val)."' "; + + $comma3 = ','; + } + + // 첨부파일개수 + $wr_id = $row3['wr_id']; + $sql4 = " select count(*) as cnt from {$g4['board_file_table']} where bo_table = '$bo_table' and wr_id = '$wr_id' "; + $row4 = sql_fetch($sql4); + + $sql_common3 .= " , wr_file = '{$row4['cnt']}' "; + + sql_query(" INSERT INTO $create_table SET $sql_common3 "); + } + + echo '
  11. '.str_replace(G5_TABLE_PREFIX.'write_', '', $create_table).' 게시글 복사
  12. '; + } + } + + unset($columns); + unset($fiels); + + // 그외 테이블 복사 + $tables = array('board_file', 'board_new', 'board_good', 'mail', 'memo', 'group_member', 'auth', 'popular', 'poll', 'poll_etc', 'scrap'); + + foreach($tables as $table) { + $columns = array(); + $fields = mysql_list_fields(G5_MYSQL_DB, $g5[$table.'_table']); + $count = mysql_num_fields($fields); + for ($i = 0; $i < $count; $i++) { + $fld = mysql_field_name($fields, $i); + $columns[] = $fld; + } + + $src_table = $g4[$table.'_table']; + $dst_table = $g5[$table.'_table']; + $sql = " select * from $src_table "; + $result = sql_query($sql); + for($i=0; $row=sql_fetch_array($result); $i++) { + if($is_euckr) + $row = array_map('iconv_utf8', $row); + + $comma = ''; + $sql_common = ''; + + foreach($row as $key=>$val) { + if(!in_array($key, $columns)) + continue; + + $sql_common .= $comma . " $key = '".addslashes($val)."' "; + + $comma = ','; + } + + $result2 = sql_query(" INSERT INTO $dst_table SET $sql_common ", false); + + if(!$result2) + continue; + } + + echo '
  13. '.$table.' table 복사
  14. '.PHP_EOL; + } + + unset($columns); + unset($fiels); + + echo '
'.PHP_EOL; + + echo '
그누보드4 DB 데이터 이전 완료
'.PHP_EOL; + + // 실행완료 세션에 기록 + set_session('tables_copied', 'done'); + ?> +
+ +
+ + +
+ + +
+
<?php echo G5_VERSION ?>
+
+

+ Copyright © 소유하신 도메인. All rights reserved.
+ 상단으로 +

+
+
+ + + \ No newline at end of file