From 93fbb5cdaa4ac33ba5f3d32d9ddd1eda80af9467 Mon Sep 17 00:00:00 2001 From: Janusz Dobrowolski Date: Thu, 5 Aug 2010 10:09:21 +0000 Subject: [PATCH] Install wizard rewritten, added uploading COAs during install. --- install/index.php | 646 ++++++++++++++++++++--------------------- install/isession.inc | 109 +++++++ install/save.php | 392 ------------------------- install/stylesheet.css | 5 +- 4 files changed, 423 insertions(+), 729 deletions(-) create mode 100644 install/isession.inc delete mode 100644 install/save.php diff --git a/install/index.php b/install/index.php index 56924549..7fd3831e 100644 --- a/install/index.php +++ b/install/index.php @@ -1,352 +1,326 @@ - Copyright (C) 2004-2007, Ryan Djurovich. - The code is released under GPLv3 - modified by FrontAcounting, LLC. + Copyright (C) FrontAccounting, LLC. + Released under the terms of the GNU General Public License, GPL, + as published by the Free Software Foundation, either version 3 + of the License, or (at your option) any later version. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License here . ***********************************************************************/ -error_reporting(E_ALL); -ini_set("display_errors", "On"); -// Start a session -if(!defined('SESSION_STARTED')) -{ - session_name('ba_session_id'); - session_start(); - define('SESSION_STARTED', true); -} +$page_security = 'SA_OPEN'; +$path_to_root=".."; + +//if (file_exists($path_to_root.'/config.php')) +// header("Location: $path_to_root/index.php"); + +include($path_to_root . "/install/isession.inc"); -// Check if the page has been reloaded -if(!isset($_GET['sessions_checked']) || $_GET['sessions_checked'] != 'true') +page(_($help_context = "FrontAccouting ERP Installation Wizard"), true, false, "", '', false, + 'stylesheet.css'); + +include($path_to_root . "/includes/ui.inc"); +include($path_to_root . "/includes/system_tests.inc"); +include($path_to_root . "/admin/db/maintenance_db.inc"); +include($path_to_root . "/includes/packages.inc"); +include($path_to_root . "/installed_extensions.php"); +//------------------------------------------------------------------------------------------------- + +function subpage_title($txt) { - // Set session variable - $_SESSION['session_support'] = 'Enabled'; - $_SESSION['message'] = ''; - // Reload page - header('Location: index.php?sessions_checked=true'); - exit(0); + global $path_to_root; + + echo '
Logo +
'; + $page = @$_POST['Page'] ? $_POST['Page'] : 1; + + display_heading( + $page==5 ? $txt : + _("FrontAccouting ERP Installation Wizard").'
' + . sprintf(_('Step %d: %s'), $page , $txt)); + br(); } -else + +function display_coas() { - // Check if session variable has been saved after reload - if(isset($_SESSION['session_support'])) + start_table(TABLESTYLE); + $th = array(_("Chart of accounts"), _("Description"), _("Install")); + table_header($th); + + $k = 0; + $charts = get_charts_list(); + + foreach($charts as $pkg_name => $coa) { - $session_support = $_SESSION['session_support']; + $available = @$coa['available']; + $installed = @$coa['version']; + $id = @$coa['local_id']; + + alt_table_row_color($k); + label_cell($coa['name']); + label_cell(is_array($coa['Descr']) ? implode('
', $coa['Descr']) : $coa['Descr']); + if ($installed) + label_cell(_("Installed")); + else + check_cells(null, 'coas['.$coa['package'].']'); + + end_row(); } - else - { - $session_support = 'Disabled'; + end_table(1); +} + +function install_connect_db() { + global $db; + + $conn = $_SESSION['inst_set']; + + $db = mysql_connect($conn["host"] , $conn["dbuser"], $conn["dbpassword"]); + if(!$db) { + display_error('Cannot connect to database server. Host name, username and/or password incorrect.'); + return false; } + if (!defined('TB_PREF')) + define('TB_PREF', $conn["tbpref"]); + + if (!mysql_select_db($conn["dbname"], $db)) { + $sql = "CREATE DATABASE " . $conn["dbname"]; + if (!mysql_query($sql)) { + display_error('Cannot create database. Check your permissions to database creation or selct already created database.'); + return false; + } + return mysql_select_db($conn["dbname"], $db); + } + return true; } -$path_to_root = ".."; -//include_once($path_to_root.'/config.php'); -$comp_path = $path_to_root."/company"; -?> - - - -FrontAccounting Installation Wizard - - - - - - - - - -
- FrontAccounting - Installation Wizard -
- -
- - - - - - - - - -
-

