Example #1
0
 static function ValidateConfig()
 {
     $showConfig = true;
     if (self::$oConfig || $_POST) {
         // only validate config if there is a config to validate.
         $showConfig = false;
         foreach (self::$configVars as $key => $info) {
             $val = defined($key) ? constant($key) : null;
             if (empty($val)) {
                 self::$configVars[$key]['notice'] = "Must not be empty.";
             }
             if ($info['type'] & CFG_TYPE_PATH && !is_dir(PATH_ABS_ROOT . $val)) {
                 self::$configVars[$key]['notice'] = "Must be a valid directory.";
             }
             if ($key == 'ADMIN_EMAIL' && !preg_match('/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i', $val)) {
                 self::$configVars[$key]['notice'] = "Must be a valid email address.";
             }
         }
         try {
             //				database::query('SHOW TABLES FROM `'.SQL_DBNAME.'`');
         } catch (Exception $e) {
             self::$configVars['SQL_SERVER']['notice'] = $e->getMessage();
         }
     }
     $changed = false;
     foreach (self::$configVars as $key => $info) {
         if (!defined($key)) {
             $showConfig = true;
         }
         if (isset($info['notice'])) {
             $showConfig = true;
         }
         if (!isset(self::$oConfig[$key]) || self::$oConfig[$key] !== constant($key)) {
             $changed = true;
         }
     }
     if ($showConfig) {
         if (!file_exists(PATH_ABS_CONFIG)) {
             self::ShowConfig();
         }
         self::DownMaintenance();
     }
     if ($changed) {
         self::SaveConfig();
     }
     self::$isValid = TRUE;
     return true;
 }