diff --git a/phpBB/install/install.php b/phpBB/install/install.php deleted file mode 100644 index e2625d8b64..0000000000 --- a/phpBB/install/install.php +++ /dev/null @@ -1,1506 +0,0 @@ - $void) - { - unset(${$var_name}); - } -} - -define('STRIP', (get_magic_quotes_gpc()) ? true : false); - -// Instantiate classes for future use -$user = new user(); -$auth = new auth(); -$cache = new cache(); - - -// Try opening config file -if (@file_exists($phpbb_root_path . 'config.'.$phpEx)) -{ -// include($phpbb_root_path . 'config.'.$phpEx); - - if (defined('PHPBB_INSTALLED')) - { -// redirect("../index.$phpEx"); - } -} - - -// Obtain various vars -$stage = request_var('stage', 0); -//, 'acm_type' -// These are all strings so we'll just traverse an array -$var_ary = array('language', 'dbms', 'dbhost', 'dbport', 'dbuser', 'dbpasswd', 'dbname', 'table_prefix', 'admin_name', 'admin_pass1', 'admin_pass2', 'board_email1', 'board_email2', 'server_name', 'server_port', 'script_path', 'img_imagick', 'ftp_path', 'ftp_user', 'ftp_pass'); - -foreach ($var_ary as $var) -{ - $$var = request_var($var, ''); -} - -// Set some vars -define('ANONYMOUS', 1); - -$error = array(); - -// Other PHP modules we may find useful -//$php_dlls_other = array('zlib', 'mbstring', 'ftp'); -$php_dlls_other = array('zlib', 'ftp', 'xml'); - -// Supported DB layers including relevant details -$available_dbms = array( - 'firebird' => array( - 'LABEL' => 'FireBird', - 'SCHEMA' => 'firebird', - 'MODULE' => 'interbase', - 'DELIM' => ';;', - 'COMMENTS' => 'remove_remarks' - ), - 'mysql' => array( - 'LABEL' => 'MySQL', - 'SCHEMA' => 'mysql', - 'MODULE' => 'mysql', - 'DELIM' => ';', - 'COMMENTS' => 'remove_remarks' - ), - 'mysqli' => array( - 'LABEL' => 'MySQL 4.1.x/5.x (MySQLi)', - 'SCHEMA' => 'mysql', - 'MODULE' => 'mysqli', - 'DELIM' => ';', - 'COMMENTS' => 'remove_remarks' - ), - 'mysql4' => array( - 'LABEL' => 'MySQL 4.x/5.x', - 'SCHEMA' => 'mysql', - 'MODULE' => 'mysql', - 'DELIM' => ';', - 'COMMENTS' => 'remove_remarks' - ), - 'mssql' => array( - 'LABEL' => 'MS SQL Server 7/2000', - 'SCHEMA' => 'mssql', - 'MODULE' => 'mssql', - 'DELIM' => 'GO', - 'COMMENTS' => 'remove_comments' - ), - 'mssql_odbc'=> array( - 'LABEL' => 'MS SQL Server [ ODBC ]', - 'SCHEMA' => 'mssql', - 'MODULE' => 'odbc', - 'DELIM' => 'GO', - 'COMMENTS' => 'remove_comments' - ), - 'oracle' => array( - 'LABEL' => 'Oracle', - 'SCHEMA' => 'oracle', - 'MODULE' => 'oci8', - 'DELIM' => '/', - 'COMMENTS' => 'remove_comments' - ), - 'postgres' => array( - 'LABEL' => 'PostgreSQL 7.x', - 'SCHEMA' => 'postgres', - 'MODULE' => 'pgsql', - 'DELIM' => ';', - 'COMMENTS' => 'remove_comments' - ), - 'sqlite' => array( - 'LABEL' => 'SQLite', - 'SCHEMA' => 'sqlite', - 'MODULE' => 'sqlite', - 'DELIM' => ';', - 'COMMENTS' => 'remove_remarks' - ), -); - -$suffix = ((defined('PHP_OS')) && (preg_match('#win#i', PHP_OS))) ? 'dll' : 'so'; - - -// -// Variables defined ... start program proper -// - - -// Try and load an appropriate language if required -if (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && !$language) -{ - $accept_lang_ary = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); - foreach ($accept_lang_ary as $accept_lang) - { - // Set correct format ... guess full xx_YY form - $accept_lang = substr($accept_lang, 0, 2) . '_' . strtoupper(substr($accept_lang, 3, 2)); - if (file_exists($phpbb_root_path . 'language/' . $accept_lang)) - { - $language = $accept_lang; - break; - } - else - { - // No match on xx_YY so try xx - $accept_lang = substr($accept_lang, 0, 2); - if (file_exists($phpbb_root_path . 'language/' . $accept_lang)) - { - $language = $accept_lang; - break; - } - } - } -} - -// No appropriate language found ... so let's use the first one in the language -// dir, this may or may not be English -if (!$language) -{ - $dir = @opendir($phpbb_root_path . 'language'); - while (($file = readdir($dir)) !== false) - { - $path = $phpbb_root_path . 'language/' . $file; - - if (!is_file($path) && !is_link($path) && file_exists($path . '/iso.txt')) - { - $language = $file; - break; - } - } -} - -include($phpbb_root_path . 'language/' . $language . '/common.'.$phpEx); -include($phpbb_root_path . 'language/' . $language . '/install.'.$phpEx); - - -// Here we do a number of tests and where appropriate reset the installation level -// depending on the outcome of those tests. It's perhaps a little clunky but -// it means we have a fairly clear and logical path through the installation and -// this source ... well, till I go and fill it with fudge ... damn, dribbled -// on my keyboard -if (isset($_POST['retest'])) -{ - $stage = 0; -} -else if (isset($_POST['testdb'])) -{ - $stage = 1; -} -else if (isset($_POST['install'])) -{ - // Check for missing data - $var_ary = array( - 'admin' => array('admin_name', 'admin_pass1', 'admin_pass2', 'board_email1', 'board_email2'), - 'server' => array('server_name', 'server_port', 'script_path') - ); - - foreach ($var_ary as $var_type => $var_block) - { - foreach ($var_block as $var) - { - if (!$$var) - { - $error[$var_type][] = $lang['INST_ERR_MISSING_DATA']; - break; - } - } - } - - // Check the entered email address and password - if ($admin_pass1 != $admin_pass2 && $admin_pass1 != '') - { - $error['admin'][] = $lang['INST_ERR_PASSWORD_MISMATCH']; - } - - if ($board_email1 != $board_email2 && $board_email1 != '') - { - $error['admin'][] = $lang['INST_ERR_EMAIL_MISMATCH']; - } - - // Test the database connectivity - if (!@extension_loaded($available_dbms[$dbms]['MODULE'])) - { - if (!can_load_dll($available_dbms[$dbms]['MODULE'])) - { - $error['db'][] = $lang['INST_ERR_NO_DB']; - } - } - - connect_check_db(false, $error, $dbms, $table_prefix, $dbhost, $dbuser, $dbpasswd, $dbname, $dbport); - - // No errors so lets do the twist - if (sizeof($error)) - { - $stage = 1; - } -} -else if (isset($_POST['dldone'])) -{ - // A minor fudge ... we're basically trying to see if the user uploaded - // their downloaded config file ... it's not worth IMO trying to - // open it and compare all the data. If a user wants to screw up this - // simple task ... well ... uhm - if (filesize($phpbb_root_path . 'config.'.$phpEx) < 10) - { - $stage = 2; - } - else - { - $stage = 3; - } -} - - -// Zero stage of installation -// -// Here we basically imform the user of any potential issues such as no database -// support, missing directories, etc. We also give some insight into "missing" -// modules which we'd quite like installed (but which are not essential) -if ($stage == 0) -{ - // Test for DB modules - $dlls_db = array(); - $passed['db'] = false; - foreach ($available_dbms as $db_name => $db_ary) - { - $dll = $db_ary['MODULE']; - - if (!extension_loaded($dll)) - { - if (!can_load_dll($dll)) - { - $dlls_db[$db_name] = '' . $lang['UNAVAILABLE'] . ''; - continue; - } - } - $dlls_db[$db_name] = '' . $lang['AVAILABLE'] . ''; - $passed['db'] = true; - } - - // Test for other modules - $dlls_other = array(); - foreach ($php_dlls_other as $dll) - { - if (!extension_loaded($dll)) - { - if (!can_load_dll($dll)) - { - $dlls_other[$dll] = '' . $lang['UNAVAILABLE'] . ''; - continue; - } - } - $dlls_other[$dll] = '' . $lang['AVAILABLE'] . ''; - } - - inst_page_header(); - -?> - -

