85 lines
3.6 KiB
PHP
85 lines
3.6 KiB
PHP
<?php
|
|
|
|
require_once("Wizard.php");
|
|
|
|
$wizard = new Wizard();
|
|
|
|
$wizard->addCode('selectdatabase',function($storedvariables){
|
|
$selectdatabase['databasetype'] = $_POST['databasetype'];
|
|
return $selectdatabase;
|
|
});
|
|
|
|
$wizard->addCode('enterlogindata',function($storedvariables){
|
|
$logindata['host'] = $_POST['host'];
|
|
$logindata['user'] = $_POST['user'];
|
|
$logindata['password'] = $_POST['password'];
|
|
$logindata['dbname'] = $_POST['dbname'];
|
|
return $logindata;
|
|
});
|
|
|
|
$wizard->addCode('createdatabase',function($storedvariables){
|
|
$conf_file = fopen("../bengelsystem_konfiguration.php", "w");
|
|
fwrite($conf_file, "<?php\n");
|
|
if($storedvariables['selectdatabase']['databasetype'] == 'SQLite'){
|
|
fwrite($conf_file, "define( 'MYSQL_DSN', 'sqlite:". realpath("..") . "/helferdb.sqlite3' );\n");
|
|
fwrite($conf_file, "define( 'MYSQL_BENUTZER', '' );\n");
|
|
fwrite($conf_file, "define( 'MYSQL_KENNWORT', '' );\n");
|
|
fwrite($conf_file, "define( 'MYSQL_DATENBANK', '' );\n");
|
|
} elseif ($storedvariables['selectdatabase']['databasetype'] == 'MariaDB'){
|
|
fwrite($conf_file, "define( 'MYSQL_DSN', 'mysql:host=" . $storedvariables['enterlogindata']['host'] . ";dbname=". $storedvariables['enterlogindata']['dbname'] . ";charset=utf8mb4' );\n");
|
|
fwrite($conf_file, "define( 'MYSQL_HOST', '".$storedvariables['enterlogindata']['host']."' );\n");
|
|
fwrite($conf_file, "define( 'MYSQL_BENUTZER', '".$storedvariables['enterlogindata']['user']."' );\n");
|
|
fwrite($conf_file, "define( 'MYSQL_KENNWORT', '".$storedvariables['enterlogindata']['password']."' );\n");
|
|
fwrite($conf_file, "define( 'MYSQL_DATENBANK', '".$storedvariables['enterlogindata']['dbname']."' );\n");
|
|
}
|
|
fwrite($conf_file, "?>");
|
|
// Test configuration:
|
|
require_once("SQL.php");
|
|
try{
|
|
$db = DB::getInstance();
|
|
}
|
|
catch( PDOException $exception ) {
|
|
echo "<p>Fehler beim Verbindungsversuch mit der Datenbank: \"".$exception->getMessage( )."\"</p>";
|
|
}
|
|
if(!is_null($db->pdoErrorCode()) && $db->pdoErrorCode() != '1'){
|
|
echo "<p>Fehler ".$db->pdoErrorCode()." beim Verbindungsversuch mit der Datenbank: \"".$db->pdoErrorInfo()[2]."\"</p>";
|
|
$_POST['step'] = 'createdatabase';
|
|
} else {
|
|
echo "<p>Erfolgreich mit der Datenbank verbunden!</p>";
|
|
}
|
|
});
|
|
|
|
$wizard->addCode('createdatabasetables',function($storedvariables){
|
|
require_once("SQL.php");
|
|
try{
|
|
$db = DB::getInstance();
|
|
}
|
|
catch( PDOException $exception ) {
|
|
echo "<p>Fehler beim Verbindungsversuch mit der Datenbank: \"".$exception->getMessage( )."\"</p>";
|
|
}
|
|
if(!is_null($db->pdoErrorCode()) && $db->pdoErrorCode() != '1'){
|
|
echo "<p>Fehler ".$db->pdoErrorCode()." beim Verbindungsversuch mit der Datenbank: \"".$db->pdoErrorInfo()[2]."\"</p>";
|
|
$_POST['step'] = 'createdatabase';
|
|
} else {
|
|
echo "<p>Erfolgreich mit der Datenbank verbunden!</p>";
|
|
}
|
|
if($storedvariables['selectdatabase']['databasetype'] == 'SQLite'){
|
|
$dbscript = "../helferdb_structure_sqlite.sql";
|
|
} elseif ($storedvariables['selectdatabase']['databasetype'] == 'MariaDB'){
|
|
$dbscript = "../helferdb_structure_mariadb.sql";
|
|
}
|
|
$statementsReturnvalues = $db->executeScript(__METHOD__, $dbscript);
|
|
if(!is_null($db->pdoErrorCode()) && $db->pdoErrorCode() != '00000'){
|
|
echo "<p>Fehler ".$db->pdoErrorCode()." bei Statement Nr. ".sizeof($statementsReturnvalues)." beim Versuch Tabellen anzulegen: \"".$db->pdoErrorInfo()[2]."\"</p>";
|
|
$_POST['step'] = 'createdatabase';
|
|
} else {
|
|
echo "<p>Datenbanktabellen wurden erfolgreich angelegt!</p>";
|
|
}
|
|
|
|
});
|
|
|
|
$wizard->renderPHP();
|
|
|
|
?>
|
|
|