Changeset 20356
- Timestamp:
- 2011/02/23 21:28:01 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_AdminArea.php
r20345 r20356 50 50 $this->tpl_subtitle = '管理画面設定'; 51 51 $this->tpl_enable_ssl = FALSE; 52 if(strpos(HTTPS_URL,"https://") !== FALSE){53 $this->tpl_enable_ssl = TRUE;54 }55 52 } 56 53 … … 71 68 */ 72 69 function action() { 73 if(count($_POST) >= 1 ) { 74 // POSTデータの引き継ぎ 75 $this->arrForm = $_POST; 76 77 // 入力データの変換 78 $this->arrForm = $this->lfConvertParam($this->arrForm); 79 // 入力データのエラーチェック 80 $this->arrErr = $this->lfErrorCheck($this->arrForm); 70 71 72 if(strpos(HTTPS_URL,"https://") !== FALSE){ 73 $this->tpl_enable_ssl = TRUE; 74 } 75 76 $objFormParam = new SC_FormParam; 77 78 // パラメータの初期化 79 $this->initParam($objFormParam, $_POST); 80 81 if(count($_POST) > 0 ) { 82 83 // エラーチェック 84 $arrErr = $objFormParam->checkError(); 85 86 $this->arrForm = $objFormParam->getHashArray(); 87 81 88 //設定ファイルの権限チェック 82 89 if(!is_writable(CONFIG_REALFILE)){ 83 $this->arrErr["all"] = CONFIG_REALFILE . ' を変更する権限がありません。'; 84 } 90 $arrErr["all"] = CONFIG_REALFILE . ' を変更する権限がありません。'; 91 } 92 85 93 //管理画面ディレクトリのチェック 86 $this->lfCheckAdminArea($this->arrForm );87 88 if( count($this->arrErr) == 0) {94 $this->lfCheckAdminArea($this->arrForm, $arrErr); 95 96 if(SC_Utils_Ex::isBlank($arrErr)) { 89 97 $this->lfUpdateAdminData($this->arrForm); // 既存編集 90 98 $this->tpl_onload = "window.alert('管理機能の設定を変更しました。URLを変更した場合は、新しいURLにアクセスしてください。');"; 91 99 }else{ 92 $this->tpl_onload = "window.alert('設定内容に誤りがあります。設定内容を確認してください。');"; 93 } 100 $this->tpl_onload = "window.alert('設定内容に誤りがあります。設定内容を確認してください。');"; 101 $this->arrErr = $arrErr; 102 } 103 94 104 } else { 105 95 106 $admin_dir = str_replace("/","",ADMIN_DIR); 96 107 $this->arrForm = array("admin_dir"=>$admin_dir,"admin_force_ssl"=>ADMIN_FORCE_SSL,"admin_allow_hosts"=>""); … … 98 109 $allow_hosts = unserialize(ADMIN_ALLOW_HOSTS); 99 110 $this->arrForm["admin_allow_hosts"] = implode("\n",$allow_hosts); 111 100 112 } 101 113 } … … 110 122 parent::destroy(); 111 123 } 112 113 114 115 //管理機能ディレクトリのチェック 116 function lfCheckAdminArea($array){ 117 $admin_dir = trim($array['admin_dir'])."/"; 124 125 126 /** 127 * パラメータ初期化. 128 * 129 * @param object $objFormParam 130 * @param array $arrParams $_POST値 131 * @return void 132 */ 133 function initParam(&$objFormParam, &$arrParams) { 134 135 $objFormParam->addParam('ディレクトリ名', 'admin_dir', ID_MAX_LEN, 'a', array('EXIST_CHECK', 'SPTAB_CHECK', 'ALNUM_CHECK')); 136 $objFormParam->addParam('SSL制限', 'admin_force_ssl', 1, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 137 $objFormParam->addParam('IP制限', 'admin_allow_hosts', LTEXT_LEN, 'a', array('IP_CHECK', 'MAX_LENGTH_CHECK')); 138 $objFormParam->setParam($arrParams); 139 $objFormParam->convParam(); 140 141 } 142 143 144 /** 145 * 管理機能ディレクトリのチェック. 146 * 147 * @param array $arrForm $this->arrForm値 148 * @param array $arrErr エラーがあった項目用配列 149 * @return void 150 */ 151 function lfCheckAdminArea(&$arrForm, &$arrErr){ 152 $admin_dir = trim($arrForm['admin_dir'])."/"; 118 153 119 154 $installData = file(CONFIG_REALFILE, FILE_IGNORE_NEW_LINES); … … 122 157 //既存ディレクトリのチェック 123 158 if(file_exists(HTML_REALDIR.$admin_dir) and $admin_dir != "admin/"){ 124 $ this->arrErr["admin_dir"] .= ROOT_URLPATH.$admin_dir."は既に存在しています。別のディレクトリ名を指定してください。";159 $arrErr["admin_dir"] .= ROOT_URLPATH.$admin_dir."は既に存在しています。別のディレクトリ名を指定してください。"; 125 160 } 126 161 //権限チェック 127 162 if(!is_writable(HTML_REALDIR . ADMIN_DIR)){ 128 $ this->arrErr["admin_dir"] .= ROOT_URLPATH.ADMIN_DIR."のディレクトリ名を変更する権限がありません。";163 $arrErr["admin_dir"] .= ROOT_URLPATH.ADMIN_DIR."のディレクトリ名を変更する権限がありません。"; 129 164 } 130 165 } … … 134 169 135 170 //管理機能ディレクトリのリネームと CONFIG_REALFILE の変更 136 function lfUpdateAdminData( $array){137 $admin_dir = trim($arr ay['admin_dir'])."/";171 function lfUpdateAdminData(&$arrForm){ 172 $admin_dir = trim($arrForm['admin_dir'])."/"; 138 173 $admin_force_ssl = "FALSE"; 139 if($arr ay['admin_force_ssl'] == 1){174 if($arrForm['admin_force_ssl'] == 1){ 140 175 $admin_force_ssl = "TRUE"; 141 176 } 142 $admin_allow_hosts = explode("\n",$arr ay['admin_allow_hosts']);177 $admin_allow_hosts = explode("\n",$arrForm['admin_allow_hosts']); 143 178 foreach($admin_allow_hosts as $key=>$host){ 144 179 $host = trim($host); … … 181 216 return true; 182 217 } 183 184 /* 取得文字列の変換 */185 function lfConvertParam($array) {186 /*187 * 文字列の変換188 * K : 「半角(ハンカク)片仮名」を「全角片仮名」に変換189 * C : 「全角ひら仮名」を「全角かた仮名」に変換190 * V : 濁点付きの文字を一文字に変換。"K","H"と共に使用します191 * n : 「全角」数字を「半角(ハンカク)」に変換192 * a : 全角英数字を半角英数字に変換する193 */194 $arrConvList = array('admin_dir'=>"a",'admin_force_ssl' => "n",'admin_allow_hosts' => "a");195 return SC_Utils_Ex::mbConvertKanaWithArray($array, $arrConvList);196 }197 198 // 入力エラーチェック199 function lfErrorCheck($array) {200 $objErr = new SC_CheckError($array);201 202 //管理機能設定チェック203 $objErr->doFunc(array('ディレクトリ名', "admin_dir", ID_MAX_LEN) ,array("EXIST_CHECK","SPTAB_CHECK", "ALNUM_CHECK"));204 $objErr->doFunc(array('SSL制限', "admin_force_ssl", 1) ,array("NUM_CHECK", "MAX_LENGTH_CHECK"));205 $objErr->doFunc(array('IP制限', "admin_allow_hosts", LTEXT_LEN) ,array("IP_CHECK", "MAX_LENGTH_CHECK"));206 return $objErr->arrErr;207 }208 218 } 209 219 ?>
Note: See TracChangeset
for help on using the changeset viewer.