Welcome to the FrontAccounting Installation Wizard.

-
- Logo -
-
Error: Seems you have FrontAccounting application already installed.
-After logging as an admin to first installed company you can: -
    -
  • Add more companies using Add/Update Companies under Setup tab;
  • -
  • Upgrade FA version using Upgrade Software under Setup tab.
  • -
- -
Error:
'localhost', + 'dbuser' => 'root', + 'dbpassword' => '', + 'username' => 'admin', + 'tbpref' => '0_', + 'admin' => 'admin', + 'coa_type' => 0 + ); + +if (!@$_POST['Tests']) + $_POST['Page'] = 1; + +if (isset($_POST['back']) && (@$_POST['Page']>1)) { + $_POST['Page']--; + if ($_POST['Page'] == 3) + $_POST['Page'] = 2; +} +elseif (isset($_POST['continue'])) { + $_POST['Page'] = 2; +} +elseif (isset($_POST['db_test'])) { + if (get_post('host')=='') { + display_error(_('Host name cannot be empty')); + set_focus('host'); + } + elseif ($_POST['dbuser']=='') { + display_error(_('Database user name cannot be empty')); + set_focus('dbuser'); + } + elseif ($_POST['dbname']=='') { + display_error(_('Database name cannot be empty')); + set_focus('dbname'); + } + else { + $_SESSION['inst_set'] = array_merge($_SESSION['inst_set'], array( + 'host' => $_POST['host'], + 'dbuser' => $_POST['dbuser'], + 'dbpassword' => $_POST['dbpassword'], + 'dbname' => $_POST['dbname'], + 'tbpref' => $_POST['tbpref'] ? '0_' : '', + )); + if (install_connect_db()) { + $_POST['Page'] = check_value('sel_coas') ? 3 : 4; + } + } +} +elseif(get_post('install_coas')) +{ + $ret = true; + if (isset($_POST['coas'])) + foreach($_POST['coas'] as $package => $ok) { + $ret &= install_extension($package); + } + if ($ret) { + $_POST['Page'] = 4; + } +} +elseif (isset($_POST['set_admin'])) { + // check company settings + if (get_post('name')=='') { + display_error(_('Company name cannot be empty.')); + set_focus('name'); + } + elseif (get_post('admin')=='') { + display_error(_('Company admin name cannot be empty.')); + set_focus('admin'); + } + elseif (get_post('pass')=='') { + display_error(_('Company admin password cannot be empty.')); + set_focus('pass'); + } + elseif (get_post('pass')!=get_post('repass')) { + display_error(_('Company admin passwords differ.')); + unset($_POST['pass'],$_POST['repass']); + set_focus('pass'); + } + else { + + $_SESSION['inst_set'] = array_merge($_SESSION['inst_set'], array( + 'coa' => $_POST['coa'], + 'pass' => $_POST['pass'], + 'name' => $_POST['name'], + 'admin' => $_POST['admin'], + )); + if (do_install()) { + $_POST['Page'] = 5; } - ?> - - - - - Enabled') { ?> - - - - - - - - - - - - - - - - - - - - -

Step 1

Please check the following requirements are met before continuing...
Please note: PHP Session Support may appear disabled if your browser does not support cookies.
PHP Version > 4.1.0 - 4.1) { - ?>YesNo - PHP Session SupportPHP Safe Mode - EnabledDisabled -
Magic Quotes GPC - Enabled'; - } else { - echo 'Disabled'; - } - ?> - Register Globals - Enabled'; - } else { - echo 'Disabled'; - } - ?> -
- - - - - - - - - - - - - - - - -