- -

- -
- -

- -

- -

- - - - - - - - - - - - - $available) - { - echo ($i++ > 0) ? '' : ''; - -?> - - - - -
• : ' . $lang['NO'] . ''; - } - else - { - // We also give feedback on whether we're running in safe mode - echo '' . $lang['YES']; - if (@ini_get('safe_mode') || strtolower(@ini_get('safe_mode')) == 'on') - { - echo ', ' . $lang['PHP_SAFE_MODE']; - } - echo ''; - } - -?>
• : ' . $lang['NO'] . ''; - } - else - { - echo '' . $lang['YES'] . ''; - } -?>
• :
- -

- -

- - - - $yesno) - { - -?> - - - - - 3000) - { - $img_imagick = str_replace('\\', '/', $location); - continue; - } - } - } - else - { - $img_imagick = str_replace('\\', '/', $magic_home); - } - -?> - - - - -
• :
• : ' . $lang['AVAILABLE'] . ', ' . $img_imagick . '' : '' . $lang['NO_LOCATION'] . ''; ?>
- -

' . $lang['TESTS_PASSED'] : 'style="color:red">' . $lang['TESTS_FAILED']; ?>

- -
- -

- -

- -

- - -' . $lang['FILE_FOUND'] . '' : '' . $lang['FILE_NOT_FOUND'] . ''; - $write = ($write) ? ', ' . $lang['FILE_WRITEABLE'] . '' : (($exists) ? ', ' . $lang['FILE_UNWRITEABLE'] . '' : ''); - -?> - - - - - -
• 
- -

