示例#1
0
 private function tryProcessPostData($postData)
 {
     $reqfields = array('server', 'port', 'username', 'password', 'dbname', 'adminpath', 'requrlkey');
     if (!$postData->hasValues($reqfields)) {
         $this->errorMessage = 'Please specify at least:
                                <ul>
                                  <li>MySQL host, port, username, password and database name</li>
                                  <li>WebUI path</li>
                                  <li>Secret .htaccess key</li>
                                </ul>';
         return;
     }
     $fields = $reqfields;
     $fields[] = 'tblprefix';
     extract($postData->filter($fields));
     $result = DatabaseConnection::test($server, $port, $dbname, $username, $password);
     if ($result !== true) {
         $this->errorMessage = 'Unable to connect to database:
                                <pre>' . WebRenderer::escapeHtml($result->getMessage()) . '</pre>';
         return;
     }
     $result = Installer::testRequiredPermissions();
     if (!$result) {
         $this->errorMessage = 'Insufficient file system permissions';
         return;
     }
     $htaccessCode = Installer::createHtaccessCode($requrlkey);
     Installer::saveHtaccessFile($htaccessCode);
     $configCode = Installer::createConfigCode($server, $port, $username, $password, $dbname, $tblprefix, $adminpath, $requrlkey);
     Installer::saveConfigFile($configCode);
     define('TI_ADMIN_PATH', $adminpath);
     define('TI_URLBASEPATH', $urlbasepath);
     define('TI_ROUTING_ENABLED', true);
     $this->redirectTo('installation', 'database');
     exit;
 }