function changeMain($hako, $data) { global $init; $log = new Log(); $id = $data['ISLANDID']; $num = $hako->idToNumber[$id]; $island = $hako->islands[$num]; $name = $island['name']; $flag = 0; // パスワードチェック if (Util::checkSpecialPassword($data['OLDPASS'])) { // 特殊パスワード if (preg_match("/^無人\$/", $data['ISLANDNAME'])) { // 島の強制削除 $this->deleteIsland($hako, $data); Success::deleteIsland($name); return; } else { $island['money'] = $init->maxMoney; $island['food'] = $init->maxFood; } } elseif (!Util::checkPassword($island['password'], $data['OLDPASS'])) { // password間違い HakoError::wrongPassword(); return; } // 確認用パスワード if (strcmp($data['PASSWORD'], $data['PASSWORD2']) != 0) { // password間違い HakoError::wrongPassword(); return; } if (!empty($data['ISLANDNAME']) && strlen($data['ISLANDNAME']) != 0) { // 名前変更の場合 // 名前が正当かチェック if (preg_match("/[,?()<>\$]/", $data['ISLANDNAME']) || strcmp($data['ISLANDNAME'], "無人") == 0) { HakoError::newIslandBadName(); return; } // 名前の重複チェック if (Util::nameToNumber($hako, $data['ISLANDNAME']) != -1) { HakoError::newIslandAlready(); return; } if ($island['money'] < $init->costChangeName) { // 金が足りない HakoError::changeNoMoney(); return; } // 代金 if (!Util::checkSpecialPassword($data['OLDPASS'])) { $island['money'] -= $init->costChangeName; } // 名前を変更 $log->changeName($island['name'], $data['ISLANDNAME']); $island['name'] = $data['ISLANDNAME']; $flag = 1; } // password変更の場合 if (!empty($data['PASSWORD'])) { // パスワードを変更 $island['password'] = Util::encode($data['PASSWORD']); $flag = 1; } //if(($flag == 0) && (strcmp($data['PASSWORD'], $data['PASSWORD2']) != 0)) { if ($flag == 0) { // どちらも変更されていない HakoError::changeNothing(); return; } $hako->islands[$num] = $island; // データ書き出し $hako->writeIslandsFile($id); // 変更成功 Success::change(); }