/** * 处理提交的安装表单 * * @return void */ public function doAction() { $installModel = new InstallModel($this); $errArr = array(); $installStep = 0; if ($installModel->hasInstalled()) { $installStep = 3; $this->showInstallForm($installStep, $errArr); return; } if (!$installModel->statReady()) { $errArr[] = $installModel->getErrMsg(); } // 检测post提交的数据 $user = new UserModel($this); $postData = new DataMap($_POST); $username = $postData->get('username', ''); $nickname = $postData->get('nickname', ''); $email = $postData->get('email', ''); if (!$user->isUsername($username)) { $errArr[] = $user->getErrMsg(); } if (!$user->isNickname($nickname)) { $errArr[] = $user->getErrMsg(); } if (!$user->isEmail($email)) { $errArr[] = $user->getErrMsg(); } $pass1 = $postData->get('pass1', ''); $pass2 = $postData->get('pass2', ''); if ($pass1 != $pass2) { $errArr[] = '两次输入的密码不一致'; } if (!$user->isPass($pass1)) { $errArr[] = $user->getErrMsg(); } if (!empty($errArr)) { $installStep = 1; $this->showInstallForm($installStep, $errArr); return; } // 执行安装操作 $installModel->initDb(); // 添加管理员账号 $uid = $user->addAccount($username, $nickname, $pass1, $email); if ($uid == -1) { $installStep = 1; $this->showInstallForm($installStep, array('添加用户账号失败')); return; } // 添加管理员权限 $user->addSuperAdmin($uid); $installStep = 2; $this->showInstallForm($installStep, array()); }