array( 'LABEL' => 'MySQL 3.x', 'SCHEMA' => 'mysql', 'DELIM' => ';', 'DELIM_BASIC' => ';', 'COMMENTS' => 'remove_remarks' ), 'mysql4' => array( 'LABEL' => 'MySQL 4.x', 'SCHEMA' => 'mysql', 'DELIM' => ';', 'DELIM_BASIC' => ';', 'COMMENTS' => 'remove_remarks' ), 'postgres' => array( 'LABEL' => 'PostgreSQL 7.x', 'SCHEMA' => 'postgres', 'DELIM' => ';', 'DELIM_BASIC' => ';', 'COMMENTS' => 'remove_comments' ), 'mssql' => array( 'LABEL' => 'MS SQL Server 7/2000', 'SCHEMA' => 'mssql', 'DELIM' => 'GO', 'DELIM_BASIC' => ';', 'COMMENTS' => 'remove_comments' ), 'msaccess' => array( 'LABEL' => 'MS Access [ ODBC ]', 'SCHEMA' => '', 'DELIM' => '', 'DELIM_BASIC' => ';', 'COMMENTS' => '' ), 'mssql-odbc' => array( 'LABEL' => 'MS SQL Server [ ODBC ]', 'SCHEMA' => 'mssql', 'DELIM' => 'GO', 'DELIM_BASIC' => ';', 'COMMENTS' => 'remove_comments' ) ); // // Uncomment the following line to completely disable the ftp option... // // define('NO_FTP', true); /*************************************************************************** * * End Install Customization Section * ***************************************************************************/ // // Try opening config file // if ( @file_exists('../config.'.$phpEx) ) { include('../config.'.$phpEx); } // // Obtain various vars // $confirm = ( isset($HTTP_POST_VARS['confirm']) ) ? true : false; $cancel = ( isset($HTTP_POST_VARS['cancel']) ) ? true : false; if ( isset($HTTP_POST_VARS['install_step']) || isset($HTTP_GET_VARS['install_step']) ) { $install_step = ( isset($HTTP_POST_VARS['install_step']) ) ? $HTTP_POST_VARS['install_step'] : $HTTP_GET_VARS['install_step']; } else { $install_step = ''; } $upgrade = ( !empty($HTTP_POST_VARS['upgrade']) ) ? $HTTP_POST_VARS['upgrade']: ''; $upgrade_now = ( !empty($HTTP_POST_VARS['upgrade_now']) ) ? $HTTP_POST_VARS['upgrade_now']:''; $dbms = isset($HTTP_POST_VARS['dbms']) ? $HTTP_POST_VARS['dbms'] : ''; $language = ( !empty($HTTP_POST_VARS['language']) ) ? $HTTP_POST_VARS['language'] : $default_language; $dbhost = ( !empty($HTTP_POST_VARS['dbhost']) ) ? $HTTP_POST_VARS['dbhost'] : ''; $dbuser = ( !empty($HTTP_POST_VARS['dbuser']) ) ? $HTTP_POST_VARS['dbuser'] : ''; $dbpasswd = ( !empty($HTTP_POST_VARS['dbpasswd']) ) ? $HTTP_POST_VARS['dbpasswd'] : ''; $dbname = ( !empty($HTTP_POST_VARS['dbname']) ) ? $HTTP_POST_VARS['dbname'] : ''; $table_prefix = ( !empty($HTTP_POST_VARS['prefix']) ) ? $HTTP_POST_VARS['prefix'] : ''; $admin_name = ( !empty($HTTP_POST_VARS['admin_name']) ) ? $HTTP_POST_VARS['admin_name'] : ''; $admin_pass1 = ( !empty($HTTP_POST_VARS['admin_pass1']) ) ? $HTTP_POST_VARS['admin_pass1'] : ''; $admin_pass2 = ( !empty($HTTP_POST_VARS['admin_pass2']) ) ? $HTTP_POST_VARS['admin_pass2'] : ''; $ftp_path = ( !empty($HTTP_POST_VARS['ftp_path']) ) ? $HTTP_POST_VARS['ftp_path'] : ''; $ftp_user = ( !empty($HTTP_POST_VARS['ftp_user']) ) ? $HTTP_POST_VARS['ftp_user'] : ''; $ftp_pass = ( !empty($HTTP_POST_VARS['ftp_pass']) ) ? $HTTP_POST_VARS['ftp_pass'] : ''; $server_name = ( !empty($HTTP_POST_VARS['server_name']) ) ? $HTTP_POST_VARS['server_name'] : ''; $server_port = ( !empty($HTTP_POST_VARS['server_port']) ) ? $HTTP_POST_VARS['server_port'] : ''; $board_email = ( !empty($HTTP_POST_VARS['board_email']) ) ? $HTTP_POST_VARS['board_email'] : ''; $script_path = ( !empty($HTTP_POST_VARS['script_path']) ) ? $HTTP_POST_VARS['script_path'] : ''; // // Do we install/upgrade/update or quit back to index? // if ( !defined('PHPBB_INSTALLED') ) { include($phpbb_root_path . 'includes/functions_admin.'.$phpEx); include($phpbb_root_path . 'includes/session.'.$phpEx); // // Import language file, setup template ... // include($phpbb_root_path . 'language/lang_' . $language . '/lang_main.'.$phpEx); include($phpbb_root_path . 'language/lang_' . $language . '/lang_admin.'.$phpEx); if ( $upgrade == 1 ) { require('upgrade.'.$phpEx); $install_step = 1; } } else { header("Location: ../index.$phpEx"); exit; } // // What shall we do? // if ( !empty($HTTP_POST_VARS['send_file']) && $HTTP_POST_VARS['send_file'] == 1 && !defined("PHPBB_INSTALLED") && empty($HTTP_POST_VARS['upgrade_now']) ) { // // We need to stripslashes no matter what the setting of magic_quotes_gpc is // because we add slahes at the top if its off, and they are added automaticlly // if it is on. // $HTTP_POST_VARS['config_data'] = stripslashes($HTTP_POST_VARS['config_data']); header("Content-Type: text/x-delimtext; name=\"config.$phpEx\""); header("Content-disposition: attachment; filename=config.$phpEx"); echo $HTTP_POST_VARS['config_data']; exit; } else if ( !empty($HTTP_POST_VARS['send_file']) && $HTTP_POST_VARS['send_file'] == 2 && !defined("PHPBB_INSTALLED") ) { // // Ok we couldn't write the config file so let's try ftping it. // $HTTP_POST_VARS['config_data'] = stripslashes($HTTP_POST_VARS['config_data']); $s_hidden_fields = ''; $s_hidden_fields .= ''; if ( $upgrade == 1 ) { $s_hidden_fields .= ''; } $template->assign_block_vars("switch_ftp_file", array()); $template->assign_block_vars("switch_common_install", array()); $template->assign_vars(array( "L_INSTRUCTION_TEXT" => $lang['ftp_instructs'], "L_FTP_INFO" => $lang['ftp_info'], "L_FTP_PATH" => $lang['ftp_path'], "L_FTP_PASS" => $lang['ftp_password'], "L_FTP_USER" => $lang['ftp_username'], "L_SUBMIT" => $lang['Transfer_config'], "S_HIDDEN_FIELDS" => $s_hidden_fields, "S_FORM_ACTION" => "install.$phpEx") ); $template->pparse("body"); exit; } else if( !empty($HTTP_POST_VARS['ftp_file']) && !defined("PHPBB_INSTALLED") ) { // // Here we'll actually send the file... // $HTTP_POST_VARS['config_data'] = stripslashes($HTTP_POST_VARS['config_data']); $conn_id = @ftp_connect('localhost'); $login_result = @ftp_login($conn_id, "$ftp_user", "$ftp_pass"); if ( !$conn_id || !$login_result ) { // // Error couldn't get connected... Go back to option to send file... // $s_hidden_fields = ''; $s_hidden_fields .= ''; page_header($lang['NoFTP_config'], "install.$phpEx"); if ( $upgrade == 1 ) { $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 .= ''; $template->assign_block_vars("switch_upgrade_install", array()); $template->assign_vars(array( "L_UPGRADE_INST" => $lang['continue_upgrade'], "L_UPGRADE_SUBMIT" => $lang['upgrade_submit']) ); } page_footer($lang['Download_config'], $s_hidden_fields); exit; } else { // // Write out a temp file... // $tmpfname = @tempnam('/tmp', 'cfg'); @unlink($tmpfname); // unlink for safety on php4.0.3+ $fp = @fopen($tmpfname, 'w'); @fwrite($fp, $HTTP_POST_VARS['config_data']); @fclose($fp); // // Now ftp it across. // @ftp_chdir($conn_id, $ftp_dir); $res = ftp_put($conn_id, '../config.'.$phpEx, $tmpfname, FTP_ASCII); @ftp_quit($conn_id); unlink($tmpfname); if( $upgrade == 1 ) { require('upgrade.'.$phpEx); exit; } // // Ok we are basically done with the install process let's go on and let the user // configure their board now. We are going to do this by calling the admin_board.php // from the normal board admin section. // $s_hidden_fields = ''; $s_hidden_fields .= ''; $s_hidden_fields .= ''; $s_hidden_fields .= ''; page_header($lang['Inst_Step_2'], "../login.$phpEx"); page_footer($lang['Finish_Install'], $s_hidden_fields); exit(); } } else if ( ( empty($install_step) || $admin_pass1 != $admin_pass2 || empty($admin_pass1) || $dbhost == '' ) && !defined("PHPBB_INSTALLED") ) { // // Ok we haven't installed before so lets work our way through the various // steps of the install process. This could turn out to be quite a lengty // process. // // Step 0 gather the pertinant info for database setup... // Namely dbms, dbhost, dbname, dbuser, and dbpasswd. // // // Guess at some basic info used for install.. // if ( !empty($HTTP_SERVER_VARS['SERVER_NAME']) || !empty($HTTP_ENV_VARS['SERVER_NAME']) ) { $server_name = ( !empty($HTTP_SERVER_VARS['SERVER_NAME']) ) ? $HTTP_SERVER_VARS['SERVER_NAME'] : $HTTP_ENV_VARS['SERVER_NAME']; } else if ( !empty($HTTP_SERVER_VARS['HTTP_HOST']) || !empty($HTTP_ENV_VARS['HTTP_HOST']) ) { $server_name = ( !empty($HTTP_SERVER_VARS['HTTP_HOST']) ) ? $HTTP_SERVER_VARS['HTTP_HOST'] : $HTTP_ENV_VARS['HTTP_HOST']; } else { $server_name = ''; } if ( !empty($HTTP_SERVER_VARS['SERVER_PORT']) || !empty($HTTP_ENV_VARS['SERVER_PORT']) ) { $server_port = ( !empty($HTTP_SERVER_VARS['SERVER_PORT']) ) ? $HTTP_SERVER_VARS['SERVER_PORT'] : $HTTP_ENV_VARS['SERVER_PORT']; } else { $server_port = '80'; } $script_path = preg_replace('/install\/install\.'.$phpEx.'/i', '', $HTTP_SERVER_VARS['PHP_SELF']); // // // $instruction_text = $lang['Inst_Step_0']; /* if ( (($HTTP_POST_VARS['admin_pass1'] != $HTTP_POST_VARS['admin_pass2']) && $install_step != '0') || ( empty($HTTP_POST_VARS['admin_pass1']) && !empty($dbhost)) ) { $instruction_text = $lang['Password_mismatch'] . '
' . $instruction_text; } */ $lang_options = language_select($language, 'language', '../language'); foreach( $available_dbms as $dbms_name => $details ) { $selected = ( $dbms_name == $dbms ) ? ' selected="selected' : ''; $dbms_options .= ''; } $upgrade_option = ''; $upgrade_option .= ''; $upgrade_option .= ''; $s_hidden_fields = ''; page_header($instruction_text, "install.$phpEx"); ?> : : : : : : : : : : : : : : : assign_block_vars("switch_error_install", array()); $template->assign_vars(array( "L_ERROR_TITLE" => $lang['Installer_Error'], "L_ERROR" => $lang['Install_No_Ext']) ); $template->pparse('body'); */ exit; } include($phpbb_root_path . 'db/' . $dbms . '.' . $phpEx); $db = new sql_db($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false); } $dbms_schema = 'schemas/' . $available_dbms[$dbms]['SCHEMA'] . '_schema.sql'; $dbms_basic = 'schemas/' . $available_dbms[$dbms]['SCHEMA'] . '_basic.sql'; $remove_remarks = $available_dbms[$dbms]['COMMENTS'];; $delimiter = $available_dbms[$dbms]['DELIM']; $delimiter_basic = $available_dbms[$dbms]['DELIM_BASIC']; if ( $install_step == 1 || $reinstall ) { if ( $upgrade != 1 ) { if ( $dbms != 'msaccess' ) { // // Ok we have the db info go ahead and read in the relevant schema // and work on building the table.. probably ought to provide some // kind of feedback to the user as we are working here in order // to let them know we are actually doing something. // $sql_query = @fread(@fopen($dbms_schema, 'r'), @filesize($dbms_schema)); $sql_query = preg_replace('/phpbb_/is', $table_prefix, $sql_query); $sql_query = $remove_remarks($sql_query); $sql_query = split_sql_file($sql_query, $delimiter); $sql_count = count($sql_query); for($i = 0; $i < $sql_count; $i++) { $db->sql_query($sql_query[$i]); } // // Ok tables have been built, let's fill in the basic information // $sql_query = @fread(@fopen($dbms_basic, 'r'), @filesize($dbms_basic)); $sql_query = preg_replace('/phpbb_/', $table_prefix, $sql_query); $sql_query = $remove_remarks($sql_query); $sql_query = split_sql_file($sql_query, $delimiter_basic); $sql_count = count($sql_query); for($i = 0; $i < $sql_count; $i++) { $db->sql_query($sql_query[$i]); } } // // Ok at this point they have entered their admin password, let's go // ahead and create the admin account with some basic default information // that they can customize later, and write out the config file. After // this we are going to pass them over to the admin_forum.php script // to set up their forum defaults. // $admin_pass_md5 = ( $confirm && $userdata['user_level'] == ADMIN ) ? $admin_pass1 : md5($admin_pass1); $error = ''; // // Update the default admin user with their information. // $sql = "INSERT INTO " . $table_prefix . "config (config_name, config_value) VALUES ('board_startdate', " . time() . ")"; $db->sql_query($sql); $sql = "INSERT INTO " . $table_prefix . "config (config_name, config_value) VALUES ('default_lang', '" . str_replace("\'", "''", $language) . "')"; $db->sql_query($sql); $sql = "UPDATE " . $table_prefix . "config SET config_value = '" . $server_name . "' WHERE config_name = 'server_name'"; $db->sql_query($sql); $sql = "UPDATE " . $table_prefix . "config SET config_value = '" . $server_port . "' WHERE config_name = 'server_port'"; $db->sql_query($sql); $sql = "UPDATE " . $table_prefix . "config SET config_value = '" . $script_path . "' WHERE config_name = 'script_path'"; $db->sql_query($sql); $sql = "UPDATE " . $table_prefix . "config SET config_value = '" . $board_email . "' WHERE config_name = 'board_email'"; $db->sql_query($sql); $sql = "UPDATE " . $table_prefix . "config SET config_value = '" . $server_name . "' WHERE config_name = 'cookie_domain'"; $db->sql_query($sql); $sql = "UPDATE " . $table_prefix . "config SET config_value = '" . $admin_name . "' WHERE config_name = 'newest_username'"; $db->sql_query($sql); $sql = "UPDATE " . $table_prefix . "users SET username = '" . str_replace("\'", "''", $admin_name) . "', user_password='" . str_replace("\'", "''", $admin_pass_md5) . "', user_lang = '" . str_replace("\'", "''", $language) . "', user_email='" . str_replace("\'", "''", $board_email) . "' WHERE username = 'Admin'"; $db->sql_query($sql); $sql = "UPDATE " . $table_prefix . "users SET user_regdate = " . time(); $db->sql_query($sql); // // Change session table to HEAP if MySQL version matches // if ( preg_match("/^mysql/", $dbms) ) { $sql = "SELECT VERSION() AS mysql_version"; if($result = $db->sql_query($sql)) { $row = $db->sql_fetchrow($result); $version = $row['mysql_version']; if( preg_match("/^(3\.23)|(4\.)/", $version) ) { $sql = "ALTER TABLE " . $table_prefix . "sessions TYPE=HEAP"; $db->sql_query($sql); } } } /* if ( $error != '' ) { $template->assign_block_vars("switch_error_install", array()); $template->assign_vars(array( "L_ERROR_TITLE" => $lang['Installer_Error'], "L_ERROR" => $lang['Install_db_error'] . '

