Index: trunk/admin/install/install_lib.php =================================================================== diff -u -r3330 -r3407 --- trunk/admin/install/install_lib.php (.../install_lib.php) (revision 3330) +++ trunk/admin/install/install_lib.php (.../install_lib.php) (revision 3407) @@ -1,5 +1,5 @@ read()) { @@ -61,7 +61,7 @@ } usort($upgrades_arr, "VersionSort"); - + foreach($upgrades_arr as $file) { if( preg_match('/inportal_upgrade_v(.*).(php|sql)$/', $file, $rets) ) @@ -73,30 +73,30 @@ } } } - + return $version; } function ConvertVersion($version) { $parts = explode('.', $version); - + $bin = ''; foreach ($parts as $part) { $bin .= str_pad(decbin($part), 8, '0', STR_PAD_LEFT); } - + $dec = bindec($bin); - - return $dec; + + return $dec; } function TableExists(&$ado, $tables) { global $g_TablePrefix; $t = explode(",",$tables); - + $i = $ado->MetaTables(); for($x=0;$x $size) - return -2; - + return -2; + $fp = fopen($filename,"r"); if(!$fp) return -1; - + if($FileOffset>0) { fseek($fp,$FileOffset); } - else + else { $EndOfSQL = FALSE; $sql = ""; @@ -329,30 +329,30 @@ } fseek($fp,$FileOffset); } - $LinesRead = 0; + $LinesRead = 0; $sql = ""; $AllSql = array(); while($LinesRead < $MaxLines && !feof($fp)) { $sql = fgets($fp, 16384); if(strlen($sql)) - { + { $AllSql[] = $sql; - $LinesRead++; + $LinesRead++; } } if(!feof($fp)) { - $FileOffset = ftell($fp); + $FileOffset = ftell($fp); } else { $FileOffset = $TotalSize; - } - fclose($fp); + } + fclose($fp); if(count($AllSql)>0) RunSQLText($ado,$AllSql); - return (int)$FileOffset; + return (int)$FileOffset; } @@ -364,7 +364,7 @@ for ($i=0;$i\n") { $resave = true; } $ln++; - $line = trim($line); - $line = eregi_replace(';[.]*','',$line); - if(strlen($line) > 0) { - if(eregi('^[[a-z]+]$',str_replace(' ', '', $line))) { - $section = substr($line,1,(strlen($line)-2)); + $line = trim($line); + $line = eregi_replace(';[.]*','',$line); + if(strlen($line) > 0) { + if(eregi('^[[a-z]+]$',str_replace(' ', '', $line))) { + $section = substr($line,1,(strlen($line)-2)); if ($parse_section) { - $retval[$section] = array(); + $retval[$section] = array(); } continue; - } elseif(eregi('=',$line)) { - list($key,$val) = explode(' = ',$line); + } elseif(eregi('=',$line)) { + list($key,$val) = explode(' = ',$line); if (!$parse_section) { - $retval[trim($key)] = str_replace('"', '', $val); + $retval[trim($key)] = str_replace('"', '', $val); } else { - $retval[$section][trim($key)] = str_replace('"', '', $val); + $retval[$section][trim($key)] = str_replace('"', '', $val); } - } //end if - } //end if - } //end foreach + } //end if + } //end if + } //end foreach if ($resave) { $fp = fopen($file, "w"); reset($contents); fwrite($fp,'<'.'?'.'php die() ?'.">\n\n"); foreach($contents as $line) fwrite($fp,"$line"); fclose($fp); - } - - return $retval; + } + + return $retval; } function a48d819089308a9aeb447e7248b2587f() @@ -665,7 +665,7 @@ { if(_inst_ModuleLicensed($file)) { $new[$file] = $inst_file; - } + } } } } @@ -675,25 +675,25 @@ return array_keys($new); } -function GetDirList ($dirName) -{ - +function GetDirList ($dirName) +{ + $filedates = array(); - $d = dir($dirName); + $d = dir($dirName); - while($entry = $d->read()) - { - if ($entry != "." && $entry != "..") - { - if (!is_dir($dirName."/".$entry)) - { + while($entry = $d->read()) + { + if ($entry != "." && $entry != "..") + { + if (!is_dir($dirName."/".$entry)) + { $filedate[]=$entry; - } - } - } - $d->close(); + } + } + } + $d->close(); return $filedate; -} +} function GetLanguageList() { @@ -702,7 +702,7 @@ $packs = array(); $dir = $pathtoroot.$admin."/install/langpacks"; $files = GetDirList($dir); - + if(is_array($files)) { foreach($files as $f) @@ -724,26 +724,32 @@ ''. "". ''; - if( $return_result ) + if( $return_result ) return $ret; else echo $ret; } function &VerifyDB($error_state, $next_state, $success_func = null, $db_must_exist = false) -{ +{ // perform various check type to database specified // 1. user is allowed to connect to database // 2. user has all types of permissions in database global $state, $db_error; - + // enshure we use data from post & not from config - $GLOBALS['g_DBType'] = $_POST["ServerType"]; + $GLOBALS['g_DBType'] = $_POST["ServerType"]; $GLOBALS['g_DBHost'] = $_POST["ServerHost"]; $GLOBALS['g_DBName'] = $_POST["ServerDB"]; $GLOBALS['g_DBUser'] = $_POST["ServerUser"]; $GLOBALS['g_DBUserPassword'] = $_POST["ServerPass"]; - + + if (strlen($_POST['TablePrefix']) > 7) { + $db_error = 'Table prefix should not be longer than 7 characters'; + $state = $error_state; + return false; + } + // connect to database $ado =& inst_GetADODBConnection(); if($ado->ErrorNo() != 0) @@ -757,7 +763,7 @@ { // if connected, then check if all sql statements work $test_result = 1; - + $sql_tests[] = 'DROP TABLE IF EXISTS test_table'; $sql_tests[] = 'CREATE TABLE test_table(test_col mediumint(6))'; $sql_tests[] = 'LOCK TABLES test_table WRITE'; @@ -768,14 +774,14 @@ $sql_tests[] = 'SELECT * FROM test_table'; $sql_tests[] = 'DELETE FROM test_table'; $sql_tests[] = 'DROP TABLE IF EXISTS test_table'; - + foreach($sql_tests as $sql_test) { $ado->Execute($sql_test); if( $ado->ErrorNo()!=0 ) { $test_result = 0; - break; + break; } } @@ -802,7 +808,7 @@ } } return $ado; -} +} function SaveDBConfig() { @@ -812,15 +818,15 @@ set_ini_value("Database", "DBName",$_POST["ServerDB"]); set_ini_value("Database", "DBUser",$_POST["ServerUser"]); set_ini_value("Database", "DBUserPassword",$_POST["ServerPass"]); - set_ini_value("Database","TablePrefix",$_POST["TablePrefix"]); - save_values(); + set_ini_value("Database","TablePrefix",$_POST["TablePrefix"]); + save_values(); $GLOBALS['include_file'] = 'install/install_finish.php'; } function ReSetVar($var) { // define varible if not defined before - if( !isset($GLOBALS[$var]) ) $GLOBALS[$var] = ''; + if( !isset($GLOBALS[$var]) ) $GLOBALS[$var] = ''; } // if globals.php not yet included (1st steps of install), @@ -832,8 +838,8 @@ if(!$post_priority) // follow gpc_order in php.ini return isset($_REQUEST[$name]) ? $_REQUEST[$name] : false; else // get variable from post 1stly if not found then from get - return isset($_POST[$name]) && $_POST[$name] ? $_POST[$name] : ( isset($_GET[$name]) && $_GET[$name] ? $_GET[$name] : false ); - } + return isset($_POST[$name]) && $_POST[$name] ? $_POST[$name] : ( isset($_GET[$name]) && $_GET[$name] ? $_GET[$name] : false ); + } } function RadioChecked($name, $value) @@ -887,7 +893,7 @@ return $filename; } - + /** * Perform operations required for each module separate install (from admin) * @@ -898,24 +904,24 @@ function finalizeModuleInstall($module_name, $has_theme = true) { global $objThemes; - + $app =& kApplication::Instance(); if (!$app->GetVar('redirect')) return false; - + if ($has_theme) { $objThemes->CreateMissingThemes(true); } - + // 2. import languagepack in case of separate install $lang_xml =& $app->recallObject('LangXML'); $lang_xml->tables['phrases'] = TABLE_PREFIX.'Phrase'; $lang_xml->tables['emailmessages'] = TABLE_PREFIX.'EmailMessage'; - + $lang_path = FULL_PATH.'/'.$module_name.'/admin/install/langpacks'; $lang_xml->Parse($lang_path.'/english.lang', '|0|1|2|', ''); - + $app->Redirect('', Array('pass' => 'all', 'admin' => 1, 'Refresh' => 1), '', 'modules/mod_status.php'); - + } ?>