diff options
| author | the_systech <the_systech@users.sourceforge.net> | 2001-10-16 20:56:43 +0000 |
|---|---|---|
| committer | the_systech <the_systech@users.sourceforge.net> | 2001-10-16 20:56:43 +0000 |
| commit | eddbaba2d4226b8568ba5e7f89de5089d0da474a (patch) | |
| tree | 5fb5a0e217ea3fbd855c8762934550fa19cdc628 /phpBB/install.php | |
| parent | 7285487e5bdc0b28e1868056683ac57b31c3e027 (diff) | |
| download | forums-eddbaba2d4226b8568ba5e7f89de5089d0da474a.tar forums-eddbaba2d4226b8568ba5e7f89de5089d0da474a.tar.gz forums-eddbaba2d4226b8568ba5e7f89de5089d0da474a.tar.bz2 forums-eddbaba2d4226b8568ba5e7f89de5089d0da474a.tar.xz forums-eddbaba2d4226b8568ba5e7f89de5089d0da474a.zip | |
One additional option for unwritable config file...(FTP) :D
git-svn-id: file:///svn/phpbb/trunk@1231 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/install.php')
| -rw-r--r-- | phpBB/install.php | 142 |
1 files changed, 137 insertions, 5 deletions
diff --git a/phpBB/install.php b/phpBB/install.php index 4a20fa6935..da25f31f89 100644 --- a/phpBB/install.php +++ b/phpBB/install.php @@ -116,6 +116,12 @@ $available_dbms = array( ) ); +// +// Uncomment the following line to completely disable the ftp option... +// + +// define('NO_FTP', true); + /*************************************************************************** * * End Install Customization Section @@ -150,6 +156,9 @@ $admin_pass1 = ( !empty($HTTP_POST_VARS['admin_pass1']) ) ? $HTTP_POST_VARS['adm $admin_pass2 = ( !empty($HTTP_POST_VARS['admin_pass2']) ) ? $HTTP_POST_VARS['admin_pass2'] : ""; $table_prefix = ( !empty($HTTP_POST_VARS['prefix']) ) ? $HTTP_POST_VARS['prefix'] : ""; +$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'] : ""; include($phpbb_root_path.'includes/sql_parse.'.$phpEx); include($phpbb_root_path.'includes/constants.'.$phpEx); @@ -198,7 +207,7 @@ if( defined("PHPBB_INSTALLED") ) $template->pparse('body'); exit; } -else if( !empty($HTTP_POST_VARS['send_file']) ) +else if( !empty($HTTP_POST_VARS['send_file']) && $HTTP_POST_VARS['send_file'] == 1 ) { header("Content-Type: text/x-delimtext; name=\"config.php\""); header("Content-disposition: attachment; filename=config.php"); @@ -212,6 +221,116 @@ else if( !empty($HTTP_POST_VARS['send_file']) ) exit; } +else if( !empty($HTTP_POST_VARS['send_file']) && $HTTP_POST_VARS['send_file'] == 2 ) +{ + // + // Ok we couldn't write the config file so let's try ftping it. + // + if ( get_magic_quotes_gpc() ) + { + $HTTP_POST_VARS['config_data'] = stripslashes($HTTP_POST_VARS['config_data']); + } + $s_hidden_fields = '<input type="hidden" name="config_data" value="'.htmlspecialchars($HTTP_POST_VARS['config_data']).'" />'; + $s_hidden_fields .= '<input type="hidden" name="ftp_file" value="1" />'; + $template->assign_block_vars("ftp_file", array()); + $template->assign_block_vars("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']) ) +{ + // + // Here we'll actually send the file... + // + if ( get_magic_quotes_gpc() ) + { + $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 = '<input type="hidden" name="config_data" value="' . htmlspecialchars($config_data) . '" />'; + $s_hidden_fields .= '<input type="hidden" name="send_file" value="1" />'; + $template->assign_block_vars("common_install", array()); + if ( $dbms == 'odbc' ) + { + // + // Output the instruction_textions for the odbc... + // + $s_hidden_fields .= '<input type="hidden" name="install_step" value="3" />'; + $lang['NoFTP_config'] = $lang['ODBC_Instructs'] . '<br />' . $lang['NoFTP_config']; + } + $template->assign_vars(array( + "L_INSTRUCTION_TEXT" => $lang['NoFTP_config'], + "L_SUBMIT" => $lang['Download_config'], + "S_HIDDEN_FIELDS" => $s_hidden_fields, + "S_FORM_ACTION" => "install.$phpEx") + ); + $template->pparse('body'); + 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.php', $tmpfname, FTP_ASCII); + @ftp_quit($conn_id); + unlink($tmpfname); + + // + // 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 = '<input type="hidden" name="username" value="' . $admin_name . '" />'; + $s_hidden_fields .= '<input type="hidden" name="password" value="' . $admin_pass1 . '" />'; + $s_hidden_fields .= '<input type="hidden" name="redirect" value="admin/" />'; + $s_hidden_fields .= '<input type="hidden" name="submit" value="Login" />'; + if ( $dbms == 'odbc' ) + { + // + // Output the instruction_textions for the odbc... + // + $lang['Inst_Step_2'] = $lang['ODBC_Instructs'] . '<br />' . $lang['Inst_Step_2']; + } + $template->assign_block_vars("common_install", array()); + $template->assign_vars(array( + "L_INSTRUCTION_TEXT" => $lang['Inst_Step_2'], + "L_SUBMIT" => $lang['Finish_Install'], + + "S_HIDDEN_FIELDS" => $s_hidden_fields, + "S_FORM_ACTION" => "login.$phpEx") + ); + + $template->pparse('body'); + exit(); + } +} else if( empty($install_step) || $admin_pass1 != $admin_pass2 || $dbhost == "" ) { // @@ -450,16 +569,29 @@ else // to get around that... // $s_hidden_fields = '<input type="hidden" name="config_data" value="' . htmlspecialchars($config_data) . '" />'; - $s_hidden_fields .= '<input type="hidden" name="send_file" value="1" />'; + if( extension_loaded('ftp') && !defined('NO_FTP') ) + { + $template->assign_block_vars('ftp_option', array()); + $lang['Unwriteable_config'] .= '<p>'.$lang['ftp_option'].'</p>'; + $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 .= '<input type="hidden" name="send_file" value="1" />'; + } if ( $dbms == 'odbc' ) { // // Output the instruction_textions for the odbc... // - $template->assign_block_vars("common_install", array()); + // $template->assign_block_vars("common_install", array()); $s_hidden_fields .= '<input type="hidden" name="install_step" value="3" />'; - $lang['Unwritable_config'] = $lang['ODBC_Instructs'] . '<br />' . $lang['Unwritable_config']; + $lang['Unwriteable_config'] = $lang['ODBC_Instructs'] . '<p>' . $lang['Unwriteable_config'] . '</p>'; } $template->assign_vars(array( @@ -508,4 +640,4 @@ else } } -?>
\ No newline at end of file +?> |