' . $error) ); $template->pparse('body'); exit; }*/ } if ( !$reinstall && !$upgrade_now ) { // $template->assign_block_vars("switch_common_install", array()); // // Write out the config file. // $config_data = ''; // Done this to prevent highlighting editors getting confused! @umask(0111); $no_open = FALSE; if ( !($fp = @fopen('../config.'.$phpEx, 'w')) ) { // // Unable to open the file writeable do something here as an attempt // to get around that... // $s_hidden_fields = ''; if ( extension_loaded('ftp') && !defined('NO_FTP') ) { $template->assign_block_vars('switch_ftp_option', array()); $lang['Unwriteable_config'] .= '

' . $lang['ftp_option'] . '

'; $template->assign_vars(array( "L_CHOOSE_FTP" => $lang['ftp_choose'], "L_ATTEMPT_FTP" => $lang['Attempt_ftp'], "L_SEND_FILE" => $lang['Send_file']) ); } else { $s_hidden_fields .= ''; } if ( $upgrade == 1 ) { $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 .= ''; $template->assign_block_vars("switch_upgrade_install", array()); $template->assign_vars(array( "L_UPGRADE_INST" => $lang['continue_upgrade'], "L_UPGRADE_SUBMIT" => $lang['upgrade_submit']) ); } $template->assign_vars(array( "L_INSTRUCTION_TEXT" => $lang['Unwriteable_config'], "L_SUBMIT" => $lang['Download_config'], "S_HIDDEN_FIELDS" => $s_hidden_fields, "S_FORM_ACTION" => "install.$phpEx") ); $template->pparse('body'); exit; } $result = @fputs($fp, $config_data, strlen($config_data)); @fclose($fp); $upgrade_now = $lang['upgrade_submit']; } else { // $template->assign_block_vars("switch_common_install", array()); } // // First off let's check and see if we are supposed to be doing an upgrade. // if ( $upgrade == 1 && $upgrade_now == $lang['upgrade_submit'] ) { define('INSTALLING', true); require('upgrade.'.$phpEx); exit; } // // Ok we are basically done with the install process let's go on // and let the user configure their board now. // // We are going to do this by calling the admin_board.php from the // normal board admin section. // if ( !$reinstall ) { $s_hidden_fields = ''; $s_hidden_fields .= ''; $s_hidden_fields .= ''; $s_hidden_fields .= ''; } else { $s_hidden_fields = ''; } page_header($lang['Inst_Step_2'], "../login.$phpEx"); page_footer($lang['Finish_Install'], $s_hidden_fields); exit; } } // // addslashes to vars if magic_quotes_gpc is off this is a security precaution // to prevent someone trying to break out of a SQL statement. // function slash_input_data(&$data) { if ( is_array($data) ) { while( list($k, $v) = each($data) ) { $data[$k] = ( is_array($v) ) ? slash_input_data($v) : addslashes($v); } @reset($data); } return $data; } // // // function page_header($l_instructions, $s_action) { global $phpEx, $lang; ?> <?php echo $lang['Welcome_install']; ?>
phpBB Logo      



Powered by phpBB © 2002 phpBB Group