aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpBB/common.php8
-rw-r--r--phpBB/config.php100
-rw-r--r--phpBB/install.php754
-rwxr-xr-xphpBB/language/lang_english.php25
-rw-r--r--phpBB/templates/subSilver/install.tpl235
5 files changed, 629 insertions, 493 deletions
diff --git a/phpBB/common.php b/phpBB/common.php
index 09f6d967a6..fad64a7fd9 100644
--- a/phpBB/common.php
+++ b/phpBB/common.php
@@ -102,7 +102,13 @@ $theme = Array();
$images = Array();
$lang = Array();
-include($phpbb_root_path . 'config.'.$phpEx);
+@include($phpbb_root_path . 'config.'.$phpEx);
+
+if( !defined("PHPBB_INSTALLED") )
+{
+ header("Location: install.$phpEx");
+}
+
include($phpbb_root_path . 'includes/constants.'.$phpEx);
include($phpbb_root_path . 'includes/template.'.$phpEx);
include($phpbb_root_path . 'includes/sessions.'.$phpEx);
diff --git a/phpBB/config.php b/phpBB/config.php
index d04e4b5260..e69de29bb2 100644
--- a/phpBB/config.php
+++ b/phpBB/config.php
@@ -1,100 +0,0 @@
-<?php
-/***************************************************************************
- * config.php
- * -------------------
- * begin : Saturday, Feb 13, 2001
- * copyright : (C) 2001 The phpBB Group
- * email : support@phpbb.com
- *
- * $Id$
- *
- *
- ***************************************************************************/
-
-/***************************************************************************
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- ***************************************************************************/
-
-// DB connection config
-//
-// Uncomment the relevant entry
-// and fill in the required details
-//
-
-/*
-//
-// MySQL
-//
-$dbms = "mysql";
-$dbhost = "localhost";
-$dbname = "phpbb2";
-$dbuser = "root";
-$dbpasswd = "";
-*/
-
-/*
-//
-// PostgreSQL
-//
-$dbms = "postgres";
-$dbhost = "";
-$dbname = "";
-$dbuser = "";
-$dbpasswd = "";
-*/
-
-/*
-//
-// MSSQL
-//
-$dbms = "mssql";
-$dbhost = "";
-$dbname = "";
-$dbuser = "";
-$dbpasswd = "";
-*/
-
-/*
-//
-// ODBC - Access
-//
-$dbms = "odbc";
-$dbhost = "msaccess:<HOST HERE>";
-$dbname = "";
-$dbuser = "";
-$dbpasswd = "";
-*/
-
-/*
-//
-// ODBC - DB2
-//
-$dbms = "odbc";
-$dbhost = "db2:<HOST HERE>";
-$dbname = "";
-$dbuser = "";
-$dbpasswd = "";
-*/
-
-/*
-//
-// Oracle
-//
-$dbms = "oracle";
-$dbhost = "";
-$dbname = "";
-$dbuser = "";
-$dbpasswd = "";
-*/
-
-//
-// DB table prefix
-//
-$table_prefix = "phpbb_";
-
-?> \ No newline at end of file
diff --git a/phpBB/install.php b/phpBB/install.php
index 50ce9fb4e5..9f1da1f07e 100644
--- a/phpBB/install.php
+++ b/phpBB/install.php
@@ -18,26 +18,72 @@
* (at your option) any later version.
*
***************************************************************************/
-//
-// First thing to check for is the case that we couldn't write the config
-// file and they chose to have use send it to them.
-//
-if($HTTP_POST_VARS['send_file'] == 1)
+$phpbb_root_path='./';
+include($phpbb_root_path.'extension.inc');
+
+if( !get_magic_quotes_gpc() )
{
- header("Content-Type: text/x-delimtext; name=\"config.php\"");
- header("Content-disposition: attachment; filename=config.php");
- if(get_magic_quotes_gpc())
+ if( is_array($HTTP_GET_VARS) )
{
- $HTTP_POST_VARS['config_data'] = stripslashes($HTTP_POST_VARS['config_data']);
+ while( list($k, $v) = each($HTTP_GET_VARS) )
+ {
+ if( is_array($HTTP_GET_VARS[$k]) )
+ {
+ while( list($k2, $v2) = each($HTTP_GET_VARS[$k]) )
+ {
+ $HTTP_GET_VARS[$k][$k2] = addslashes($v2);
+ }
+ @reset($HTTP_GET_VARS[$k]);
+ }
+ else
+ {
+ $HTTP_GET_VARS[$k] = addslashes($v);
+ }
+ }
+ @reset($HTTP_GET_VARS);
}
- echo $HTTP_POST_VARS['config_data'];
- exit();
-}
-$phpbb_root_path='./';
-include($phpbb_root_path.'extension.inc');
+ if( is_array($HTTP_POST_VARS) )
+ {
+ while( list($k, $v) = each($HTTP_POST_VARS) )
+ {
+ if( is_array($HTTP_POST_VARS[$k]) )
+ {
+ while( list($k2, $v2) = each($HTTP_POST_VARS[$k]) )
+ {
+ $HTTP_POST_VARS[$k][$k2] = addslashes($v2);
+ }
+ @reset($HTTP_POST_VARS[$k]);
+ }
+ else
+ {
+ $HTTP_POST_VARS[$k] = addslashes($v);
+ }
+ }
+ @reset($HTTP_POST_VARS);
+ }
+ if( is_array($HTTP_COOKIE_VARS) )
+ {
+ while( list($k, $v) = each($HTTP_COOKIE_VARS) )
+ {
+ if( is_array($HTTP_COOKIE_VARS[$k]) )
+ {
+ while( list($k2, $v2) = each($HTTP_COOKIE_VARS[$k]) )
+ {
+ $HTTP_COOKIE_VARS[$k][$k2] = addslashes($v2);
+ }
+ @reset($HTTP_COOKIE_VARS[$k]);
+ }
+ else
+ {
+ $HTTP_COOKIE_VARS[$k] = addslashes($v);
+ }
+ }
+ @reset($HTTP_COOKIE_VARS);
+ }
+}
/***************************************************************************
* Install Customization Section
@@ -47,399 +93,427 @@ include($phpbb_root_path.'extension.inc');
* and the default template.
*
**************************************************************************/
-$userdata = "some false data";
-$theme = array(
- 'themes_id' => '2',
- 'themes_name' => 'Default',
- 'template_name' => 'Default',
- 'td_color1' => 'CCCCCC',
- 'td_color2' => 'DDDDDD'
-);
+
$default_language = 'english';
-$default_template = 'Default';
+$default_template = 'subSilver';
-$available_dbms[] = array(
- "LABEL" => "MySQL",
- "VALUE" => "mysql"
-);
-$available_dbms[] = array(
- "LABEL" => "MS SQL",
- "VALUE" => "mssql"
-);
-$available_dbms[] = array(
- "LABEL" => "Postgres",
- "VALUE" => "postgres"
-);
-$available_dbms[] = array(
- "LABEL" => "ODBC - MSAccess",
- "VALUE" => "odbc:access"
-);
-$available_dbms[] = array(
- "LABEL" => "ODBC - DB2",
- "VALUE" => "odbc:db2"
+$available_dbms = array(
+ array(
+ "LABEL" => "MySQL",
+ "VALUE" => "mysql"
+ ),
+ array(
+ "LABEL" => "PostgreSQL 7.x",
+ "VALUE" => "postgres"
+ ),
+ array(
+ "LABEL" => "MS SQL Server 7/2000",
+ "VALUE" => "mssql"
+ ),
+ array(
+ "LABEL" => "ODBC - MS Access",
+ "VALUE" => "odbc:msaccess"
+ )
);
+
/***************************************************************************
*
* End Install Customization Section
*
***************************************************************************/
+$userdata = array();
+$lang = array();
+
//
-// Fill an array with a list of available languages.
+// Obtain various vars
//
-
-$dir = opendir($phpbb_root_path.'/language');
-while($file = readdir($dir))
+if( isset($HTTP_POST_VARS['install_step']) || isset($HTTP_GET_VARS['install_step']) )
{
- if(preg_match("/^lang_(.*)\.$phpEx/", $file, $matches))
- {
- $available_lang[] = $matches[1];
- }
+ $install_step = ( isset($HTTP_POST_VARS['install_step']) ) ? $HTTP_POST_VARS['install_step'] : $HTTP_GET_VARS['install_step'];
+}
+else
+{
+ $install_step = "";
}
-//
-// Bring in the extra files that contain functions we need.
-//
+$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'] : "";
+
+$admin_username = ( !empty($HTTP_POST_VARS['admin_user']) ) ? $HTTP_POST_VARS['admin_user'] : "";
+$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'] : "";
+
+$table_prefix = ( !empty($HTTP_POST_VARS['prefix']) ) ? $HTTP_POST_VARS['prefix'] : "";
-$language = ($HTTP_POST_VARS['language']) ? $HTTP_POST_VARS['language'] : $default_language;
include($phpbb_root_path.'includes/sql_parse.'.$phpEx);
include($phpbb_root_path.'includes/constants.'.$phpEx);
include($phpbb_root_path.'includes/template.'.$phpEx);
include($phpbb_root_path.'includes/functions.'.$phpEx);
-include($phpbb_root_path.'language/lang_'.$language.'.'.$phpEx);
+include($phpbb_root_path.'includes/sessions.'.$phpEx);
//
-// Create an instance of the template class.
+// Import language file, setup template ...
//
+include($phpbb_root_path.'language/lang_' . $language . '.'.$phpEx);
+
$template = new Template($phpbb_root_path . "templates/" . $default_template);
-
-if(file_exists('config.'.$phpEx))
+//
+// Load default template for install
+//
+$template->set_filenames(array(
+ "body" => "install.tpl")
+);
+
+$template->assign_vars(array(
+ "L_INSTALLATION" => $lang['Welcome_install'])
+);
+
+
+//
+// Start main program ...
+//
+if( @file_exists('config.'.$phpEx) )
{
include('config.'.$phpEx);
}
-if($installed)
+
+if( defined("PHPBB_INSTALLED") )
{
//
// Sorry this has already been installed can't do anything more with it
//
- $template->set_filenames(array(
- "body" => "install_error.tpl")
- );
+ $template->assign_block_vars("error_install", array());
$template->assign_vars(array(
- "L_TITLE" => $lang['Installer_Error'],
+ "L_ERROR_TITLE" => $lang['Installer_Error'],
"L_ERROR" => $lang['Previous_Install'])
);
+
$template->pparse('body');
- die();
+ exit;
}
-//
-// 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.
-//
-$installStep = ($HTTP_POST_VARS['installStep']) ? $HTTP_POST_VARS['installStep']: $HTTP_GET_VARS['installStep'];
-$dbms = ($HTTP_POST_VARS['dbms']);
-if( (!isset($installStep) || $installStep == 0) || ($HTTP_POST_VARS['admin_pass1'] != $HTTP_POST_VARS['admin_pass2']) )
+else if( !empty($HTTP_POST_VARS['send_file']) )
{
+ header("Content-Type: text/x-delimtext; name=\"config.php\"");
+ header("Content-disposition: attachment; filename=config.php");
+
+ if( get_magic_quotes_gpc() )
+ {
+ $HTTP_POST_VARS['config_data'] = stripslashes($HTTP_POST_VARS['config_data']);
+ }
+
+ echo $HTTP_POST_VARS['config_data'];
+
+ exit;
+}
+else if( empty($install_step) || $admin_pass1 != $admin_pass2 || $dbhost == "" )
+{
+ //
+ // 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.
//
- $Instruct = $lang['Inst_Step_0'];
+ $instruction_text = $lang['Inst_Step_0'];
+
if( $HTTP_POST_VARS['admin_pass1'] != $HTTP_POST_VARS['admin_pass2'] )
{
- $Instruct = $lang['Password_mismatch'] . '<br>' . $Instruct;
- }
- $template->set_filenames(array(
- "body" => "install.tpl")
- );
- $template->assign_vars(array(
- "L_INSTRUCT" => $Instruct,
- "L_SUBMIT" => $lang['Start_Install'],
- "S_FORM_ACTION" => 'install.'.$phpEx)
- );
- $template->assign_block_vars("hidden_fields", array(
- "NAME" => "installStep",
- "VALUE" => "1")
- );
- $template->assign_block_vars("inputs", array(
- "NAME" => "dbhost",
- "TYPE" => "text",
- "VALUE" => $HTTP_POST_VARS['dbhost'],
- "L_LABEL" => $lang['DB_Host'] . ':')
- );
- $template->assign_block_vars("inputs", array(
- "NAME" => "dbname",
- "TYPE" => "text",
- "VALUE" => $HTTP_POST_VARS['dbname'],
- "L_LABEL" => $lang['DB_Name'] . ':')
- );
- $template->assign_block_vars("inputs", array(
- "NAME" => "dbuser",
- "TYPE" => "text",
- "VALUE" => $HTTP_POST_VARS['dbuser'],
- "L_LABEL" => $lang['Database'] . ' ' . $lang['Username'] . ':')
- );
- $template->assign_block_vars("inputs", array(
- "NAME" => "dbpasswd",
- "TYPE" => "password",
- "VALUE" => $HTTP_POST_VARS['dbpasswd'],
- "L_LABEL" => $lang['Database'] . ' ' . $lang['Password'] . ':')
- );
- $template->assign_block_vars("inputs", array(
- "NAME" => "prefix",
- "TYPE" => "text",
- "VALUE" => (!empty($HTTP_POST_VARS['prefix'])) ? $HTTP_POST_VARS['prefix'] : "phpbb_",
- "L_LABEL" => $lang['Table_Prefix'] . ':')
- );
- $template->assign_block_vars("inputs", array(
- "NAME" => "admin_name",
- "TYPE" => "text",
- "VALUE" => $HTTP_POST_VARS['admin_name'],
- "L_LABEL" => $lang['Administrator'] . ' ' . $lang['Username'] . ':')
- );
- $template->assign_block_vars("inputs", array(
- "NAME" => "admin_pass1",
- "TYPE" => "password",
- "VALUE" => $HTTP_POST_VARS['admin_pass1'],
- "L_LABEL" => $lang['Administrator'] . ' ' . $lang['Password'] . ':')
- );
- $template->assign_block_vars("inputs", array(
- "NAME" => "admin_pass2",
- "TYPE" => "password",
- "VALUE" => $HTTP_POST_VARS['admin_pass2'],
- "L_LABEL" => $lang['Confirm'] . ' ' . $lang['Password'] . ':')
- );
- $template->assign_block_vars("selects", array(
- "NAME" => "language",
- "L_LABEL" => $lang['Install_lang'])
- );
- for($i = 0; $i < count($available_lang); $i++)
- {
- $template->assign_block_vars("selects.options", array(
- "LABEL" => $available_lang[$i],
- "DEFAULT" => ($available_lang[$i] == $HTTP_POST_VARS['language'])?'SELECTED':'',
- "VALUE" => $available_lang[$i])
- );
+ $instruction_text = $lang['Password_mismatch'] . '<br />' . $instruction_text;
}
- $template->assign_block_vars("selects", array(
- "NAME" => "dbms",
- "L_LABEL" => $lang['dbms'])
- );
+
+ $lang_options = language_select($language, 'language');
+
+ $dbms_options = '<select name="dbms">';
for($i = 0; $i < count($available_dbms); $i++)
{
- $template->assign_block_vars("selects.options", array(
- "LABEL" => $available_dbms[$i]['LABEL'],
- "DEFAULT" => ($available_dbms[$i]['VALUE'] == $HTTP_POST_VARS['dbms'])?'SELECTED':'',
- "VALUE" => $available_dbms[$i]['VALUE'])
- );
+ $selected = ( $available_dbms[$i]['VALUE'] == $dbms ) ? "selected=\"selected\"" : "";
+ $dbms_options .= '<option value="' . $available_dbms[$i]['VALUE'] . '">' . $available_dbms[$i]['LABEL'] . '</option>';
}
+ $dbms_options .= '</select>';
+
+ $s_hidden_fields = '<input type="hidden" name="install_step" value="1" />';
+
+ $template->assign_block_vars("stage_one_install", array());
+ $template->assign_block_vars("common_install", array());
+
+ $template->assign_vars(array(
+ "L_INSTRUCTION_TEXT" => $instruction_text,
+ "L_INITIAL_CONFIGURATION" => $lang['Initial_config'],
+ "L_DATABASE_CONFIGURATION" => $lang['DB_config'],
+ "L_ADMIN_CONFIGURATION" => $lang['Admin_config'],
+ "L_LANGUAGE" => $lang['Default_lang'],
+ "L_DBMS" => $lang['dbms'],
+ "L_DB_HOST" => $lang['DB_Host'],
+ "L_DB_NAME" => $lang['DB_Name'],
+ "L_DB_USER" => $lang['Database'] . ' ' . $lang['Username'],
+ "L_DB_PASSWORD" => $lang['Database'] . ' ' . $lang['Password'],
+ "L_DB_PREFIX" => $lang['Table_Prefix'],
+
+ "L_ADMIN_USERNAME" => $lang['Administrator'] . ' ' . $lang['Username'],
+ "L_ADMIN_PASSWORD" => $lang['Administrator'] . ' ' . $lang['Password'],
+ "L_ADMIN_CONFIRM_PASSWORD" => $lang['Confirm'] . ' ' . $lang['Password'],
+
+ "L_SUBMIT" => $lang['Start_Install'],
+
+ "DB_PREFIX" => ( $table_prefix != "" ) ? $table_prefix : "phpbb_",
+ "DB_HOST" => ( $dbhost != "" ) ? $dbhost : "",
+ "DB_USER" => ( $dbuser != "" ) ? $dbuser : "",
+ "DB_PASSWD" => ( $dbpasswd != "" ) ? $dbpasswd : "",
+ "ADMIN_USERNAME" => ( $admin_username != "" ) ? $admin_username : "",
+
+ "S_LANG_SELECT" => $lang_options,
+ "S_DBMS_SELECT" => $dbms_options,
+ "S_HIDDEN_FIELDS" => $s_hidden_fields,
+ "S_FORM_ACTION" => "install.$phpEx")
+ );
+
+// "L_DOMAIN_NAME" => $lang['Domain_name'],
+// "L_DOMAIN_NAME_EXPLAIN" => $lang['Domain_name_explain'],
+
$template->pparse("body");
+
exit();
}
-//
-// If the dbms is set to be odbc then we need to skip most of the
-// steps and go straight to writing the config file. We'll spit
-// out some additional instructions later on what to do after installation
-// for the odbc DBMS.
-//
-if (ereg(':', $dbms) && $installStep < 2)
-{
- $dbms = explode(':', $dbms);
- $dbhost = $dbms[1] . ':' . $dbhost;
- $dbms = $dbms[0];
- $installStep = 2;
-}
-elseif ( isset($dbms) )
+else
{
- include($phpbb_root_path.'includes/db.'.$phpEx);
-}
+ //
+ // If the dbms is set to be odbc then we need to skip most of the
+ // steps and go straight to writing the config file. We'll spit
+ // out some additional instruction_textions later on what to do after installation
+ // for the odbc DBMS.
+ //
+ if( ereg(':', $dbms) && $install_step < 2 )
+ {
+ $dbms = explode(':', $dbms);
+ $dbhost = $dbms[1] . ':' . $dbhost;
+ $dbms = $dbms[0];
+ $install_step = 2;
+ }
+ else if( isset($dbms) )
+ {
+ include($phpbb_root_path.'includes/db.'.$phpEx);
+ }
-$dbms_schema = 'db/'.$dbms.'_schema.sql';
-$dbms_basic = 'db/'.$dbms.'_basic.sql';
-$remove_remarks = ($dbms == 'mysql')?'remove_remarks':'remove_comments';
-$delimiter = ( $dbms == 'mssql' )?'GO':';';
-switch ( $installStep )
-{
- case 1:
- //
- // 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 = $remove_remarks($sql_query);
- $sql_query = split_sql_file($sql_query, $delimiter);
- $sql_count = count($sql_query);
- $sql_query = preg_replace('/phpbb_/', $HTTP_POST_VARS['prefix'], $sql_query);
- for($i = 0; $i < $sql_count; $i++)
- {
- $result = $db->sql_query($sql_query[$i]);
- if( !$result )
- {
- $error = $db->sql_error();
- $template->set_filenames(array(
- "body" => "install_error.tpl")
- );
- $template->assign_vars(array(
- "L_TITLE" => $lang['Installer_Error'],
- "L_ERROR" => $lang['Install_db_error'] . '<br>' . $error['message'])
- );
- $template->pparse('body');
- die();
- }
- }
- //
- // Ok tables have been built, let's fill in the basic information
- //
- $sql_query = fread(fopen($dbms_basic, 'r'), filesize($dbms_basic));
- $sql_query = $remove_remarks($sql_query);
- $sql_query = split_sql_file($sql_query, $delimiter);
- $sql_count = count($sql_query);
- $sql_query = preg_replace('/phpbb_/', $HTTP_POST_VARS['prefix'], $sql_query);
- for($i = 0; $i < $sql_count; $i++)
- {
- $result = $db->sql_query($sql_query[$i]);
- if( !$result )
- {
- $error = $db->sql_error();
- $template->set_filenames(array(
- "body" => "install_error.tpl")
- );
- $template->assign_vars(array(
- "L_TITLE" => $lang['Installer_Error'],
- "L_ERROR" => $lang['Install_db_error'] . "<br>" . $error["message"])
- );
- $template->pparse('body');
- die();
- }
- }
- //
- // 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.
- //
- if( $dbms == 'odbc' )
- {
+ $dbms_schema = 'db/' . $dbms.'_schema.sql';
+ $dbms_basic = 'db/' . $dbms . '_basic.sql';
+
+ $remove_remarks = ( $dbms == 'mysql' ) ? 'remove_remarks' : 'remove_comments';
+ $delimiter = ( $dbms == 'mssql' ) ? 'GO' : ';';
+
+ switch ( $install_step )
+ {
+ case 1:
//
- // Output the instructions for the odbc...
+ // 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.
//
- $template->set_filenames(array(
- "body" => "install.tpl")
- );
-
- $template->assign_vars(array(
- "L_INSTRUCT" => $lang['ODBC_Instructs'],
- "L_SUBMIT" => $lang['OK'],
- "S_FORM_ACTION" => 'install.'.$phpEx)
- );
- $template->assign_block_vars("hidden_fields", array(
- "NAME" => "installStep",
- "VALUE" => '3')
- );
- exit();
- }
- else
- {
+ $sql_query = @fread(@fopen($dbms_schema, 'r'), @filesize($dbms_schema));
+ $sql_query = $remove_remarks($sql_query);
+ $sql_query = split_sql_file($sql_query, $delimiter);
+ $sql_count = count($sql_query);
+ $sql_query = preg_replace('/phpbb_/', $table_prefix, $sql_query);
+
+ for($i = 0; $i < $sql_count; $i++)
+ {
+ $result = $db->sql_query($sql_query[$i]);
+ if( !$result )
+ {
+ $error = $db->sql_error();
+
+ $template->assign_block_vars("error_install", array());
+ $template->assign_vars(array(
+ "L_ERROR_TITLE" => $lang['Installer_Error'],
+ "L_ERROR" => $lang['Install_db_error'] . '<br>' . $error['message'])
+ );
+ $template->pparse('body');
+ die();
+ }
+ }
+
//
- // Update the default admin user with their information.
+ // Ok tables have been built, let's fill in the basic information
//
- $sql = "UPDATE ".$HTTP_POST_VARS['prefix']."users
- SET username='".$HTTP_POST_VARS['admin_name']."',
- user_password='".md5($HTTP_POST_VARS['admin_pass1'])."'
- WHERE username = 'Admin'";
- $result = $db->sql_query($sql);
- if( !$result )
+ $sql_query = @fread(@fopen($dbms_basic, 'r'), @filesize($dbms_basic));
+ $sql_query = $remove_remarks($sql_query);
+ $sql_query = split_sql_file($sql_query, $delimiter);
+ $sql_count = count($sql_query);
+ $sql_query = preg_replace('/phpbb_/', $table_prefix, $sql_query);
+
+ for($i = 0; $i < $sql_count; $i++)
{
- $error = $db->sql_error();
- $template->set_filenames(array(
- "body" => "install_error.tpl")
- );
- $template->assign_vars(array(
- "L_TITLE" => $lang['Installer_Error'],
- "L_ERROR" => $lang['Install_db_error'] . '<br>' . $error['message'])
- );
- $template->pparse('body');
- die();
+ $result = $db->sql_query($sql_query[$i]);
+ if( !$result )
+ {
+ $error = $db->sql_error();
+
+ $template->assign_block_vars("error_install", array());
+ $template->assign_vars(array(
+ "L_ERROR_TITLE" => $lang['Installer_Error'],
+ "L_ERROR" => $lang['Install_db_error'] . "<br />" . $error["message"])
+ );
+ $template->pparse('body');
+ die();
+ }
}
//
- // Write out the config file.
+ // 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.
//
- $config_data = '<?php'."\n";
- $config_data.= '$dbms = "'.$dbms.'";'."\n";
- $config_data.= '$dbhost = "'.$dbhost.'";'."\n";
- $config_data.= '$dbname = "'.$dbname.'";'."\n";
- $config_data.= '$dbuser = "'.$dbuser.'";'."\n";
- $config_data.= '$dbpasswd = "'.$dbpasswd.'";'."\n";
- $config_data.= '$installed = True;'."\n";
- $config_data.= '$table_prefix = "'.$HTTP_POST_VARS['prefix'].'";'."\n";
- $config_data.= '?>';
- @umask(0111);
- $noOpen = False;
- $fp = @fopen('config.php', 'w');
- if(!$fp)
+ if( $dbms == 'odbc' )
{
//
- // Unable to open the file writeable do something here as an attempt
- // to get around that...
- $template->set_filenames(array(
- "body" => "install.tpl")
- );
+ // Output the instruction_textions for the odbc...
+ //
+ $template->assign_block_vars("common_install", array());
+
+ $s_hidden_fields = '<input type="hidden" name="install_step" value="3" />';
+
$template->assign_vars(array(
- "L_INSTRUCT" => $lang['UnWrite_Config'],
- "L_SUBMIT" => $lang['Send_Config'],
+ "L_INSTRUCTION_TEXT" => $lang['ODBC_instruction_texts'],
+ "L_SUBMIT" => $lang['OK'],
+
+ "S_HIDDEN_FIELDS" => $s_hidden_fields,
"S_FORM_ACTION" => 'install.'.$phpEx)
);
- $template->assign_block_vars("hidden_fields", array(
- "NAME" => "config_data",
- "VALUE" => htmlspecialchars($config_data) )
- );
- $template->assign_block_vars("hidden_fields", array(
- "NAME" => "send_file",
- "VALUE" => "1")
+ exit();
+ }
+ else
+ {
+ $error = "";
+ //
+ // Update the default admin user with their information.
+ //
+ $sql = "INSERT INTO " . $table_prefix . "config (config_name, config_value)
+ VALUES ('board_startdate', " . time() . ")";
+ $result = $db->sql_query($sql);
+ if( !$result )
+ {
+ $error .= "Could not insert board_startdate :: " . $sql . "<br /><br />";
+ }
+
+ $sql = "INSERT INTO " . $table_prefix . "config (config_name, config_value)
+ VALUES ('default_lang', '$language')";
+ $result = $db->sql_query($sql);
+ if( !$result )
+ {
+ $error .= "Could not insert default_lang :: " . $sql . "<br /><br />";
+ }
+
+ $sql = "UPDATE " . $table_prefix . "users
+ SET username = '$admin_name', user_password='" . md5($admin_pass1) . "', user_lang = '" . $language . "'
+ WHERE username = 'Admin'";
+ $result = $db->sql_query($sql);
+ if( !$result )
+ {
+ $error .= "Could not update admin info :: " . $sql . "<br /><br />";
+ }
+
+ $sql = "UPDATE " . $table_prefix . "users
+ SET user_regdate = " . time();
+ $result = $db->sql_query($sql);
+ if( !$result )
+ {
+ $error .= "Could not update user_regdate :: " . $sql . "<br /><br />";
+ }
+
+ if( $error != "" )
+ {
+ $error = $db->sql_error();
+
+ $template->assign_block_vars("error_install", array());
+ $template->assign_vars(array(
+ "L_ERROR_TITLE" => $lang['Installer_Error'],
+ "L_ERROR" => $lang['Install_db_error'] . '<br /><br />' . $error)
+ );
+
+ $template->pparse('body');
+ exit;
+ }
+
+ $template->assign_block_vars("common_install", array());
+
+ //
+ // Write out the config file.
+ //
+ $config_data = '<?php'."\n\n";
+ $config_data .= "//\n// phpBB 2.x auto-generated config file\n// Do not change anything in this file!\n//\n\n";
+ $config_data .= '$dbms = "' . $dbms . '";' . "\n\n";
+ $config_data .= '$dbhost = "' . $dbhost . '";' . "\n";
+ $config_data .= '$dbname = "' . $dbname . '";' . "\n";
+ $config_data .= '$dbuser = "' . $dbuser . '";' . "\n";
+ $config_data .= '$dbpasswd = "' . $dbpasswd . '";' . "\n\n";
+ $config_data .= '$table_prefix = "' . $table_prefix . '";' . "\n\n";
+ $config_data .= 'define(\'PHPBB_INSTALLED\', true);'."\n\n";
+ $config_data .= '?' . '>'; // Done this to prevent highlighting editors getting confused!
+
+ @umask(0111);
+ $no_open = FALSE;
+
+ $fp = @fopen('config.php', 'w');
+
+ if( !$fp )
+ {
+ //
+ // Unable to open the file writeable do something here as an attempt
+ // 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" />';
+
+ $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);
+
+ //
+ // 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="forward_page" value="admin/" />';
+ $s_hidden_fields .= '<input type="hidden" name="submit" value="Login" />';
+
+ $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();
}
- $result = fputs($fp, $config_data, strlen($config_data));
- fclose($fp);
- //
- // 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.
- //
- $template->set_filenames(array(
- "body" => "install.tpl")
- );
- $template->assign_vars(array(
- "L_INSTRUCT" => $lang['Inst_Step_2'],
- "L_SUBMIT" => $lang['Finish_Install'],
- "S_FORM_ACTION" => 'login.'.$phpEx)
- );
-
- $template->assign_block_vars("hidden_fields", array(
- "NAME" => 'username',
- "VALUE" => $admin_name)
- );
- $template->assign_block_vars("hidden_fields", array(
- "NAME" => 'password',
- "VALUE" => $admin_pass1)
- );
- $template->assign_block_vars("hidden_fields", array(
- "NAME" => 'submit',
- "VALUE" => 'Login')
- );
- $template->assign_block_vars("hidden_fields", array(
- "NAME" => 'forward_page',
- "VALUE" => 'admin/admin_board.'.$phpEx.'?mode=config')
- );
- $template->pparse('body');
- exit();
- }
- break;
+ break;
+ }
}
+
+?> \ No newline at end of file
diff --git a/phpBB/language/lang_english.php b/phpBB/language/lang_english.php
index 53277c1f76..4aa9b2135a 100755
--- a/phpBB/language/lang_english.php
+++ b/phpBB/language/lang_english.php
@@ -101,6 +101,7 @@ $lang['post_topics'] = "post new topics in this forum";
$lang['reply_posts'] = "reply to posts in this forum";
$lang['edit_posts'] = "edit your posts in this forum";
$lang['delete_posts'] = "delete your posts in this forum";
+$lang['vote_polls'] = "vote in polls in this forum";
$lang['moderate_forum'] = "moderate this forum";
$lang['View_latest_post'] = "View latest post";
@@ -960,10 +961,15 @@ $lang['Compose'] = "Compose";
//
// Install Process
//
-$lang['Installer_Error'] = "An error has occured during installation.";
-$lang['Previous_Install'] = "A previous installtion has been detected.";
-$lang['Inst_Step_0'] = "Thank you for choosing phpBB version 2. Please select your chosen database server, and enter the information for your database server host, database name, username, and password. NOTE: The database should already exist.";
+$lang['Welcome_install'] = "Welcome to phpBB 2 Installation";
+$lang['Initial_config'] = "Basic Configuration";
+$lang['DB_config'] = "Database Configuration";
+$lang['Admin_config'] = "Admin Configuration";
+$lang['Installer_Error'] = "An error has occured during installation";
+$lang['Previous_Install'] = "A previous installation has been detected";
+$lang['Inst_Step_0'] = "Thank you for choosing phpBB 2. In order to complete this install please fill out the details requested below. Please note that the database you install into should already exist";
$lang['Start_Install'] = "Start Install";
+$lang['Default_lang'] = "Default board language";
$lang['DB_Host'] = "Database Server Hostname";
$lang['DB_Name'] = "Your Database Name";
$lang['Database'] = "Your Database";
@@ -971,16 +977,13 @@ $lang['Install_lang'] = "Choose Language for Installation";
$lang['dbms'] = "Database Type";
$lang['Inst_Step_1'] = "Your database tables have been created and filled with some basic default data. Please enter your chosen phpBB Admin Username and Password.";
$lang['Create_User'] = "Create User";
-$lang['Inst_Step_2'] = "Your admin username has been created. At this point your installation is basically completed, you will now be taken to a screen which will allow you to specify some basic default settings for your board.";
+$lang['Inst_Step_2'] = "Your admin username has been created. At this point your basic installation is complete. You will now be taken to a screen which will allow you to administer your new installation. Please be sure to check the General Configuration details and make any required changes. Thank you for choosing phpBB 2.";
$lang['Finish_Install'] = "Finish Installation";
$lang['Install_db_error'] = "An error occured trying to update the database";
$lang['ODBC_Instructs'] = "Someone please write some odbc instructions in the \$lang['ODBC_Instructs'] variable!";
-$lang['Table_Prefix'] = "Table Name Prefix";
-$lang['Send_Config'] = "Send Config File";
-$lang['UnWrite_Config'] = "Setup was unable to write your config file to the phpBB directory. You can either correct this by making the config file writable
-by the webserver, and running this setup again, or you may choose to have the config.php file sent to you by clicking the button below. Once the file has been
-saved to your local hard drive you should then ftp it to the server in your phpBB directory, and then <a href='login.php'>log into phpBB</a> and go the administration Panel to customize your board.";
-
+$lang['Table_Prefix'] = "Prefix for tables in database";
+$lang['Unwriteable_config'] = "Your config file is unwriteable at present. A copy of the config file will be downloaded to your when you click the button below. You should upload this file to the same directory as phpBB 2. Once this is done you should log in using the administrator name and password you provided on the previous form and visit the admin control centre (a link will appear at the bottom of each screen once logged in) to check the general configuration. Thank you for choosing phpBB 2.";
+$lang['Download_config'] = "Download Config";
//
// End
// -------------------------------------------------
@@ -1020,4 +1023,4 @@ $l_emailpass = "Email Lost Password";
$l_passexplain = "Please fill out the form, a new password will be sent to your Email address";
$l_sendpass = "Send Password";
-?>
+?> \ No newline at end of file
diff --git a/phpBB/templates/subSilver/install.tpl b/phpBB/templates/subSilver/install.tpl
index 90391f84d4..372837f8fd 100644
--- a/phpBB/templates/subSilver/install.tpl
+++ b/phpBB/templates/subSilver/install.tpl
@@ -1,42 +1,195 @@
-<HTML>
-<HEAD>
-<TITLE>phpBB Version 2.0 Installation</TITLE>
-</HEAD>
-<body bgcolor="#E5E5E5" text="#03699C" link="#993300" vlink="#FF9900">
-<FORM action='{S_FORM_ACTION}' method="post" >
- <!-- BEGIN hidden_fields -->
- <input type="hidden" name='{hidden_fields.NAME}' value='{hidden_fields.VALUE}'>
- <!-- END hidden_fields -->
- <table>
- <!-- BEGIN selects -->
- <tr>
- <td colspan="2"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">{L_INSTRUCT}</font></td>
+<!-- DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" -->
+<!-- <html xmlns="http://www.w3.org/1999/xhtml"> -->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<meta http-equiv="Content-Style-Type" content="text/css" />
+
+<title>{L_INSTALLATION}</title>
+<style type="text/css">
+<!--
+/* subSilver Theme for phpBB2
+ * Created by subBlue design
+ * http://www.subBlue.com
+ */
+
+body { background-color:#E5E5E5;
+ scrollbar-face-color: #C8D1D7; scrollbar-highlight-color: #EAF0F7;
+ scrollbar-shadow-color: #95AFC4; scrollbar-3dlight-color: #D6DDE2;
+ scrollbar-arrow-color: #006699; scrollbar-track-color: #EFEFEF;
+ scrollbar-darkshadow-color: #7294AF;
+}
+
+font { font-family: Verdana, Arial, Helvetica, sans-serif }
+td { font-family: Verdana, Arial, Helvetica, sans-serif }
+th { font-family: Verdana, Arial, Helvetica, sans-serif }
+P { font-family: Verdana, Arial, Helvetica, sans-serif }
+hr { height: 1px; color:#c2cdd6 }
+
+/* Forum colours */
+.bodyline { background-color:#FFFFFF; border: #AEBDC4; border-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px }
+.forumline { background-color:#FFFFFF; border: 2px #006699 solid }
+
+/* Main table cell colours and backgrounds */
+TH { background-color: #1B7CAD; height: 25px; font-size: 11px; line-height : 100%; font-weight: bold; color: #FFB163; background-image: url(templates/subSilver/images/cellpic3.gif) }
+TD.cat { background-color: #CBD3D9; height: 28px; background-image: url(templates/subSilver/images/cellpic1.gif) }
+TD.row1 { background-color: #EFEFEF }
+TD.row2 { background-color: #DEE3E7 }
+
+/* General normal text */
+.gen { font-size : 12px; color : #000000; }
+a.gen { color: #006699; text-decoration: none; }
+a:hover.gen { color: #C23030; text-decoration: underline; }
+
+/* General small */
+.gensmall { font-size : 10px; color : #000000; }
+a.gensmall { color: #006699; text-decoration: none; }
+a:hover.gensmall { color: #C23030; text-decoration: underline; }
+
+/* Form elements */
+input,textarea, select {
+color : #000000;
+font-family : Verdana, Arial, Helvetica, sans-serif;
+font-size : 11px;
+font-weight : normal;
+border-color : #000000;
+}
+
+/* The text input fields background colour */
+input.post, textarea.post, select {
+background-color : #FFFFFF;
+}
+
+input { text-indent : 2px; }
+
+/* The main submit button option */
+input.mainoption {
+background-color : #FAFAFA;
+font-weight : bold;
+}
+
+/* None bold submit button */
+input.liteoption {
+background-color : #FAFAFA;
+font-weight : normal;
+}
+
+/* Import the fancy styles for IE only (NS4.x doesn't use the @import function) */
+@import url("templates/subSilver/formIE.css");
+
+.copyright { font-family: Verdana, Arial, Helvetica, sans-serif; color: #555555; font-size: 10px; letter-spacing: -1px;}
+a.copyright { color: #333333; text-decoration: none;}
+a.copyright:hover { color: #000000; text-decoration: underline;}
+
+.maintitle { font-family: "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; font-size : 22px; font-weight : bold; text-decoration : none; line-height : 120%; color : #000000;}
+
+-->
+</style>
+</head>
+
+<body bgcolor="#E5E5E5" text="#000000" link="#006699" vlink="#5584AA">
+
+<table width="100%" border="0" cellspacing="0" cellpadding="10" align="center">
+ <tr>
+ <td class="bodyline" width="100%"><table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><img src="templates/subSilver/images/logo_phpBB.gif" border="0" alt="Forum Home" vspace="1" /></td>
+ <td align="center" width="100%" valign="middle"><span class="maintitle">{L_INSTALLATION}</span></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td><br /><br /></td>
+ </tr>
+ <tr>
+ <td colspan="2"><table width="90%" border="0" align="center" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><span class="gen">{L_INSTRUCTION_TEXT}</span></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+ <td><br /><br /></td>
+ </tr>
+ <tr>
+ <td width="100%"><form action="{S_FORM_ACTION}" method="post"><table width="100%" cellpadding="2" cellspacing="1" border="0" class="forumline">
+ <!-- BEGIN stage_one_install -->
+ <tr>
+ <th colspan="2">{L_INITIAL_CONFIGURATION}</th>
+ </tr>
+ <tr>
+ <td class="row1" align="right" width="30%"><span class="gen">{L_LANGUAGE}: </span></td>
+ <td class="row2">{S_LANG_SELECT}</td>
+ </tr>
+ <tr>
+ <td class="row1" align="right"><span class="gen">{L_DBMS}: </span></td>
+ <td class="row2">{S_DBMS_SELECT}</td>
+ </tr>
+ <!-- tr>
+ <td class="row1" align="right"><span class="gen">{L_DOMAIN_NAME}: </span></td>
+ <td class="row2"><input type="text" name="cookiedomain" value="{COOKIE_DOMAIN}" /></td>
+ </tr -->
+ <tr>
+ <th colspan="2">{L_DATABASE_CONFIGURATION}</th>
+ </tr>
+ <tr>
+ <td class="row1" align="right"><span class="gen">{L_DB_HOST}: </span></td>
+ <td class="row2"><input type="text" name="dbhost" value="{DB_HOST}" /></td>
+ </tr>
+ <tr>
+ <td class="row1" align="right"><span class="gen">{L_DB_NAME}: </span></td>
+ <td class="row2"><input type="text" name="dbname" value="{DB_NAME}" /></td>
+ </tr>
+ <tr>
+ <td class="row1" align="right"><span class="gen">{L_DB_USER}: </span></td>
+ <td class="row2"><input type="text" name="dbuser" value="{DB_USER}" /></td>
+ </tr>
+ <tr>
+ <td class="row1" align="right"><span class="gen">{L_DB_PASSWORD}: </span></td>
+ <td class="row2"><input type="password" name="dbpasswd" /></td>
+ </tr>
+ <tr>
+ <td class="row1" align="right"><span class="gen">{L_DB_PREFIX}: </span></td>
+ <td class="row2"><input type="text" name="prefix" value="{DB_PREFIX}" /></td>
+ </tr>
+ <tr>
+ <th colspan="2">{L_ADMIN_CONFIGURATION}</th>
+ </tr>
+ <tr>
+ <td class="row1" align="right"><span class="gen">{L_ADMIN_USERNAME}: </span></td>
+ <td class="row2"><input type="text" name="admin_name" value="{ADMIN_USERNAME}" /></td>
+ </tr>
+ <tr>
+ <td class="row1" align="right"><span class="gen">{L_ADMIN_PASSWORD}: </span></td>
+ <td class="row2"><input type="password" name="admin_pass1" /></td>
+ </tr>
+ <tr>
+ <td class="row1" align="right"><span class="gen">{L_ADMIN_CONFIRM_PASSWORD}: </span></td>
+ <td class="row2"><input type="password" name="admin_pass2" /></td>
+ </tr>
+ <!-- END stage_one_install -->
+ <!-- BEGIN error_install -->
+ <tr>
+ <th>{L_ERROR_TITLE}</th>
+ </tr>
+ <tr>
+ <td class="row1" align="center"><span class="gen">{L_ERROR}</span></th>
+ </tr>
+ <!-- END error_install -->
+ <!-- BEGIN common_install -->
+ <tr>
+ <td class="cat" align="center" colspan="2">{S_HIDDEN_FIELDS}<input class="mainoption" type="submit" value="{L_SUBMIT}" /></td>
+ </tr>
+ <!-- END common_install -->
+ </table></form></td>
+ </tr>
+ </table></td>
</tr>
- <tr>
- <td align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">{selects.L_LABEL}</font></td>
- <td>
- <select name="{selects.NAME}">
- <!-- BEGIN options -->
- <option value="{selects.options.VALUE}" {selects.options.DEFAULT}>{selects.options.LABEL}</option>
- <!-- END options -->
- </select>
- </td>
- </tr>
- <!-- END selects -->
- <!-- BEGIN inputs -->
- <tr>
- <td align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">{inputs.L_LABEL}</font></td>
- <td>
- <input type="{inputs.TYPE}" name="{inputs.NAME}" value="{inputs.VALUE}">
- </td>
- </tr>
- <!-- END inputs -->
- <tr>
- <td align="center" colspan="2">
- <input type="submit" value="{L_SUBMIT}">
- </td>
- </tr>
- </table>
-</FORM>
-</BODY>
-</HTML>
+</table>
+
+</body>
+</html>