isConnected()) { return; } $pageTitle = _('Configurazione'); if (file_exists($docroot.'/include/custom/top.php')) { include_once $docroot.'/include/custom/top.php'; } else { include_once $docroot.'/include/top.php'; } // Controllo sull'esistenza di nuovi parametri di configurazione if (post('db_host') !== null) { $db_host = post('db_host'); $db_name = post('db_name'); $db_username = post('db_username'); $db_password = post('db_password'); $valid_config = isset($db_host) && isset($db_name) && isset($db_username) && isset($db_password); // Generazione di una nuova connessione al database $dbo = Database::getConnection(true); // Test della configurazione if (post('test') !== null) { ob_end_clean(); $state = 2; if ($dbo->isConnected()) { $requirements = [ 'SELECT', 'INSERT', 'UPDATE', 'CREATE', 'ALTER', 'DROP', 'CREATE VIEW', ]; $db_host = str_replace('_', '\_', $db_name); $db_name = str_replace('_', '\_', $db_name); $db_username = str_replace('_', '\_', $db_name); $user = " TO '".$db_username."'@'".$db_host."'"; $db = ' ON `'.$db_name.'`.*'; $results = $dbo->fetchArray('SHOW GRANTS FOR CURRENT_USER'); foreach ($results as $result) { if ( str_contains($result, $find) && ( str_contains($result, $db) || str_contains($result, str_replace('`'.$db_name.'`', '*', $db)) ) ) { $pieces = explode(', ', explode(' ON ', str_replace('GRANT ', '', current($result)))[0]); if (in_array('ALL', $pieces) || in_array('ALL PRIVILEGES', $pieces)) { break; } foreach ($requirements as $key => $value) { if (!in_array($value, $pieces)) { $state = 1; break 2; } else { unset($requirements[$key]); } } } } } else { $state = 0; } echo $state; exit(); } // Salvataggio dei valori da salvare successivamente $_SESSION['osm_password'] = post('osm_password'); $_SESSION['osm_email'] = post('osm_email'); // Creazione della configurazione if ($dbo->isConnected()) { // Impostazioni di configurazione strettamente necessarie al funzionamento del progetto $backup_config = ' $db_host, '|username|' => $db_username, '|password|' => $db_password, '|database|' => $db_name, ]; $new_config = str_replace(array_keys($values), $values, $new_config); // Controlla che la scrittura del file di configurazione sia andata a buon fine $creation = file_put_contents('config.inc.php', $new_config); if (!$creation) { echo '
'.str_replace('_FILE_', 'config.inc.php', _('Sembra che non ci siano i permessi di scrittura sul file _FILE_')).'
'.str_replace('_FILE_', 'config.inc.php', _('Inserire il seguente testo nel file _FILE_')).'
'.htmlentities($new_config).'
'._("Si è verificato un'errore durante la connessione al database").'.
'._('Controllare di aver inserito correttamente i dati di accesso, e che il database atto ad ospitare i dati del gestionale sia esistente').'.
'._('Riprova').''._("L'avvio del software è fallito a causa dell'assenza di alcuni paramentri nella configurazione di base").'.
'.str_replace('_CONFIG_', 'config.inc.php', _("Si prega di controllare che il file _CONFIG_ contenga tutti i dati inseriti durante la configurazione iniziale (con l'eccezione di password e indirizzo email amministrativi)")).'.
'._("Nel caso il problema persista, rivolgersi all'assistenza ufficiale").'.
'._('Riprova').''._('Un benvenuto da OpenSTAManager!').'
'._("Prima di procedere alla configurazione e all'installazione del software, sono necessari alcuni accorgimenti per garantire il corretto funzionamento del gestionale").'.
'.str_replace('_FILE_', 'php.ini', _('Le seguenti estensioni PHP devono essere abilitate dal file di configurazione _FILE_')).':
'.$value.'
'.str_replace('_FILE_', 'php.ini', _('Le seguenti impostazioni PHP devono essere modificate nel file di configurazione _FILE_')).':
'._('Valore consigliato').': '.$value.'
'._('Le seguenti cartelle devono risultare scrivibili da parte del gestionale').':
'.$value.'
'.str_replace('_LICENSE_', 'GPL 3.0', _('OpenSTAManager è tutelato dalla licenza _LICENSE_!')).'