Step 2

Please check the following files/folders are writeable before continuing...
config_db.phpWriteable'; } elseif(file_exists($path_to_root.'/config_db.php')) { echo 'File Exists'; } else { echo 'Unwriteable'; } ?>modules/Writeable'; } elseif(!file_exists($path_to_root.'/modules/')) { echo 'Directory Not Found'; } else { echo 'Unwriteable'; } ?>
lang/Writeable'; } elseif(!file_exists($path_to_root.'/lang/')) { echo 'Directory Not Found'; } else { echo 'Unwriteable'; } ?>Writeable'; } elseif(!file_exists($comp_path)) { - echo 'Directory Not Found'; } else { echo 'Unwriteable'; } ?>
- - - - - - - - -

Step 3

Please check your path settings...
- Absolute URL: - - - -
- - - - - - - - - -

Step 4

Please specify your operating system information below...
- Server Operating System: - - /> - Linux/Unix based -
- /> - Windows -
-
- /> - -
- (Please note: this is only recommended for testing environments) -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please enter your MySQL database server details below...
Host Name: - -  Username: - -
Database Name: - -  Password: - /> -
Table Prefix ( 0_ ): - /> -   - /> - -
      - (Please note: May remove existing tables and data)
Fill database with demo data: - /> -
-
 

Step 5

Please enter the training company name below (you can create your own company later)...
Company Name: - -

Step 6

Please enter your Administrator account details below...
Username: - admin - -  Password: - /> -
Email: - /> -  Re-Password: - /> -

 

