public function step4() { if (session('step') !== '3') { $this->error('请按顺序安装', U('step3')); } session('step', '4'); session('error', false); $this->assign('meta_title', "step4"); $this->display(); //连接数据库 $db_config = session('db_config'); $db_instance = Db::getInstance($db_config); //创建数据表 create_tables($db_instance, $db_config['DB_PREFIX']); //生成加密字符串 $add_chars .= '`~!@#$%^&*()_+-=[]{};:"|,.<>/?'; $auth = Str::randString(64, '', $add_chars); //生成随机数 //创建配置文件 $conf = write_config($db_config, $auth); //根据加密字符串更新admin密码的加密结果 $new_admin_password = user_md5('admin', $auth); $sql = <<<SQL UPDATE `{$db_config["DB_PREFIX"]}admin_config` SET `value`='{$auth}' WHERE `name` = 'AUTH_KEY'; UPDATE `{$db_config["DB_PREFIX"]}admin_user` SET `password`='{$new_admin_password}' WHERE `id` = 1; SQL; $result = $db_instance->execute($sql); if (!$result) { $this->error('写入系统加密KEY或管理员新密码出错!'); } if (session('error')) { $this->error('安装出错', 'index'); } else { $this->redirect('complete'); } }