Changeset 20687


Ignore:
Timestamp:
2011/03/17 19:50:04 (10 years ago)
Author:
kotani
Message:

#974 [管理画面]システム設定 バックアップのリファクタリング

  • ファイルポインタを確認しないままループさせているため無限ループする不具合を改修
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Bkup.php

    r20562 r20687  
    438438 
    439439        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    440         $csv_data = ""; 
    441440        $success = true; 
    442441 
    443         //$bkup_dir = $bkup_dir . $bkup_name . "/"; 
    444  
    445         //バックアップフォルダに移動する 
    446         chdir($bkup_dir); 
    447  
    448442        //圧縮フラグTRUEはgzip解凍をおこなう 
    449         $tar = new Archive_Tar($bkup_name . $bkup_ext, TRUE); 
    450  
     443        $tar = new Archive_Tar($bkup_dir . $bkup_name . $bkup_ext, TRUE); 
     444         
    451445        //指定されたフォルダ内に解凍する 
    452         $success = $tar->extract("./"); 
    453  
    454         //バックアップフォルダに移動する 
    455         chdir($bkup_dir . $bkup_name . "/"); 
     446        $success = $tar->extract($bkup_dir); 
    456447 
    457448        // 無事解凍できれば、リストアを行う 
     
    465456 
    466457            // INSERT実行 
    467             if ($success) $success = $this->lfExeInsertSQL($objQuery, $bkup_dir . "bkup_data.csv", $mode); 
     458            if ($success) $success = $this->lfExeInsertSQL($objQuery, $bkup_dir . $bkup_name . "/bkup_data.csv", $mode); 
    468459 
    469460            // 自動採番の値をセット 
     
    505496        // csvファイルからデータの取得 
    506497        $fp = fopen($csv, 'r'); 
     498        if($fp === false) { 
     499            SC_Utils_Ex::sfDispException($csv . ' のファイルオープンに失敗しました。'); 
     500        } 
     501         
    507502        while (!feof($fp)) { 
    508503            $data = fgetcsv($fp, 1000000); 
     
    534529            if (!$col_flg) { 
    535530                if ($mode != "restore_config"){ 
    536                     for($i = 0; $i < count($data)-1; $i++){ 
     531                    for($i = 0; $i < count($data); $i++){ 
    537532                        $arrCol[$i] = $data[$i]; 
    538533                    } 
     
    542537            } 
    543538 
    544             for($i = 0; $i < count($data)-1; $i++) { 
    545                 $arrVal[$arrCol[$i]] = $data[$i]; 
     539            for($i = 0; $i < count($data); $i++) { 
     540                if($arrCol[$i] != '') { 
     541                    $arrVal[$arrCol[$i]] = $data[$i]; 
     542                } 
    546543            } 
    547544 
Note: See TracChangeset for help on using the changeset viewer.