- - - - - -
Please note:   - FrontAccounting is released under the - GNU General Public License. By - clicking install, you are accepting the license. -
-
- -
- -
- -
- - - - - -
- - FrontAccounting - is released under the - GNU General Public License - -
- - - \ No newline at end of file + } +} + +start_form(); + switch(@$_POST['Page']) { + default: + include ('../install.html'); + submit_center('continue', _('Continue >>')); + break; + case '1': + subpage_title(_('System Diagnostics')); + $_POST['Tests'] = display_system_tests(true); + br(); + if (@$_POST['Tests']) { + display_notification(_('All application preliminary requirements seems to be correct. Please press Continue button below.')); + submit_center('continue', _('Continue >>')); + } else { + display_error(_('Application cannot be installed. Please fix problems listed below in red, and press Refresh button.')); + submit_center('refresh', _('Refresh')); + } + break; + + case '2': + if (!isset($_POST['host'])) { + foreach($_SESSION['inst_set'] as $name => $val) + $_POST[$name] = $val; + } + subpage_title(_('Database Server Settings')); + start_table(TABLESTYLE); + text_row_ex(_("Server Host"), 'host', 30); + text_row_ex(_("Database User"), 'dbuser', 30); + text_row_ex(_("Database Password"), 'dbpassword', 30); + text_row_ex(_("Database Name"), 'dbname', 30); + yesno_list_row(_("Use '0_' Table Prefix"), 'tbpref', 1, _('Yes'), _('No'), false); + check_row(_("Install additional COAs form FA repository"), 'sel_coas'); + end_table(1); + display_note(_('Use table prefix if you share selected database with another application, or you want to use it for more than one FA company.')); + submit_center_first('back', _('<< Back')); + submit_center_last('db_test', _('Continue >>')); + break; + + case '3': // select COA + subpage_title(_('Charts of accounts selection')); + display_coas(); + submit_center_first('back', _('<< Back')); + submit_center_last('install_coas', _('Continue >>')); + break; + + case '4': + if (!isset($_POST['name'])) { + foreach($_SESSION['inst_set'] as $name => $val) + $_POST[$name] = $val; + set_focus('name'); + } + subpage_title(_('Company Settings')); + start_table(TABLESTYLE); + text_row_ex(_("Company Name"), 'name', 30); + text_row_ex(_("Admin Login"), 'admin', 30); + password_row(_("Admin Password"), 'pass', @$_POST['pass']); + password_row(_("Reenter Password"), 'repass', @$_POST['repass']); + coa_list_row(_("Select Chart of Accounts"), 'coa'); + end_table(1); + submit_center_first('back', _('<< Back')); + submit_center_last('set_admin', _('Continue >>')); + break; + + case '5': // final screen + subpage_title(_('FrontAccounting ERP has been installed successsfully.')); + display_note(_('Please remove install wizard folder.')); + $install_done = true; + hyperlink_no_params($path_to_root.'/index.php', _('Click here to start.')); + break; + + } + + hidden('Tests'); + hidden('Page'); +end_form(1); + +end_page(false, false, true); + +?> diff --git a/install/isession.inc b/install/isession.inc new file mode 100644 index 00000000..bf04551b --- /dev/null +++ b/install/isession.inc @@ -0,0 +1,109 @@ +. +***********************************************************************/ +function output_html($text) +{ + global $before_box, $Ajax, $messages; + // Fatal errors are not send to error_handler, + // so we must check the output + if ($text && preg_match('/\bFatal error(<.*?>)?:(.*)/i', $text, $m)) { + $Ajax->aCommands = array(); // Don't update page via ajax on errors + $text = preg_replace('/\bFatal error(<.*?>)?:(.*)/i','', $text); + $messages[] = array(E_ERROR, $m[2], null, null); + } + $Ajax->run(); + return in_ajax() ? fmt_errors() : ($before_box.fmt_errors().$text); +} + +//----------------------------------------------------------------------------- +// Removing magic quotes from nested arrays/variables +// +function strip_quotes($data) +{ + if(get_magic_quotes_gpc()) { + if(is_array($data)) { + foreach($data as $k => $v) { + $data[$k] = strip_quotes($data[$k]); + } + } else + return stripslashes($data); + } + return $data; +} + +function check_page_security($page_security) +{ +} +//============================================================================ +if (!isset($path_to_root)) +{ + $path_to_root = "."; +} + +// Prevent register_globals vulnerability +if (isset($_GET['path_to_root']) || isset($_POST['path_to_root'])) + die("Restricted access"); + +include_once($path_to_root . "/includes/current_user.inc"); +include_once($path_to_root . "/includes/lang/language.php"); +include_once($path_to_root . "/includes/ajax.inc"); +include_once($path_to_root . "/includes/ui/ui_msgs.inc"); +include_once($path_to_root . "/includes/prefs/sysprefs.inc"); + +session_name('FAinstall'); +session_start(); + +// this is to fix the "back-do-you-want-to-refresh" issue - thanx PHPFreaks +header("Cache-control: private"); + +include_once($path_to_root . "/config.default.php"); +get_text_init(); + +// Page Initialisation +if (!isset($_SESSION['language']) || !method_exists($_SESSION['language'], 'set_language')) +{ + $l = array_search_value($dflt_lang, $installed_languages, 'code'); + $_SESSION['language'] = new language($l['name'], $l['code'], $l['encoding'], + isset($l['rtl']) ? 'rtl' : 'ltr'); +} + +$_SESSION['language']->set_language($_SESSION['language']->code); + +include_once($path_to_root . "/version.php"); +include_once($path_to_root . "/includes/main.inc"); + +// Ajax communication object +$Ajax = new Ajax(); + +// js/php validation rules container +$Validate = array(); +// bindings for editors +$Editors = array(); +// page help. Currently help for function keys. +$Pagehelp = array(); + +// intercept all output to destroy it in case of ajax call +register_shutdown_function('end_flush'); +ob_start('output_html',0); + +// colect all error msgs +set_error_handler('error_handler' /*, errtypes */); + +if (!isset($_SESSION["wa_current_user"])) + $_SESSION["wa_current_user"] = new current_user(); + +$SysPrefs = &$_SESSION['SysPrefs']; + +// POST vars cleanup needed for direct reuse. +// We quote all values later with db_escape() before db update. + $_POST = strip_quotes($_POST); + +?> \ No newline at end of file diff --git a/install/save.php b/install/save.php deleted file mode 100644 index 2b7d7ed8..00000000 --- a/install/save.php +++ /dev/null @@ -1,392 +0,0 @@ - - Copyright (C) 2004-2007, Ryan Djurovich. - The code is released under GPLv3 - modified by FrontAcounting, LLC. -***********************************************************************/ -error_reporting(E_ALL); -ini_set("display_errors", "On"); -ini_set("max_execution_time", "180"); - -// Start a session -if(!defined('SESSION_STARTED')) -{ - session_name('ba_session_id'); - session_start(); - define('SESSION_STARTED', true); -} - -if (!function_exists("_")) { - function _($msg) { - return $msg; - } -} -// Installer version of display_error function. -// -function display_error($message) -{ - global $_POST, $path_to_root; - - if(isset($message) AND $message != '') - { - // Copy values entered into session so user doesn't have to re-enter everything - if(isset($_POST['company_name'])) - { - $_SESSION['ba_url'] = $_POST['ba_url']; - $_SESSION['operating_system'] = isset($_POST['operating_system']); - $_SESSION['world_writeable'] = isset($_POST['world_writeable']); - $_SESSION['database_host'] = $_POST['database_host']; - $_SESSION['database_username'] = $_POST['database_username']; - $_SESSION['database_password'] = $_POST['database_password']; - $_SESSION['database_name'] = $_POST['database_name']; - $_SESSION['demo_data'] = isset($_POST['demo_data']); - $_SESSION['table_prefix'] = isset($_POST['table_prefix']); - $_SESSION['install_tables'] = isset($_POST['install_tables']); - $_SESSION['company_name'] = $_POST['company_name']; - $_SESSION['admin_email'] = $_POST['admin_email']; - $_SESSION['admin_password'] = $_POST['admin_password']; - - } - // Set the message - $_SESSION['message'] = $message; - // Specify that session support is enabled - $_SESSION['session_support'] = 'Enabled'; - // Redirect to first page again and exit - @unlink($path_to_root."/config.php"); // remove just created config file - header('Location: index.php?sessions_checked=true'); - exit(); - } -} - -// Function to workout what the default permissions are for files created by the webserver -function default_file_mode($temp_dir) -{ - $v = explode(".",PHP_VERSION); - $v = $v[0].$v[1]; - if($v > 41 && is_writable($temp_dir)) - { - $filename = $temp_dir.'/test_permissions.txt'; - $handle = fopen($filename, 'w'); - fwrite($handle, 'This file is to get the default file permissions'); - fclose($handle); - $default_file_mode = '0'.substr(sprintf('%o', fileperms($filename)), -3); - unlink($filename); - } - else - { - $default_file_mode = '0777'; - } - return $default_file_mode; -} - -// Function to workout what the default permissions are for directories created by the webserver -function default_dir_mode($temp_dir) -{ - $v = explode(".",PHP_VERSION); - $v = $v[0].$v[1]; - if ($v > 41 && is_writable($temp_dir)) - { - $dirname = $temp_dir.'/test_permissions/'; - mkdir($dirname); - $default_dir_mode = '0'.substr(sprintf('%o', fileperms($dirname)), -3); - rmdir($dirname); - } - else - { - $default_dir_mode = '0777'; - } - return $default_dir_mode; -} - -function add_slashes($input) -{ - if (get_magic_quotes_gpc() || (!is_string($input))) - { - return $input; - } - $output = addslashes($input); - return $output; -} -function check_db_error($err_msg, $sql) -{ - return true; -} - -if (isset($_POST['path_to_root'])) - $path_to_root = $_POST['path_to_root']; -else - $path_to_root = ".."; - -// Begin check to see if form was even submitted -// Set error if no post vars found -if (!isset($_POST['company_name'])) -{ - display_error('Please fill-in the form below'); -} -// End check to see if form was even submitted - -// Begin path and timezone details code - -// Check if user has entered the installation url -if (!isset($_POST['ba_url']) || $_POST['ba_url'] == '') -{ - display_error('Please enter an absolute URL'); -} -else -{ - $ba_url = $_POST['ba_url']; -} - -// Remove any slashes at the end of the URL -if(substr($ba_url, strlen($ba_url) - 1, 1) == "/") -{ - $ba_url = substr($ba_url, 0, strlen($ba_url) - 1); -} -if(substr($ba_url, strlen($ba_url) - 1, 1) == "\\") -{ - $ba_url = substr($ba_url, 0, strlen($ba_url) - 1); -} -if(substr($ba_url, strlen($ba_url) - 1, 1) == "/") -{ - $ba_url = substr($ba_url, 0, strlen($ba_url) - 1); -} -if(substr($ba_url, strlen($ba_url) - 1, 1) == "\\") -{ - $ba_url = substr($ba_url, 0, strlen($ba_url) - 1); -} -// End path - -// Begin operating system specific code -// Get operating system -if (!isset($_POST['operating_system']) || $_POST['operating_system'] != 'linux' && $_POST['operating_system'] != 'windows') -{ - display_error('Please select a valid operating system'); -} -else -{ - $operating_system = $_POST['operating_system']; -} -// Work-out file permissions -if($operating_system == 'windows') -{ - $file_mode = '0777'; - $dir_mode = '0777'; -} -elseif (isset($_POST['world_writeable']) && $_POST['world_writeable'] == 'true') -{ - $file_mode = '0777'; - $dir_mode = '0777'; -} -else -{ - $file_mode = default_file_mode('../includes'); - $dir_mode = default_dir_mode('../includes'); -} -// End operating system specific code - -// Begin database details code -// Check if user has entered a database host -if (!isset($_POST['database_host']) || $_POST['database_host'] == '') -{ - display_error('Please enter a database host name'); -} -else -{ - $database_host = $_POST['database_host']; -} -// Check if user has entered a database username -if (!isset($_POST['database_username']) || $_POST['database_username'] == '') -{ - display_error('Please enter a database username'); -} -else -{ - $database_username = $_POST['database_username']; -} -// Check if user has entered a database password -if (!isset($_POST['database_password'])) -{ - display_error('Please enter a database password'); -} -else -{ - $database_password = $_POST['database_password']; -} -// Check if user has entered a database name -if (!isset($_POST['database_name']) || $_POST['database_name'] == '') -{ - display_error('Please enter a database name'); -} -else -{ - $database_name = $_POST['database_name']; -} -// Get table prefix -if (isset($_POST['table_prefix']) && $_POST['table_prefix'] == 'true') - $table_prefix = "0_"; -else - $table_prefix = ""; - -// Find out if the user wants to install tables and data -if (isset($_POST['install_tables']) && $_POST['install_tables'] == 'true') -{ - $install_tables = true; -} -else -{ - $install_tables = false; -} -// End database details code - -// Begin company name code -// Get company name -if (!isset($_POST['company_name']) || $_POST['company_name'] == '') -{ - display_error('Please enter a company name'); -} -else -{ - $company_name = add_slashes($_POST['company_name']); -} -// End website company name - -// Check if the user has entered a correct path -if (!file_exists($path_to_root.'/sql/en_US-'.(isset($_POST['demo_data']) ? 'demo':'new').'.sql')) -{ - display_error('It appears the Absolute path that you entered is incorrect'); -} - -// Get admin email and validate it -if (!isset($_POST['admin_email']) || $_POST['admin_email'] == '') -{ - display_error('Please enter an email for the Administrator account'); -} -else -{ - if (preg_match("/^([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}$/i", $_POST['admin_email'])) - { - $admin_email = $_POST['admin_email']; - } - else - { - display_error('Please enter a valid email address for the Administrator account'); - } -} -// Get the two admin passwords entered, and check that they match -if (!isset($_POST['admin_password']) || $_POST['admin_password'] == '') -{ - display_error('Please enter a password for the Administrator account'); -} -else -{ - $admin_password = $_POST['admin_password']; -} -if (!isset($_POST['admin_repassword']) || $_POST['admin_repassword'] == '') -{ - display_error('Please make sure you re-enter the password for the Administrator account'); -} -else -{ - $admin_repassword = $_POST['admin_repassword']; -} -if ($admin_password != $admin_repassword) -{ - display_error('Sorry, the two Administrator account passwords you entered do not match'); -} -// End admin user details code - -copy($path_to_root. "/config.default.php", $path_to_root. "/config.php"); - -include_once($path_to_root . "/includes/db/connect_db.inc"); -include_once($path_to_root . "/admin/db/maintenance_db.inc"); - -if (!file_exists($path_to_root . "/installed_extensions.php")) { - $next_extension_id = 1; - write_extensions(array()); - write_extensions(array(),0); -} -if (!file_exists($path_to_root . "/lang/installed_languages.inc")) { - $installed_languages = array ( - 0 => array ('code' => 'en_GB', 'name' => 'English', 'encoding' => 'iso-8859-1')); - $dflt_lang = 'en_GB'; - write_lang(); -} - -if (file_exists($path_to_root . "/config_db.php")) - include_once($path_to_root . "/config_db.php"); - else -{ - $def_coy = 0; - $tb_pref_counter = 0; - $db_connections = array (); -} - -$id = count($db_connections); -if ($table_prefix != "" && $id > 0) - $table_prefix = $tb_pref_counter . "_"; -$db_connections[$id]['name'] = $company_name; -$db_connections[$id]['host'] = $database_host; -$db_connections[$id]['dbuser'] = $database_username; -$db_connections[$id]['dbpassword'] = $database_password; -$db_connections[$id]['dbname'] = $database_name; -$db_connections[$id]['tbpref'] = $table_prefix; - -$def_coy = $id; - -$config_filename = $path_to_root . '/config_db.php'; - -// Try connecting to database - -$db = mysql_connect($database_host, $database_username, $database_password); -if (!$db) -{ - display_error('Database host name, username and/or password incorrect. MySQL Error:
'.mysql_error()); -} else { - $result = true; - if($install_tables == true) - { - if (!mysql_select_db($database_name, $db)) - { - // Try to create the database - if (!($result = mysql_query('CREATE DATABASE '.$database_name))) { - display_error(_("Cannot create database"). - " '$database_name'"); - } else - $result = mysql_select_db($database_name, $db); - } - if($result) { - $import_filename = $path_to_root.'/sql/en_US-'.(isset($_POST['demo_data']) ? 'demo':'new').'.sql'; - db_import($import_filename, $db_connections[$id]); - } - } - else - { - $result = mysql_select_db($database_name, $db); - } - if ($result) { - $sql = "UPDATE ".$table_prefix."users SET password = '" . md5($admin_password) . "', email = ".db_escape($admin_email)." WHERE user_id = 'admin'"; - db_query($sql, "could not update admin account"); - $sql = "UPDATE ".$table_prefix."sys_prefs SET value = ".db_escape($company_name)." WHERE name='coy_name'"; - db_query($sql, "could not update company name. Do it manually later in Setup"); - - $err = write_config_db($table_prefix != ""); - if ($err == -1) - display_error("Cannot open the configuration file ($config_filename)"); - else if ($err == -2) - display_error("Cannot write to the configuration file ($config_filename)"); - else if ($err == -3) - display_error("The configuration file $config_filename is not writable. Change its permissions so it is, then re-run step 4."); - } -} - -session_unset(); -session_regenerate_id(); -session_destroy(); -$_SESSION = array(); - -header("Location: ".$path_to_root."/index.php"); -exit(); - -?> \ No newline at end of file diff --git a/install/stylesheet.css b/install/stylesheet.css index 63f15b55..d318052e 100644 --- a/install/stylesheet.css +++ b/install/stylesheet.css @@ -68,4 +68,7 @@ a:hover { } .hide { display: none; -} \ No newline at end of file +} +select { + max-width: 1000px; +} -- 2.30.2