- -

- - -' . $lang['FILE_FOUND'] . '' : '' . $lang['FILE_NOT_FOUND'] . ''; - $write = ($write) ? ', ' . $lang['FILE_WRITEABLE'] . '' : (($exists) ? ', ' . $lang['FILE_UNWRITEABLE'] . '' : ''); - -?> - - - - -
• 
- -

' . $lang['TESTS_PASSED'] : 'style="color:red">' . $lang['TESTS_FAILED']; ?>

- -
- -

- -' : ''; - -?> - -

- - - - - -
  
- - $dbms_ary) - { - if (!extension_loaded($dbms_ary['MODULE'])) - { - if (!can_load_dll($dbms_ary['MODULE'])) - { - continue; - } - } - - $available_dbms_temp[$type] = $dbms_ary; - } - - $available_dbms = &$available_dbms_temp; - - // Here we guess at some server information, however we only - // do this if no "errors" exist ... if they do then the user - // has relady set the info and we can bypass it - if (!sizeof($error)) - { - if (!empty($_SERVER['SERVER_NAME']) || !empty($_ENV['SERVER_NAME'])) - { - $server_name = (!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : $_ENV['SERVER_NAME']; - } - else if (!empty($_SERVER['HTTP_HOST']) || !empty($_ENV['HTTP_HOST'])) - { - $server_name = (!empty($_SERVER['HTTP_HOST'])) ? $_SERVER['HTTP_HOST'] : $_ENV['HTTP_HOST']; - } - else - { - $server_name = ''; - } - - if (!empty($_SERVER['SERVER_PORT']) || !empty($_ENV['SERVER_PORT'])) - { - $server_port = (!empty($_SERVER['SERVER_PORT'])) ? $_SERVER['SERVER_PORT'] : $_ENV['SERVER_PORT']; - } - else - { - $server_port = '80'; - } - - $script_path = preg_replace('#install\/install\.' . $phpEx . '#i', '', $_SERVER['PHP_SELF']); - } - - // Generate list of available DB's - $dbms_options = ''; - foreach ($available_dbms as $dbms_name => $details) - { - $selected = ($dbms_name == $dbms) ? ' selected="selected"' : ''; - $dbms_options .= ''; - } - - $s_hidden_fields = ''; - $s_hidden_fields .= ($img_imagick) ? '' : '';; - - inst_page_header(); - -?> - -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
', $error['admin']); ?>
:
:
:
:
:
:
 
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
', $error['db']); ?>
:
:
:
:
:
:
:
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - -
', $error['server']); ?>
:
:
:
-'; // Done this to prevent highlighting editors getting confused! - - // Attempt to write out the config directly ... - if (filesize($phpbb_root_path . 'config.' . $phpEx) == 0 && is_writeable($phpbb_root_path . 'config.' . $phpEx)) - { - // Lets jump to the DB setup stage ... if nothing goes wrong below - $stage = 3; - - if (!($fp = @fopen($phpbb_root_path . 'config.'.$phpEx, 'w'))) - { - // Something went wrong ... so let's try another method - $stage = 2; - } - - if (!(@fwrite($fp, $config_data))) - { - // Something went wrong ... so let's try another method - $stage = 2; - } - - @fclose($fp); - } - - // We couldn't write it directly so we'll give the user three alternatives - if ($stage == 2) - { - $ignore_ftp = false; - - // User is trying to upload via FTP ... so let's process it - if (isset($_POST['sendftp'])) - { - if (($conn_id = @ftp_connect('localhost'))) - { - if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) - { - // Write out a temp file ... if safe mode is on we'll write it to our - // local cache/tmp directory - $tmp_path = (!@ini_get('safe_mode')) ? false : $phpbb_root_path . 'cache/tmp'; - $filename = tempnam($tmp_path, unique_id() . 'cfg'); - - $fp = @fopen($filename, 'w'); - @fwrite($fp, $config_data); - @fclose($fp); - - if (@ftp_chdir($conn_id, $ftp_dir)) - { - // So far, so good so now we'll try and upload the file. If it - // works we'll jump to stage 3, else we'll fall back again - if (@ftp_put($conn_id, 'config.' . $phpEx, $filename, FTP_ASCII)) - { - $stage = 3; - } - else - { - // Since we couldn't put the file something is fundamentally wrong, e.g. - // the file is owned by a different user, etc. We'll give up trying - // FTP at this point - $ignore_ftp = true; - } - } - else - { - $error['ftp'][] = $lang['INST_ERR_FTP_PATH']; - } - - // Remove the temporary file now - @unlink($filename); - } - else - { - $error['ftp'][] = $lang['INST_ERR_FTP_LOGIN']; - } - @ftp_quit($conn_id); - } - } - else if (isset($_POST['dlftp'])) - { - // The user requested a download, so send the relevant headers - // and dump out the data - header("Content-Type: text/x-delimtext; name=\"config.$phpEx\""); - header("Content-disposition: attachment; filename=config.$phpEx"); - echo $config_data; - exit; - } - - // Here we give the users up to three options to complete the setup - // of config.php, FTP, download and a retry and direct writing - if ($stage == 2) - { - inst_page_header(); - -?> - -

- -'; - $s_hidden_fields .= ''; - $s_hidden_fields .= ''; - $s_hidden_fields .= ''; - $s_hidden_fields .= ''; - $s_hidden_fields .= ''; - $s_hidden_fields .= ''; - $s_hidden_fields .= ''; - $s_hidden_fields .= ''; - $s_hidden_fields .= ''; - $s_hidden_fields .= ''; - $s_hidden_fields .= ''; - $s_hidden_fields .= ''; - $s_hidden_fields .= ''; - $s_hidden_fields .= ''; - $s_hidden_fields .= ''; - $s_hidden_fields .= ''; - - // Can we ftp? If we can then let's offer that option on top of download - // We first see if the relevant extension is loaded and then whether a server is - // listening on the ftp port - if (extension_loaded('ftp') && ($fsock = @fsockopen('localhost', 21, $errno, $errstr, 1)) && !$ignore_ftp) - { - @fclose($fsock); - -?> - -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - -
 
', $error['ftp']); ?>
:
:
:
- -
- - - -

- -

- - - - - -
  
- -
- -

- -

- - - - - -
- - - -sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false); - - // We ship the Access schema complete, we don't need to create tables nor - // populate it (at this time ... this may change). So we skip this section - if ($dbms != 'msaccess') - { - // NOTE: trigger_error does not work here. - $db->return_on_error = true; - - // Ok we have the db info go ahead and read in the relevant schema - // and work on building the table - $dbms_schema = 'schemas/' . $available_dbms[$dbms]['SCHEMA'] . '_schema.sql'; - - // How should we treat this schema? - $remove_remarks = $available_dbms[$dbms]['COMMENTS']; - $delimiter = $available_dbms[$dbms]['DELIM']; - - $sql_query = @fread(@fopen($dbms_schema, 'r'), @filesize($dbms_schema)); - $sql_query = preg_replace('#phpbb_#i', $table_prefix, $sql_query); - - $remove_remarks($sql_query); - - $sql_query = split_sql_file($sql_query, $delimiter); - - foreach ($sql_query as $sql) - { - //$sql = trim(str_replace('|', ';', $sql)); - if (!$db->sql_query($sql)) - { - $error = $db->sql_error(); - inst_db_error($error['message'], $sql, __LINE__, __FILE__); - } - } - unset($sql_query); - - // Ok tables have been built, let's fill in the basic information - $sql_query = fread(fopen('schemas/schema_data.sql', 'r'), filesize('schemas/schema_data.sql')); - - // Deal with any special comments, used at present for mssql set identity switching - switch ($dbms) - { - case 'mssql': - case 'mssql_odbc': - $sql_query = preg_replace('#\# MSSQL IDENTITY (phpbb_[a-z_]+) (ON|OFF) \##s', 'SET IDENTITY_INSERT \1 \2', $sql_query); - break; - - case 'postgres': - $sql_query = preg_replace('#\# POSTGRES (BEGIN|COMMIT) \##s', '\1; ', $sql_query); - // Some versions of PGSQL don't like remarks, lets remove them. - remove_remarks($sql_query); - break; - - case 'firebird': - $sql_query = str_replace('module_name', '"module_name"', $sql_query); - break; - - case 'oracle': - remove_remarks($sql_query); - break; - - default: - //$sql_query = preg_replace('#\# MSSQL IDENTITY (phpbb_[a-z_]+) (ON|OFF) \##s', '', $sql_query); - } - - $sql_query = preg_replace('#phpbb_#i', $table_prefix, $sql_query); - - remove_remarks($sql_query); - $sql_query = split_sql_file($sql_query, ';'); - - foreach ($sql_query as $sql) - { - //$sql = trim(str_replace('|', ';', $sql)); - if (!$db->sql_query($sql)) - { - $error = $db->sql_error(); - inst_db_error($error['message'], $sql, __LINE__, __FILE__); - } - } - unset($sql_query); - } - - - $current_time = time(); - - // Set default config and post data, this applies to all DB's including Access - $sql_ary = array( - 'INSERT INTO ' . $table_prefix . "config (config_name, config_value) - VALUES ('board_startdate', $current_time)", - - 'INSERT INTO ' . $table_prefix . "config (config_name, config_value) - VALUES ('default_lang', '" . $db->sql_escape($language) . "')", - - 'UPDATE ' . $table_prefix . "config - SET config_value = '" . $db->sql_escape($img_imagick) . "' - WHERE config_name = 'img_imagick'", - - 'UPDATE ' . $table_prefix . "config - SET config_value = '" . $db->sql_escape($server_name) . "' - WHERE config_name = 'server_name'", - - 'UPDATE ' . $table_prefix . "config - SET config_value = '" . $db->sql_escape($server_port) . "' - WHERE config_name = 'server_port'", - - 'UPDATE ' . $table_prefix . "config - SET config_value = '" . $db->sql_escape($script_path) . "' - WHERE config_name = 'script_path'", - - 'UPDATE ' . $table_prefix . "config - SET config_value = '" . $db->sql_escape($board_email1) . "' - WHERE config_name = 'board_email'", - - 'UPDATE ' . $table_prefix . "config - SET config_value = '" . $db->sql_escape($board_email1) . "' - WHERE config_name = 'board_contact'", - - 'UPDATE ' . $table_prefix . "config - SET config_value = '" . $db->sql_escape($server_name) . "' - WHERE config_name = 'cookie_domain'", - - 'UPDATE ' . $table_prefix . "config - SET config_value = '" . $db->sql_escape($admin_name) . "' - WHERE config_name = 'newest_username'", - - 'UPDATE ' . $table_prefix . "users - SET username = '" . $db->sql_escape($admin_name) . "', user_password='" . $db->sql_escape(md5($admin_pass1)) . "', user_lang = '" . $db->sql_escape($language) . "', user_email='" . $db->sql_escape($board_email1) . "' - WHERE username = 'Admin'", - - 'UPDATE ' . $table_prefix . "moderator_cache - SET username = '" . $db->sql_escape($admin_name) . "' - WHERE username = 'Admin'", - - 'UPDATE ' . $table_prefix . "forums - SET forum_last_poster_name = '" . $db->sql_escape($admin_name) . "' - WHERE forum_last_poster_name = 'Admin'", - - 'UPDATE ' . $table_prefix . "topics - SET topic_first_poster_name = '" . $db->sql_escape($admin_name) . "', topic_last_poster_name = '" . $db->sql_escape($admin_name) . "' - WHERE topic_first_poster_name = 'Admin' - OR topic_last_poster_name = 'Admin'", - - 'UPDATE ' . $table_prefix . "users - SET user_regdate = $current_time", - - 'UPDATE ' . $table_prefix . "posts - SET post_time = $current_time", - - 'UPDATE ' . $table_prefix . "topics - SET topic_time = $current_time, topic_last_post_time = $current_time", - - 'UPDATE ' . $table_prefix . "forums - SET forum_last_post_time = $current_time", - ); - - foreach ($sql_ary as $sql) - { - $sql = trim(str_replace('|', ';', $sql)); - - if (!$db->sql_query($sql)) - { - $error = $db->sql_error(); - inst_db_error($error['message'], $sql, __LINE__, __FILE__); - } - } - - $stage = 4; -} - -// Install completed ... log the user in ... we're done -if ($stage == 4) -{ - // Load the basic configuration data - define('SESSIONS_TABLE', $table_prefix . 'sessions'); - define('BOTS_TABLE', $table_prefix . 'bots'); - define('USERS_TABLE', $table_prefix . 'users'); - define('GROUPS_TABLE', $table_prefix . 'groups'); - define('BANLIST_TABLE', $table_prefix . 'banlist'); - define('CONFIG_TABLE', $table_prefix . 'config'); - define('USER_NORMAL', 0); - define('USER_INACTIVE', 1); - define('USER_IGNORE', 2); - define('USER_FOUNDER', 3); - define('LOGIN_SUCCESS', 3); - - - $sql = "SELECT * - FROM {$table_prefix}config"; - $result = $db->sql_query($sql); - - $config = array(); - while ($row = $db->sql_fetchrow($result)) - { - $config[$row['config_name']] = $row['config_value']; - } - $db->sql_freeresult($result); - - $user->session_begin(); - $auth->login($admin_name, $admin_pass1); - - inst_page_header(); - -?> - -

