Leitgedanken/msd/inc/sql_tools.php
2023-02-11 15:24:36 +01:00

198 lines
9.0 KiB
PHP

<?php
/* ----------------------------------------------------------------------
MyOOS [Dumper]
http://www.oos-shop.de/
Copyright (c) 2013 - 2022 by the MyOOS Development Team.
----------------------------------------------------------------------
Based on:
MySqlDumper
http://www.mysqldumper.de
Copyright (C)2004-2011 Daniel Schlichtholz (admin@mysqldumper.de)
----------------------------------------------------------------------
Released under the GNU General Public License
---------------------------------------------------------------------- */
if (!defined('MOD_VERSION')) {
exit('No direct access.');
}
get_sql_encodings();
//Datenbanken
if (isset($_GET['dbrefresh'])) {
SetDefault();
}
echo $aus.'<h4>'.$lang['L_TOOLS'].'</h4>';
if (isset($_POST['dbdosubmit'])) {
$newname = $_POST['newname'];
$db_index = $_POST['db_index'];
$db_action = $_POST['db_action'];
$changed = false;
$ausgabe = $out = '';
switch ($db_action) {
case 'drop':
if (MOD_DoSQL('DROP DATABASE `'.$databases['Name'][$db_index].'`')) {
echo SQLOutput($out, '<p class="success">'.$lang['L_DB'].' `'.$databases['Name'][$db_index].'` '.$lang['L_SQL_DELETED'].'</p>');
$changed = true;
}
break;
case 'empty':
EmptyDB($databases['Name'][$db_index]);
echo SQLOutput($out, '<p class="success">'.$lang['L_DB'].' `'.$databases['Name'][$db_index].'` '.$lang['L_SQL_WASEMPTIED'].'.</p>');
break;
case 'rename':
$dbold = $databases['Name'][$db_index];
if (DB_Copy($dbold, $newname, 1)) {
echo SQLOutput($out, '<p class="success">'.$lang['L_DB'].' `'.$dbold.'` '.$lang['L_SQL_RENAMEDTO'].' `'.$newname.'`.</p>');
$changed = true;
}
break;
case 'copy':
$dbold = $databases['Name'][$db_index];
if (DB_Copy($dbold, $newname)) {
$changed = true;
echo SQLOutput($out, '<p class="success">'.sprintf($lang['L_SQL_DBCOPY'], $dbold, $newname).'</p>');
}
break;
case 'structure':
if (DB_Copy($databases['Name'][$db_index], $newname, 0, 0)) {
$changed = true;
echo SQLOutput($out, '<p class="success">'.sprintf($lang['L_SQL_DBSCOPY'], $databases['Name'][$db_index], $newname).'</p>');
}
break;
case 'rights':
break;
}
if (true == $changed) {
SetDefault();
include $config['files']['parameter'];
echo '<script>parent.MyOOS_Dumper_menu.location.href="menu.php?action=dbrefresh";</script>';
}
}
if (isset($_POST['dbwantaction'])) {
if (isset($_POST['db_createnew'])) {
$newname = trim($_POST['db_create']);
if (!empty($newname)) {
$sqlc = "CREATE DATABASE `$newname`";
$col = (MOD_NEW_VERSION) ? $_POST['db_collate'] : '';
if (isset($_POST['db_default_charset']) && intval(substr(MOD_NEW_VERSION, 0, 1)) > 3) {
$db_default_charset_string = $config['mysql_possible_character_sets'][$_POST['db_default_charset']];
$db_default_charset = explode(' ', $db_default_charset_string);
if (isset($db_default_charset[0])) {
$sqlc .= ' DEFAULT CHARACTER SET `'.$db_default_charset[0].'`';
}
}
$db_default_collation = @explode('|', $col);
if (isset($db_default_collation[1])) {
$sqlc .= ' COLLATE `'.$db_default_collation[1].'`';
}
if (mod_query($sqlc)) {
echo $lang['L_DB']." `$newname` ".$lang['L_SQL_WASCREATED'].'.<br>';
SetDefault();
include $config['files']['parameter'];
echo '<script>parent.MyOOS_Dumper_menu.location.href="menu.php?action=dbrefresh";</script>';
}
}
}
$db_action = $newname = '';
$db_index = -1;
for ($i = 0; $i < count($databases['Name']); ++$i) {
if (isset($_POST['db_do_'.$i])) {
$newname = $_POST['db_rename'.$i];
$db_index = $i;
$db_action = $_POST['db_do_action_'.$i];
break;
}
}
if ('' != $db_action) {
echo '<div><div align="left" id="sqleditbox">';
echo '<form action="sql.php?context=3" method="post">
<input type="hidden" name="db_action" value="'.$db_action.'">
<input type="hidden" name="newname" value="'.$newname.'">
<input type="hidden" name="db_index" value="'.$db_index.'">';
switch ($db_action) {
case 'drop':
echo '<strong>'.sprintf($lang['L_ASKDBDELETE'], $databases['Name'][$i]).'</strong><br><br>';
echo '<input type="submit" name="dbdosubmit" value="'.$lang['L_DO_NOW'].'" class="Formbutton">';
break;
case 'empty':
echo '<strong>'.sprintf($lang['L_ASKDBEMPTY'], $databases['Name'][$i]).'</strong><br><br>';
echo '<input type="submit" name="dbdosubmit" value="'.$lang['L_DO_NOW'].'" class="Formbutton">';
break;
case 'rename':
echo '<strong>'.$lang['L_SQL_RENAMEDB'].' `'.$databases['Name'][$db_index].'` '.$lang['L_IN'].' `'.$newname.'`</strong><br><br>';
if ('' == $newname) {
echo '<p class="error">'.$lang['L_SQL_NAMEDEST_MISSING'].'</p>';
} else {
echo '<input type="submit" name="dbdosubmit" value="'.$lang['L_DO_NOW'].'" class="Formbutton">';
}
break;
case 'copy':
echo '<strong>'.sprintf($lang['L_ASKDBCOPY'], $databases['Name'][$db_index], $newname).'</strong><br><br>';
if ('' == $newname) {
echo '<p class="error">'.$lang['L_SQL_NAMEDEST_MISSING'].'</p>';
} else {
echo '<input type="submit" name="dbdosubmit" value="'.$lang['L_DO_NOW'].'" class="Formbutton">';
}
break;
case 'structure':
echo '<strong>'.$lang['L_FM_ASKDBCOPY1'].'`'.$databases['Name'][$db_index].'`'.$lang['L_FM_ASKDBCOPY2'].'`'.$newname.'`'.$lang['L_FM_ASKDBCOPY3'].'</strong><br><br>';
if ('' == $newname) {
echo '<p class="error">'.$lang['L_SQL_NAMEDEST_MISSING'].'</p>';
} else {
echo '<input type="submit" name="dbdosubmit" value="'.$lang['L_DO_NOW'].'" class="Formbutton">';
}
break;
case 'rights':
break;
}
echo '</form></div></div><br>';
}
}
echo '<br><form action="sql.php?context=3" method="post"><input type="hidden" name="dbwantaction" value="1">';
echo '<div><table class="bdr">';
echo '<tr><td colspan="2" align="center"><strong>'.$lang['L_CREATE_DATABASE'].'</strong></td></tr>';
echo '<tr><td>Name:</td><td><input type="text" class="text" name="db_create" size="20"></td></tr>';
echo '<tr><td>'.$lang['L_DEFAULT_CHARSET'].':</td><td><select name="db_default_charset">';
echo make_options($config['mysql_possible_character_sets'], get_index($config['mysql_possible_character_sets'], $config['mysql_standard_character_set']));
echo '</select></td></tr>';
echo '<tr><td>'.$lang['L_COLLATION'].'</td><td><select name="db_collate">'.CollationCombo('', 1).'</select></td></tr>';
echo '<tr><td colspan="2"><input type="submit" name="db_createnew" value="'.$lang['L_CREATE'].'" class="Formbutton"></td></tr>';
echo '</table>';
echo '<br><table class="bdr">';
echo '<tr class="thead"><th>'.$lang['L_DBS'].'</th><th>'.$lang['L_SQL_ACTIONS'].'</th></tr>';
for ($i = 0; $i < count($databases['Name']); ++$i) {
$cl = ($i % 2) ? 'dbrow' : 'dbrow1';
echo ($i == $databases['db_selected_index']) ? '<tr class="dbrowsel">' : '<tr class="'.$cl.'">';
echo '<td><a href="sql.php?db='.$databases['Name'][$i].'&amp;dbid='.$i.'">'.$databases['Name'][$i].'</a></td>';
echo '<td nowrap="nowrap"><input type="text" class="text" name="db_rename'.$i.'" size="20">';
echo '&nbsp;&nbsp;<select name="db_do_action_'.$i.'" onchange="db_do_'.$i.'.disabled=false;">';
echo '<option value="">-- '.$lang['L_SQL_CHOOSEACTION'].' --</option>';
echo '<option value="drop">'.$lang['L_SQL_DELETEDB'].'</option>';
echo '<option value="empty">'.$lang['L_SQL_EMPTYDB'].'</option>';
if (MOD_NEW_VERSION) {
echo '<option value="rename">'.$lang['L_SQL_RENAMEDB'].'</option>';
}
if (MOD_NEW_VERSION) {
echo '<option value="copy">'.$lang['L_SQL_COPYDATADB'].'</option>';
}
echo '<option value="structure">'.$lang['L_SQL_COPYSDB'].'</option>';
echo '</select>';
echo "\n\n".'&nbsp;&nbsp;<input type="submit" name="db_do_'.$i.'" value="'.$lang['L_DO'].'" disabled="disabled" class="Formbutton">';
echo '&nbsp;&nbsp;<input type="Button" value="'.$lang['L_SQL_IMEXPORT'].'" onclick="location.href=\'sql.php?db='.$databases['Name'][$i].'&amp;dbid='.$i.'&amp;context=4\'" class="Formbutton"></td></tr>';
}
echo '</table></div></form>';