function step4($databasename, $newdatabasename) { $host = $_SESSION['db_access']['host']; $user = $_SESSION['db_access']['user']; $password = $_SESSION['db_access']['password']; //display the form to return to the previous step. echo "<h3>" . __('Initialization of the database') . "</h3>"; function prev_form($host, $user, $password) { echo "<br><form action='install.php' method='post'>"; echo "<input type='hidden' name='db_host' value='" . $host . "'>"; echo "<input type='hidden' name='db_user' value='" . $user . "'>"; echo " <input type='hidden' name='db_pass' value='" . rawurlencode($password) . "'>"; echo "<input type='hidden' name='update' value='no'>"; echo "<input type='hidden' name='install' value='Etape_2'>"; echo "<p class='submit'><input type='submit' name='submit' class='submit' value='" . __s('Back') . "'></p>"; Html::closeForm(); } //Display the form to go to the next page function next_form() { echo "<br><form action='install.php' method='post'>"; echo "<input type='hidden' name='install' value='Etape_4'>"; echo "<p class='submit'><input type='submit' name='submit' class='submit' value='" . __('Continue') . "'></p>"; Html::closeForm(); } //Check if the port is in url $hostport = explode(":", $host); if (count($hostport) < 2) { $link = new mysqli($hostport[0], $user, $password); } else { $link = new mysqli($hostport[0], $user, $password, '', $hostport[1]); } $databasename = $link->real_escape_string($databasename); $newdatabasename = $link->real_escape_string($newdatabasename); if (!empty($databasename)) { // use db already created $DB_selected = $link->select_db($databasename); if (!$DB_selected) { _e('Impossible to use the database:'); echo "<br>" . sprintf(__('The server answered: %s'), $link->error); prev_form($host, $user, $password); } else { if (DBConnection::createMainConfig($host, $user, $password, $databasename)) { Toolbox::createSchema($_SESSION["glpilanguage"]); echo "<p>" . __('OK - database was initialized') . "</p>"; next_form(); } else { // can't create config_db file echo "<p>" . __('Impossible to write the database setup file') . "</p>"; prev_form($host, $user, $password); } } } else { if (!empty($newdatabasename)) { // create new db // Try to connect if ($link->select_db($newdatabasename)) { echo "<p>" . __('Database created') . "</p>"; if (DBConnection::createMainConfig($host, $user, $password, $newdatabasename)) { Toolbox::createSchema($_SESSION["glpilanguage"]); echo "<p>" . __('OK - database was initialized') . "</p>"; next_form(); } else { // can't create config_db file echo "<p>" . __('Impossible to write the database setup file') . "</p>"; prev_form($host, $user, $password); } } else { // try to create the DB if ($link->query("CREATE DATABASE IF NOT EXISTS `" . $newdatabasename . "`")) { echo "<p>" . __('Database created') . "</p>"; if ($link->select_db($newdatabasename) && DBConnection::createMainConfig($host, $user, $password, $newdatabasename)) { Toolbox::createSchema($_SESSION["glpilanguage"]); echo "<p>" . __('OK - database was initialized') . "</p>"; next_form(); } else { // can't create config_db file echo "<p>" . __('Impossible to write the database setup file') . "</p>"; prev_form($host, $user, $password); } } else { // can't create database echo __('Error in creating database!'); echo "<br>" . sprintf(__('The server answered: %s'), $link->error); prev_form($host, $user, $password); } } } else { // no db selected echo "<p>" . __("You didn't select a database!") . "</p>"; //prev_form(); prev_form($host, $user, $password); } } $link->close(); }
if (file_exists(GLPI_CONFIG_DIR . '/config_db.php') && !isset($args['force'])) { die("Already installed (see --force option)\n"); } $_SESSION = ['glpilanguage' => isset($args['lang']) ? $args['lang'] : 'en_GB']; Toolbox::setDebugMode(Session::DEBUG_MODE, 0, 0, 1); echo "Connect to the DB...\n"; //Check if the port is in url $hostport = explode(':', $args['host']); if (count($hostport) < 2) { $link = new mysqli($hostport[0], $args['user'], $args['pass']); } else { $link = new mysqli($hostport[0], $args['user'], $args['pass'], '', $hostport[1]); } if (!$link || mysqli_connect_error()) { die("DB connection failed\n"); } $args['db'] = $link->real_escape_string($args['db']); echo "Create the DB...\n"; if (!$link->query("CREATE DATABASE IF NOT EXISTS `" . $args['db'] . "`")) { die("Can't create the DB\n"); } if (!$link->select_db($args['db'])) { die("Can't select the DB\n"); } echo "Save configuration file...\n"; if (!DBConnection::createMainConfig($args['host'], $args['user'], $args['pass'], $args['db'])) { die("Can't write configuration file\n"); } echo "Load default schema...\n"; Toolbox::createSchema($_SESSION['glpilanguage']); echo "Done\n";