- - -

', ''); ?>

- -">

- -sql_close(); - - inst_page_footer(); - exit; - -} - -exit; - -// --------- -// FUNCTIONS -// - -// Output page -> header -function inst_page_header() -{ - global $phpEx, $lang; - -?> - - - - - - -<?php echo $lang['WELCOME_INSTALL']; ?> - - - -
- -
-
- -
- -
" name="installation" method="post"> - - - -

- -

- -

- -

SQL :

- -

- -sql_close(); - inst_page_footer(); - exit; -} - -// Output page -> footer -function inst_page_footer() -{ - -?> -
- -
-
- -
- - - $filename) - { - $selected = (strtolower($default) == strtolower($filename)) ? ' selected="selected"' : ''; - $user_select .= ''; - } - - return $user_select; -} - -function can_load_dll($dll) -{ - global $suffix; -return false; - return ((@ini_get('enable_dl') || strtolower(@ini_get('enable_dl')) == 'on') && (!@ini_get('safe_mode') || strtolower(@ini_get('safe_mode')) == 'off') && @dl($dll . ".$suffix")) ? true : false; -} - -function connect_check_db($error_connect, &$error, &$dbms, &$table_prefix, &$dbhost, &$dbuser, &$dbpasswd, &$dbname, &$dbport) -{ - global $phpbb_root_path, $phpEx, $config, $lang; - - // Include the DB layer - include($phpbb_root_path . 'includes/db/' . $dbms . '.' . $phpEx); - - // Instantiate it and set return on error true - $sql_db = 'dbal_' . $dbms; - $db = new $sql_db(); - $db->sql_return_on_error(true); - - // Try and connect ... - if (is_array($db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false))) - { - $db_error = $db->sql_error(); - $error['db'][] = $lang['INST_ERR_DB_CONNECT'] . '
' . (($db_error['message']) ? $db_error['message'] : $lang['INST_ERR_DB_NO_ERROR']); - } - else - { - switch ($dbms) - { - case 'mysql': - case 'mysql4': - case 'mysqli': - case 'sqlite': - $sql = "SHOW TABLES"; - $field = "Tables_in_{$dbname}"; - break; - - case 'mssql': - case 'mssql_odbc': - $sql = "SELECT name - FROM sysobjects - WHERE type='U'"; - $field = "name"; - break; - - case 'postgres': - $sql = "SELECT relname - FROM pg_class - WHERE relkind = 'r' - AND relname NOT LIKE 'pg\_%'"; - $field = "relname"; - break; - - case 'firebird': - $sql = 'SELECT rdb$relation_name - FROM rdb$relations - WHERE rdb$view_source is null - AND rdb$system_flag = 0'; - $field = 'rdb$relation_name'; - break; - - case 'oracle': - $sql = 'SELECT table_name FROM USER_TABLES'; - $field = 'table_name'; - break; - } - $result = $db->sql_query($sql); - - if ($row = $db->sql_fetchrow($result)) - { - // Likely matches for an existing phpBB installation - $table_ary = array($table_prefix . 'attachments', $table_prefix . 'config', $table_prefix . 'sessions', $table_prefix . 'topics', $table_prefix . 'users'); - - do - { - // All phpBB installations will at least have config else it won't - // work - if (in_array(strtolower($row[$field]), $table_ary)) - { - $error['db'][] = $lang['INST_ERR_PREFIX']; - break; - } - } - while ($row = $db->sql_fetchrow($result)); - } - $db->sql_freeresult($result); - - $db->sql_close(); - } - - if ($error_connect && (!isset($error['db']) || !sizeof($error['db']))) - { - $error['db'][] = $lang['INSTALL_DB_CONNECT']; - } -} -// -// FUNCTIONS -// --------- - -?> \ No newline at end of file