diff --git a/ChangeLog b/ChangeLog
index adb5ca764d..2e43a0ca80 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -14,14 +14,18 @@ phpMyAdmin - ChangeLog
+ rfe #1410 Added support for AES_ENCRYPT for blob fields
4.0.2.0 (not yet released)
+- bug #3902 Cannot browse when table name contains keyword "call"
+ center loading indicator for navigation refresh, related to bug #3920
- bug #3925 Table sorting in navigation panel is case-sensitive
-- bug #3915 Import of CSV file (Replace table data with file) with duplicate
-values
+- bug #3915 Import of CSV file (Replace table data with file) with duplicate values
+- bug #3907 undefined variables, function parameter problems
- bug #3898 Structure not refreshed after column drop
- bug #3926 View is not updatable
+- bug #3919 PropertiesIconic not honored
+- bug #3930 Databases to choose for specific privileges show up escaped
+- bug #3910 Export database with empty table as a php array, does not produce valid PHP
-4.0.1.0 (not yet released)
+4.0.1.0 (2013-05-14)
- bug #3879 Import broken for CSV using LOAD DATA
- bug #3889 When login fails and error display is active, login data is displayed
- bug #3890 [import] Web server upload directory import fails
diff --git a/changelog.php b/changelog.php
index 9dc60b6a1a..c216c7fe3d 100644
--- a/changelog.php
+++ b/changelog.php
@@ -11,7 +11,8 @@
*/
require 'libraries/common.inc.php';
-$response = PMA_Response::getInstance()->disable();
+$response = PMA_Response::getInstance();
+$response->disable();
$filename = CHANGELOG_FILE;
diff --git a/doc/config.rst b/doc/config.rst
index d9087ca87d..3922716e04 100644
--- a/doc/config.rst
+++ b/doc/config.rst
@@ -1022,6 +1022,33 @@ Generic settings
This setting can be adjusted by your vendor.
+.. config:option:: $cfg['VersionCheckProxyUrl']
+
+ :type: string
+ :default: ""
+
+ The url of the proxy to be used when retrieving the information about
+ the latest version of phpMyAdmin. You need this if the server where
+ phpMyAdmin is installed does not have direct access to the internet.
+ The format is: "hostname:portnumber"
+
+.. config:option:: $cfg['VersionCheckProxyUser']
+
+ :type: string
+ :default: ""
+
+ The username for authenticating with the proxy. By default, no
+ authentication is performed. If a username is supplied, Basic
+ Authentication will be performed. No other types of authentication
+ are currently supported.
+
+.. config:option:: $cfg['VersionCheckProxyPass']
+
+ :type: string
+ :default: ""
+
+ The password for authenticating with the proxy.
+
.. config:option:: $cfg['MaxDbList']
:type: integer
diff --git a/import.php b/import.php
index a81d716812..b877414436 100644
--- a/import.php
+++ b/import.php
@@ -36,6 +36,7 @@ $post_params = array(
'local_import_file'
);
+// TODO: adapt full list of allowed parameters, as in export.php
foreach ($post_params as $one_post_param) {
if (isset($_POST[$one_post_param])) {
$GLOBALS[$one_post_param] = $_POST[$one_post_param];
diff --git a/index.php b/index.php
index ecd1991b8c..13dc858e40 100644
--- a/index.php
+++ b/index.php
@@ -209,7 +209,7 @@ echo '';
if ($server > 0) {
echo '
';
- echo PMA_printListItem(
+ PMA_printListItem(
PMA_Util::getImage('b_tblops.png')." " .__('More settings'),
'li_user_preferences',
'prefs_manage.php?' . $common_url_query,
diff --git a/libraries/Config.class.php b/libraries/Config.class.php
index 89c24ea6cf..f78263ac0d 100644
--- a/libraries/Config.class.php
+++ b/libraries/Config.class.php
@@ -159,7 +159,7 @@ class PMA_Config
{
if (PMA_getenv('HTTP_USER_AGENT')) {
$HTTP_USER_AGENT = PMA_getenv('HTTP_USER_AGENT');
- } elseif (! isset($HTTP_USER_AGENT)) {
+ } else {
$HTTP_USER_AGENT = '';
}
diff --git a/libraries/DBQbe.class.php b/libraries/DBQbe.class.php
index 13ba4a1346..051b8c5ce2 100644
--- a/libraries/DBQbe.class.php
+++ b/libraries/DBQbe.class.php
@@ -1235,7 +1235,7 @@ class PMA_DbQbe
// Create LEFT JOINS out of Relations
if ($cfgRelation['relwork'] && count($all_tables) > 0) {
// Get tables and columns with valid where clauses
- $valid_where_clauses = $this->_getWhereClauseTablesAndColumns($this->_criteria);
+ $valid_where_clauses = $this->_getWhereClauseTablesAndColumns();
$where_clause_tables = $valid_where_clauses['where_clause_tables'];
$where_clause_columns = $valid_where_clauses['where_clause_columns'];
// Get master table
diff --git a/libraries/DisplayResults.class.php b/libraries/DisplayResults.class.php
index 01eb0a6877..9f3becf015 100644
--- a/libraries/DisplayResults.class.php
+++ b/libraries/DisplayResults.class.php
@@ -2543,7 +2543,7 @@ class PMA_DisplayResults
// In print view these variable needs toinitialized
$del_url = $del_query = $del_str = $edit_anchor_class
- = $edit_str = $js_conf = $copy_url = $copy_str = null;
+ = $edit_str = $js_conf = $copy_url = $copy_str = $edit_url = null;
// 1.2 Defines the URLs for the modify/delete link(s)
@@ -2579,7 +2579,8 @@ class PMA_DisplayResults
list($del_query, $del_url, $del_str, $js_conf)
= $this->_getDeleteAndKillLinks(
$where_clause, $clause_is_unique,
- $url_sql_query, $is_display['del_lnk']
+ $url_sql_query, $is_display['del_lnk'],
+ $row
);
} // end if (1.2.2)
@@ -2641,8 +2642,9 @@ class PMA_DisplayResults
// output
$this->_gatherLinksForLaterOutputs(
$row_no, $is_display, $where_clause, $where_clause_html, $js_conf,
- $del_url, $del_query, $del_str, $edit_anchor_class, $edit_str,
- $copy_url, $copy_str, $alternating_color_class, $condition_array
+ $del_url, $del_query, $del_str, $edit_anchor_class, $edit_url,
+ $edit_str, $copy_url, $copy_str, $alternating_color_class,
+ $condition_array
);
$table_body_html .= $directionCondition ? "\n" : '';
@@ -2932,6 +2934,7 @@ class PMA_DisplayResults
* @param string $del_query the query for delete row
* @param string $del_str the label for delete row
* @param string $edit_anchor_class the class for html element for edit
+ * @param string $edit_url the url for edit row
* @param string $edit_str the label for edit row
* @param string $copy_url the url for copy row
* @param string $copy_str the label for copy row
@@ -2947,7 +2950,7 @@ class PMA_DisplayResults
*/
private function _gatherLinksForLaterOutputs(
$row_no, $is_display, $where_clause, $where_clause_html, $js_conf,
- $del_url, $del_query, $del_str, $edit_anchor_class, $edit_str,
+ $del_url, $del_query, $del_str, $edit_anchor_class, $edit_url, $edit_str,
$copy_url, $copy_str, $alternating_color_class, $condition_array
) {
@@ -3332,6 +3335,7 @@ class PMA_DisplayResults
* @param boolean $clause_is_unique the unique condition of clause
* @param string $url_sql_query the analyzed sql query
* @param string $del_lnk the delete link of current row
+ * @param array $row the current row
*
* @return array 4 element array - $del_query,
* $del_url, $del_str, $js_conf
@@ -3341,7 +3345,7 @@ class PMA_DisplayResults
* @see _getTableBody()
*/
private function _getDeleteAndKillLinks(
- $where_clause, $clause_is_unique, $url_sql_query, $del_lnk
+ $where_clause, $clause_is_unique, $url_sql_query, $del_lnk, $row
) {
$goto = $this->__get('goto');
@@ -3398,13 +3402,13 @@ class PMA_DisplayResults
$_url_params = array(
'db' => 'mysql',
- 'sql_query' => 'KILL ' . $row[0], //FIXME:variable $row is undefined
+ 'sql_query' => 'KILL ' . $row[0],
'goto' => $lnk_goto,
);
$del_url = 'sql.php' . PMA_generate_common_url($_url_params);
- $del_query = 'KILL ' . $row[0]; //FIXME:variable $row is undefined
- $js_conf = 'KILL ' . $row[0]; //FIXME:variable $row is undefined
+ $del_query = 'KILL ' . $row[0];
+ $js_conf = 'KILL ' . $row[0];
$del_str = PMA_Util::getIcon(
'b_drop.png', __('Kill')
);
@@ -5210,6 +5214,8 @@ class PMA_DisplayResults
private function _getResultsOperations(
$the_disp_mode, $analyzed_sql, $only_view = false
) {
+ global $printview;
+
$results_operations_html = '';
$fields_meta = $this->__get('fields_meta'); // To safe use in foreach
$header_shown = false;
@@ -5910,41 +5916,41 @@ class PMA_DisplayResults
$ret .= $this->_getCheckboxForMultiRowSubmissions(
$del_url, $is_display, $row_no, $where_clause_html, $condition_array,
- $del_query, $id_suffix = '_left', '', '', ''
+ $del_query, $id_suffix = '_left', ''
);
$ret .= $this->_getEditLink(
- $edit_url, $class, $edit_str, $where_clause, $where_clause_html, ''
+ $edit_url, $class, $edit_str, $where_clause, $where_clause_html
);
$ret .= $this->_getCopyLink(
$copy_url, $copy_str, $where_clause, $where_clause_html, ''
);
- $ret .= $this->_getDeleteLink($del_url, $del_str, $js_conf, '', '');
+ $ret .= $this->_getDeleteLink($del_url, $del_str, $js_conf, '');
} elseif ($position == self::POSITION_RIGHT) {
- $ret .= $this->_getDeleteLink($del_url, $del_str, $js_conf, '', '');
+ $ret .= $this->_getDeleteLink($del_url, $del_str, $js_conf, '');
$ret .= $this->_getCopyLink(
$copy_url, $copy_str, $where_clause, $where_clause_html, ''
);
$ret .= $this->_getEditLink(
- $edit_url, $class, $edit_str, $where_clause, $where_clause_html, ''
+ $edit_url, $class, $edit_str, $where_clause, $where_clause_html
);
$ret .= $this->_getCheckboxForMultiRowSubmissions(
$del_url, $is_display, $row_no, $where_clause_html, $condition_array,
- $del_query, $id_suffix = '_right', '', '', ''
+ $del_query, $id_suffix = '_right', ''
);
} else { // $position == self::POSITION_NONE
$ret .= $this->_getCheckboxForMultiRowSubmissions(
$del_url, $is_display, $row_no, $where_clause_html, $condition_array,
- $del_query, $id_suffix = '_left', '', '', ''
+ $del_query, $id_suffix = '_left', ''
);
}
diff --git a/libraries/TableSearch.class.php b/libraries/TableSearch.class.php
index 2f43ebe29f..918a557260 100644
--- a/libraries/TableSearch.class.php
+++ b/libraries/TableSearch.class.php
@@ -465,12 +465,13 @@ EOT;
* @param mixed $criteriaValues Search criteria input
* @param string $names Name of the column on which search is submitted
* @param string $func_type Search function/operator
+ * @param string $types Type of the field
* @param bool $geom_func Whether geometry functions should be applied
*
* @return string part of where clause.
*/
private function _getGeomWhereClause($criteriaValues, $names,
- $func_type, $geom_func = null
+ $func_type, $types, $geom_func = null
) {
$geom_unary_functions = array(
'IsEmpty' => 1,
@@ -480,7 +481,7 @@ EOT;
);
$where = '';
- // Get details about the geometry fucntions
+ // Get details about the geometry functions
$geom_funcs = PMA_Util::getGISFunctions($types, true, false);
// New output type is the output type of the function being applied
$types = $geom_funcs[$geom_func]['type'];
@@ -531,7 +532,7 @@ EOT;
// If geometry function is set
if ($geom_func != null && trim($geom_func) != '') {
return $this->_getGeomWhereClause(
- $criteriaValues, $names, $func_type, $geom_func
+ $criteriaValues, $names, $func_type, $types, $geom_func
);
}
diff --git a/libraries/config.default.php b/libraries/config.default.php
index 23c20e22c2..5aa9e85225 100644
--- a/libraries/config.default.php
+++ b/libraries/config.default.php
@@ -575,6 +575,33 @@ $cfg['ServerDefault'] = 1;
*/
$cfg['VersionCheck'] = VERSION_CHECK_DEFAULT;
+/**
+ * The url of the proxy to be used when retrieving the information about
+ * the latest version of phpMyAdmin. You need this if the server where
+ * phpMyAdmin is installed does not have direct access to the internet.
+ * The format is: "hostname:portnumber"
+ *
+ * @global string $cfg['VersionCheckProxyUrl']
+ */
+$cfg['VersionCheckProxyUrl'] = "";
+
+/**
+ * The username for authenticating with the proxy. By default, no
+ * authentication is performed. If a username is supplied, Basic
+ * Authentication will be performed. No other types of authentication
+ * are currently supported.
+ *
+ * @global string $cfg['VersionCheckProxyUser']
+ */
+$cfg['VersionCheckProxyUser'] = "";
+
+/**
+ * The password for authenticating with the proxy.
+ *
+ * @global string $cfg['VersionCheckProxyPass']
+ */
+$cfg['VersionCheckProxyPass'] = "";
+
/**
* maximum number of db's displayed in database list
*
diff --git a/libraries/config/ConfigFile.class.php b/libraries/config/ConfigFile.class.php
index db431b2471..d1ce2d3a59 100644
--- a/libraries/config/ConfigFile.class.php
+++ b/libraries/config/ConfigFile.class.php
@@ -237,8 +237,7 @@ class ConfigFile
);
if (($value === $default_value && (defined('PMA_SETUP')
|| $instance_default_value === $default_value))
- || (empty($value) && empty($default_value) && (defined('PMA_SETUP')
- || empty($current_global)))
+ || (empty($value) && empty($default_value) && (defined('PMA_SETUP')))
) {
PMA_arrayRemove($path, $_SESSION[$this->_id]);
return;
diff --git a/libraries/config/messages.inc.php b/libraries/config/messages.inc.php
index edc5b56de4..60064477bd 100644
--- a/libraries/config/messages.inc.php
+++ b/libraries/config/messages.inc.php
@@ -521,6 +521,13 @@ $strConfigUserprefsDeveloperTab_name = __('Enable the Developer tab in settings'
$strConfigVersionCheckLink = __('Check for latest version');
$strConfigVersionCheck_desc = __('Enables check for latest version on main phpMyAdmin page');
$strConfigVersionCheck_name = __('Version check');
+$strConfigVersionCheckProxyUrl_desc = __('The url of the proxy to be used when retrieving the information about the latest version of phpMyAdmin. You need this if the server where phpMyAdmin is installed does not have direct access to the internet. The format is: "hostname:portnumber"');
+$strConfigVersionCheckProxyUrl_name = __('Version check proxy url');
+$strConfigVersionCheckProxyUser_desc = __('The username for authenticating with the proxy. By default, no authentication is performed. If a username is supplied, Basic Authentication will be performed. No other types of authentication are currently supported.');
+$strConfigVersionCheckProxyUser_name = __('Version check proxy username');
+$strConfigVersionCheckProxyPass_desc = __('The password for authenticating with the proxy');
+$strConfigVersionCheckProxyPass_name = __('Version check proxy password');
+
$strConfigZipDump_desc = __('Enable [a@http://en.wikipedia.org/wiki/ZIP_(file_format)]ZIP[/a] compression for import and export operations');
$strConfigZipDump_name = __('ZIP');
diff --git a/libraries/config/setup.forms.php b/libraries/config/setup.forms.php
index 17378b0b92..b0f11b9136 100644
--- a/libraries/config/setup.forms.php
+++ b/libraries/config/setup.forms.php
@@ -125,7 +125,6 @@ $forms['Features']['Developer'] = array(
'Error_Handler/gather',
'DBG/sql');
$forms['Features']['Other_core_settings'] = array(
- 'VersionCheck',
'NaturalOrder',
'InitialSlidersState',
'MaxDbList',
@@ -138,7 +137,12 @@ $forms['Features']['Other_core_settings'] = array(
'MemoryLimit',
'SkipLockedTables',
'DisableMultiTableMaintenance',
- 'UseDbSearch');
+ 'UseDbSearch',
+ 'VersionCheck',
+ 'VersionCheckProxyUrl',
+ 'VersionCheckProxyUser',
+ 'VersionCheckProxyPass'
+);
$forms['Sql_queries']['Sql_queries'] = array(
'ShowSQL',
'Confirm',
diff --git a/libraries/create_addfield.lib.php b/libraries/create_addfield.lib.php
new file mode 100644
index 0000000000..ae92f5903c
--- /dev/null
+++ b/libraries/create_addfield.lib.php
@@ -0,0 +1,229 @@
+
diff --git a/libraries/dbi/dummy.lib.php b/libraries/dbi/dummy.lib.php
index c841bffff2..c1d187ad12 100644
--- a/libraries/dbi/dummy.lib.php
+++ b/libraries/dbi/dummy.lib.php
@@ -414,10 +414,10 @@ function PMA_DBI_fetchRow($result)
*/
function PMA_DBI_dataSeek($result, $offset)
{
- if ($offset > count($GLOBALS['dummy_queries'][$i]['result'])) {
+ if ($offset > count($GLOBALS['dummy_queries'][$result]['result'])) {
return false;
}
- $GLOBALS['dummy_queries'][$i]['pos'] = $offset;
+ $GLOBALS['dummy_queries'][$result]['pos'] = $offset;
return true;
}
diff --git a/libraries/dbi/mysqli.dbi.lib.php b/libraries/dbi/mysqli.dbi.lib.php
index 67e984c464..4a396becf0 100644
--- a/libraries/dbi/mysqli.dbi.lib.php
+++ b/libraries/dbi/mysqli.dbi.lib.php
@@ -388,12 +388,10 @@ function PMA_DBI_nextResult($link = null)
*/
function PMA_DBI_storeResult()
{
- if (empty($link)) {
- if (isset($GLOBALS['userlink'])) {
- $link = $GLOBALS['userlink'];
- } else {
- return false;
- }
+ if (isset($GLOBALS['userlink'])) {
+ $link = $GLOBALS['userlink'];
+ } else {
+ return false;
}
return mysqli_store_result($link);
}
diff --git a/libraries/operations.lib.php b/libraries/operations.lib.php
index f98ac93156..cc05dd0ddd 100644
--- a/libraries/operations.lib.php
+++ b/libraries/operations.lib.php
@@ -1453,6 +1453,8 @@ function PMA_getTableAltersArray($is_myisam_or_aria, $is_isam, $pack_keys,
$checksum, $is_aria, $page_checksum, $delay_key_write, $is_innodb,
$is_pbxt, $row_format, $new_tbl_storage_engine, $transactional, $tbl_collation
) {
+ global $auto_increment;
+
$table_alters = array();
if (isset($_REQUEST['comment'])
@@ -1538,7 +1540,7 @@ function PMA_getTableAltersArray($is_myisam_or_aria, $is_isam, $pack_keys,
* @param string $tbl_storage_engine table storage engine
*
* @return array ($is_myisam_or_aria, $is_innodb, $is_isam,
- $is_berkeleydb, $is_aria, $is_pbxt)
+ * $is_berkeleydb, $is_aria, $is_pbxt)
*/
function PMA_setGlobalVariablesForEngine($tbl_storage_engine)
{
diff --git a/libraries/php-gettext/gettext.inc b/libraries/php-gettext/gettext.inc
index c9f7dc0168..00b966692c 100644
--- a/libraries/php-gettext/gettext.inc
+++ b/libraries/php-gettext/gettext.inc
@@ -174,13 +174,14 @@ function _get_codeset($domain=null) {
* Convert the given string to the encoding set by bind_textdomain_codeset.
*/
function _encode($text) {
- $target_encoding = _get_codeset();
- if (function_exists("mb_detect_encoding")) {
$source_encoding = mb_detect_encoding($text);
- if ($source_encoding != $target_encoding)
- $text = mb_convert_encoding($text, $target_encoding, $source_encoding);
- }
- return $text;
+ $target_encoding = _get_codeset();
+ if ($source_encoding != $target_encoding) {
+ return mb_convert_encoding($text, $target_encoding, $source_encoding);
+ }
+ else {
+ return $text;
+ }
}
diff --git a/libraries/plugins/export/ExportHtmlword.class.php b/libraries/plugins/export/ExportHtmlword.class.php
index e8875dda32..df258ae051 100644
--- a/libraries/plugins/export/ExportHtmlword.class.php
+++ b/libraries/plugins/export/ExportHtmlword.class.php
@@ -129,7 +129,7 @@ class ExportHtmlword extends ExportPlugin
+ . (isset($charset_of_file) ? $charset_of_file : 'utf-8') . '" />
'
);
@@ -287,10 +287,10 @@ class ExportHtmlword extends ExportPlugin
. '';
/**
- * Get the unique keys in the table
+ * Get the unique keys in the view
*/
$unique_keys = array();
- $keys = PMA_DBI_getTableIndexes($db, $table);
+ $keys = PMA_DBI_getTableIndexes($db, $view);
foreach ($keys as $key) {
if ($key['Non_unique'] == 0) {
$unique_keys[] = $key['Column_name'];
@@ -642,4 +642,4 @@ class ExportHtmlword extends ExportPlugin
return $definition;
}
}
-?>
\ No newline at end of file
+?>
diff --git a/libraries/plugins/export/ExportOdt.class.php b/libraries/plugins/export/ExportOdt.class.php
index f888d15010..d0e86df539 100644
--- a/libraries/plugins/export/ExportOdt.class.php
+++ b/libraries/plugins/export/ExportOdt.class.php
@@ -347,7 +347,7 @@ class ExportOdt extends ExportPlugin
*/
$GLOBALS['odt_buffer'] .=
'';
+ . htmlspecialchars($view) . '_data">';
$columns_cnt = 4;
$GLOBALS['odt_buffer'] .=
'
\ No newline at end of file
+?>
diff --git a/libraries/plugins/import/ImportCsv.class.php b/libraries/plugins/import/ImportCsv.class.php
index e5372990bc..3c436d4b97 100644
--- a/libraries/plugins/import/ImportCsv.class.php
+++ b/libraries/plugins/import/ImportCsv.class.php
@@ -105,9 +105,11 @@ class ImportCsv extends AbstractImportCsv
*/
public function doImport()
{
- global $db, $table, $csv_terminated, $csv_enclosed, $csv_escaped;
- global $error, $timeout_passed, $finished, $csv_new_line;
- // $csv_replace should have been here but we use directly from $_POST
+ global $db, $table, $csv_terminated, $csv_enclosed, $csv_escaped,
+ $csv_new_line, $csv_columns, $err_url;
+ // $csv_replace and $csv_ignore should have been here,
+ // but we use directly from $_POST
+ global $error, $timeout_passed, $finished;
$replacements = array(
'\\n' => "\n",
@@ -172,7 +174,7 @@ class ImportCsv extends AbstractImportCsv
$sql_template = 'REPLACE';
} else {
$sql_template = 'INSERT';
- if (isset($csv_ignore)) {
+ if (isset($_POST['csv_ignore'])) {
$sql_template .= ' IGNORE';
}
}
diff --git a/libraries/plugins/import/ImportLdi.class.php b/libraries/plugins/import/ImportLdi.class.php
index 9754e94633..20665078e5 100644
--- a/libraries/plugins/import/ImportLdi.class.php
+++ b/libraries/plugins/import/ImportLdi.class.php
@@ -97,9 +97,9 @@ class ImportLdi extends AbstractImportCsv
*/
public function doImport()
{
- global $finished, $error, $import_file, $compression, $charset_conversion;
- global $ldi_local_option, $ldi_replace, $ldi_terminated, $ldi_enclosed,
- $ldi_escaped, $ldi_new_line, $skip_queries, $ldi_columns, $table;
+ global $finished, $error, $import_file, $compression, $charset_conversion, $table;
+ global $ldi_local_option, $ldi_replace, $ldi_ignore, $ldi_terminated, $ldi_enclosed,
+ $ldi_escaped, $ldi_new_line, $skip_queries, $ldi_columns;
if ($import_file == 'none'
|| $compression != 'none'
diff --git a/libraries/plugins/import/ImportShp.class.php b/libraries/plugins/import/ImportShp.class.php
index a20bd607da..decc515935 100644
--- a/libraries/plugins/import/ImportShp.class.php
+++ b/libraries/plugins/import/ImportShp.class.php
@@ -78,7 +78,8 @@ class ImportShp extends ImportPlugin
*/
public function doImport()
{
- global $db, $error, $finished;
+ global $db, $error, $finished, $compression,
+ $import_file, $local_import_file;
if ((int) ini_get('memory_limit') < 512) {
@ini_set('memory_limit', '512M');
@@ -106,8 +107,8 @@ class ImportShp extends ImportPlugin
// If we can extract the zip archive to 'TempDir'
// and use the files in it for import
if ($compression == 'application/zip'
- && ! empty($cfg['TempDir'])
- && is_writable($cfg['TempDir'])
+ && ! empty($GLOBALS['cfg']['TempDir'])
+ && is_writable($GLOBALS['cfg']['TempDir'])
) {
$dbf_file_name = PMA_findFileFromZipArchive(
'/^.*\.dbf$/i', $import_file
@@ -117,11 +118,11 @@ class ImportShp extends ImportPlugin
// Extract the .dbf file and point to it.
$extracted = PMA_zipExtract(
$import_file,
- realpath($cfg['TempDir']),
+ realpath($GLOBALS['cfg']['TempDir']),
array($dbf_file_name)
);
if ($extracted) {
- $dbf_file_path = realpath($cfg['TempDir'])
+ $dbf_file_path = realpath($GLOBALS['cfg']['TempDir'])
. (PMA_IS_WINDOWS ? '\\' : '/') . $dbf_file_name;
$temp_dbf_file = true;
// Replace the .dbf with .*, as required
@@ -133,7 +134,7 @@ class ImportShp extends ImportPlugin
}
}
} elseif (! empty($local_import_file)
- && ! empty($cfg['UploadDir'])
+ && ! empty($GLOBALS['cfg']['UploadDir'])
&& $compression == 'none'
) {
// If file is in UploadDir, use .dbf file in the same UploadDir
@@ -158,7 +159,10 @@ class ImportShp extends ImportPlugin
}
// Delete the .dbf file extracted to 'TempDir'
- if ($temp_dbf_file) {
+ if ($temp_dbf_file
+ && isset($dbf_file_path)
+ && file_exists($dbf_file_path)
+ ) {
unlink($dbf_file_path);
}
diff --git a/libraries/replication.inc.php b/libraries/replication.inc.php
index 1fb5270239..d105e6cf35 100644
--- a/libraries/replication.inc.php
+++ b/libraries/replication.inc.php
@@ -304,126 +304,4 @@ function PMA_replication_master_replicated_dbs($link = null)
return $link;
}
-/**
- * This function provides synchronization of structure and data
- * between two mysql servers.
- *
- * @param string $db name of database, which should be synchronized
- * @param mixed $src_link link of source server,
- * note: if the server is current PMA server, use null
- * @param mixed $trg_link link of target server,
- * note: if the server is current PMA server, use null
- * @param bool $data if true, then data will be copied as well
- *
- * @return void
- *
- * @todo improve code sharing between the function and synchronization
- */
-
-function PMA_replication_synchronize_db($db, $src_link, $trg_link, $data = true)
-{
- $src_db = $trg_db = $db;
-
- $src_tables = PMA_DBI_getTables($src_db, $src_link);
-
- $trg_tables = PMA_DBI_getTables($trg_db, $trg_link);
-
- /**
- * initializing arrays to save table names
- */
- $source_tables_uncommon = array();
- $target_tables_uncommon = array();
- $matching_tables = array();
- $matching_tables_num = 0;
-
- /**
- * Criterion for matching tables is just their names.
- * Finding the uncommon tables for the source database
- * BY comparing the matching tables with all the tables in the source database
- */
- PMA_getMatchingTables($trg_tables, $src_tables, $matching_tables, $source_tables_uncommon);
-
- /**
- * Finding the uncommon tables for the target database
- * BY comparing the matching tables with all the tables in the target database
- */
- PMA_getNonMatchingTargetTables($trg_tables, $matching_tables, $target_tables_uncommon);
-
- /**
- *
- * Comparing Data In the Matching Tables
- * It is assumed that the matching tables are structurally
- * and typely exactly the same
- */
- $fields_num = array();
- $matching_tables_fields = array();
- $matching_tables_keys = array();
- $insert_array = array(array(array()));
- $update_array = array(array(array()));
- $delete_array = array();
- $row_count = array();
- $uncommon_tables_fields = array();
- $matching_tables_num = sizeof($matching_tables);
-
- for ($i = 0; $i < sizeof($matching_tables); $i++) {
- PMA_dataDiffInTables(
- $src_db, $trg_db, $src_link, $trg_link, $matching_tables,
- $matching_tables_fields, $update_array, $insert_array,
- $delete_array, $fields_num, $i, $matching_tables_keys
- );
- }
- for ($j = 0; $j < sizeof($source_tables_uncommon); $j++) {
- PMA_dataDiffInUncommonTables($source_tables_uncommon, $src_db, $src_link, $j, $row_count);
- }
-
- /**
- * INTEGRATION OF STRUCTURE DIFFERENCE CODE
- *
- */
- $source_columns = array();
- $target_columns = array();
- $alter_str_array = array(array());
- $add_column_array = array(array());
- $uncommon_columns = array();
- $target_tables_keys = array();
- $source_indexes = array();
- $target_indexes = array();
- $add_indexes_array = array();
- $alter_indexes_array = array();
- $remove_indexes_array = array();
- $criteria = array('Field', 'Type', 'Null', 'Collation', 'Key', 'Default', 'Comment');
-
- for ($counter = 0; $counter < $matching_tables_num; $counter++) {
- PMA_structureDiffInTables(
- $src_db, $trg_db, $src_link, $trg_link, $matching_tables,
- $source_columns, $target_columns, $alter_str_array, $add_column_array,
- $uncommon_columns, $criteria, $target_tables_keys, $counter
- );
-
- PMA_indexesDiffInTables(
- $src_db, $trg_db, $src_link, $trg_link, $matching_tables,
- $source_indexes, $target_indexes, $add_indexes_array,
- $alter_indexes_array, $remove_indexes_array, $counter
- );
- }
-
- /**
- * Generating Create Table query for all the non-matching tables present
- * in Source but not in Target and populating tables.
- */
- for ($q = 0; $q < sizeof($source_tables_uncommon); $q++) {
- if (isset($source_tables_uncommon[$q])) {
- PMA_createTargetTables(
- $src_db, $trg_db, $src_link, $trg_link, $source_tables_uncommon,
- $q, $uncommon_tables_fields, false
- );
- }
- if (isset($row_count[$q]) && $data) {
- PMA_populateTargetTables(
- $src_db, $trg_db, $src_link, $trg_link, $source_tables_uncommon,
- $q, $uncommon_tables_fields, false
- );
- }
- }
-}
?>
diff --git a/libraries/replication_gui.lib.php b/libraries/replication_gui.lib.php
index 2142fab601..ead99533e9 100644
--- a/libraries/replication_gui.lib.php
+++ b/libraries/replication_gui.lib.php
@@ -365,7 +365,7 @@ function PMA_replication_gui_master_addslaveuser()
. __('Password') . '"'
. ' onchange="if (this.value == \'none\') { pma_pw.value = \'\'; pma_pw2.value = \'\'; } else if (this.value == \'userdefined\') { pma_pw.focus(); pma_pw.select(); }">'
. ' '
diff --git a/libraries/rte/rte_export.lib.php b/libraries/rte/rte_export.lib.php
index 34f06d82d2..28b8798299 100644
--- a/libraries/rte/rte_export.lib.php
+++ b/libraries/rte/rte_export.lib.php
@@ -42,11 +42,11 @@ function PMA_RTE_handleExport($item_name, $export_data)
$_db = htmlspecialchars(PMA_Util::backquote($db));
$message = __('Error in processing request:') . ' '
. sprintf(PMA_RTE_getWord('not_found'), $item_name, $_db);
- $response = PMA_message::error($response);
+ $response = PMA_message::error($message);
if ($GLOBALS['is_ajax_request'] == true) {
$response = PMA_Response::getInstance();
$response->isSuccess(false);
- $response->addJSON('message', $response);
+ $response->addJSON('message', $message);
exit;
} else {
$response->display();
diff --git a/libraries/schema/Visio_Relation_Schema.class.php b/libraries/schema/Visio_Relation_Schema.class.php
index 18bb2dc554..515af66755 100644
--- a/libraries/schema/Visio_Relation_Schema.class.php
+++ b/libraries/schema/Visio_Relation_Schema.class.php
@@ -106,7 +106,7 @@ class PMA_VISIO extends XMLWriter
* Sets Visio XML .VDX Document Properties
*
* DocumentProperties tag contains document property elements such as
- the document's Title,Subject,Creator and templates tags
+ * the document's Title,Subject,Creator and templates tags
*
* @return void
* @access private
@@ -257,11 +257,11 @@ class Table_Stats
$this->_showInfo = $showInfo;
// height and width
- $this->_setHeightTable($fontSize);
+ $this->_setHeightTable($this->fontSize);
// setWidth must me after setHeight, because title
// can include table height which changes table width
- $this->_setWidthTable($font, $fontSize);
+ $this->_setWidthTable($this->font, $this->fontSize);
if ($same_wide_width < $this->width) {
$same_wide_width = $this->width;
}
diff --git a/libraries/server_privileges.lib.php b/libraries/server_privileges.lib.php
index 2cf30df5aa..691b2ff36e 100644
--- a/libraries/server_privileges.lib.php
+++ b/libraries/server_privileges.lib.php
@@ -2280,9 +2280,9 @@ function PMA_getTableForDisplayAllTableSpecificRights($username, $hostname
*
* @return string HTML snippet
*/
-function PMA_getHTmlForDisplaySelectDbInEditPrivs($found_rows)
+function PMA_getHtmlForDisplaySelectDbInEditPrivs($found_rows)
{
- $pred_db_array =PMA_DBI_fetchResult('SHOW DATABASES;');
+ $pred_db_array = PMA_DBI_fetchResult('SHOW DATABASES;');
$html_output = '' . "\n";
@@ -2291,14 +2291,15 @@ function PMA_getHTmlForDisplaySelectDbInEditPrivs($found_rows)
. '' . "\n";
foreach ($pred_db_array as $current_db) {
+ $current_db_show = $current_db;
$current_db = PMA_Util::escapeMysqlWildcards($current_db);
// cannot use array_diff() once, outside of the loop,
// because the list of databases has special characters
// already escaped in $found_rows,
// contrary to the output of SHOW DATABASES
- if (empty($found_rows) || ! in_array($current_db, $found_rows)) {
+ if (empty($found_rows) || ! in_array($current_db_show, $found_rows)) {
$html_output .= '' . "\n";
+ . htmlspecialchars($current_db_show) . '' . "\n";
}
}
$html_output .= '' . "\n";
@@ -3073,7 +3074,7 @@ function PMA_getHtmlForDisplayUserProperties($dbname_is_wildcard,$url_dbname,
if (! strlen($dbname)) {
// no database name was given, display select db
- $html_output .= PMA_getHTmlForDisplaySelectDbInEditPrivs($found_rows);
+ $html_output .= PMA_getHtmlForDisplaySelectDbInEditPrivs($found_rows);
} else {
$html_output .= PMA_displayTablesInEditPrivs($dbname, $found_rows);
diff --git a/libraries/sql.lib.php b/libraries/sql.lib.php
index a0448ce4fb..8353eb7527 100644
--- a/libraries/sql.lib.php
+++ b/libraries/sql.lib.php
@@ -420,7 +420,7 @@ function PMA_getHtmlForRelationalColumnDropdown($db, $table, $column, $curr_valu
$foreignData['foreign_field'],
$foreignData['foreign_display'],
$curr_value,
- $cfg['ForeignKeyMaxLimit']
+ $GLOBALS['cfg']['ForeignKeyMaxLimit']
);
$dropdown = '';
}
@@ -440,12 +440,12 @@ function PMA_getHtmlForRelationalColumnDropdown($db, $table, $column, $curr_valu
function PMA_getHtmlForPrintViewHeader($db, $sql_query, $num_rows)
{
$hostname = '';
- if ($cfg['Server']['verbose']) {
- $hostname = $cfg['Server']['verbose'];
+ if ( $GLOBALS['cfg']['Server']['verbose']) {
+ $hostname = $GLOBALS['cfg']['Server']['verbose'];
} else {
- $hostname = $cfg['Server']['host'];
- if (! empty($cfg['Server']['port'])) {
- $hostname .= $cfg['Server']['port'];
+ $hostname = $GLOBALS['cfg']['Server']['host'];
+ if (! empty( $GLOBALS['cfg']['Server']['port'])) {
+ $hostname .= $GLOBALS['cfg']['Server']['port'];
}
}
diff --git a/libraries/sql_query_form.lib.php b/libraries/sql_query_form.lib.php
index 236315d839..7d9f523538 100644
--- a/libraries/sql_query_form.lib.php
+++ b/libraries/sql_query_form.lib.php
@@ -446,7 +446,9 @@ function PMA_sqlQueryFormBookmark()
*/
function PMA_sqlQueryFormUpload()
{
- $errors = array ();
+ global $timeout_passed, $local_import_file;
+
+ $errors = array();
// we allow only SQL here
$matcher = '@\.sql(\.(' . PMA_supportedDecompressions() . '))?$@';
diff --git a/libraries/sqlvalidator.class.php b/libraries/sqlvalidator.class.php
index 9aec036b21..6c1fb5942c 100644
--- a/libraries/sqlvalidator.class.php
+++ b/libraries/sqlvalidator.class.php
@@ -386,7 +386,8 @@ if (!$GLOBALS['sqlvalidator_error']) {
$this->service_link, $this->username, $this->password,
$this->calling_program, $this->calling_program_version,
$this->target_dbms, $this->target_dbms_version,
- $this->connection_technology, $this->connection_technology_version
+ $this->connection_technology, $this->connection_technology_version,
+ true // FIXME: Are we to tell them that we are interactive?
);
if (isset($this->session_data)
diff --git a/libraries/transformations.lib.php b/libraries/transformations.lib.php
index 96e47036c2..921063e6b1 100644
--- a/libraries/transformations.lib.php
+++ b/libraries/transformations.lib.php
@@ -379,11 +379,12 @@ function PMA_transformation_global_html_replace($buffer, $options = array())
*/
function PMA_clearTransformations($db, $table = '', $column = '')
{
+ $cfgRelation = PMA_getRelationsParam();
+
if (! isset($cfgRelation['column_info'])) {
return false;
}
- $cfgRelation = PMA_getRelationsParam();
-
+
$delete_sql = 'DELETE FROM '
. PMA_Util::backquote($cfgRelation['db']) . '.'
. PMA_Util::backquote($cfgRelation['column_info'])
diff --git a/po/lt.po b/po/lt.po
index 1da297d162..dd59b2c56f 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -4,17 +4,17 @@ msgstr ""
"Project-Id-Version: phpMyAdmin 4.1-dev\n"
"Report-Msgid-Bugs-To: phpmyadmin-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2013-05-10 10:24+0200\n"
-"PO-Revision-Date: 2013-02-11 19:03+0200\n"
-"Last-Translator: Edgaras Janušauskas \n"
-"Language-Team: Lithuanian \n"
+"PO-Revision-Date: 2013-05-16 14:41+0200\n"
+"Last-Translator: Rytis Slatkevičius \n"
+"Language-Team: Lithuanian "
+"\n"
"Language: lt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
-"%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 1.5-dev\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%"
+"100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 1.6-dev\n"
#: browse_foreigners.php:36 browse_foreigners.php:60 js/messages.php:335
#: libraries/DisplayResults.class.php:809
@@ -1314,10 +1314,10 @@ msgid "Differential"
msgstr "Skirtumas"
#: js/messages.php:145
-#, fuzzy, php-format
+#, php-format
#| msgid "Divided by %s:"
msgid "Divided by %s"
-msgstr "Padalintas į %s:"
+msgstr "Padalintas į %s"
#: js/messages.php:146
msgid "Unit"
@@ -1332,10 +1332,9 @@ msgid "From general log"
msgstr ""
#: js/messages.php:150
-#, fuzzy
#| msgid "Loading logs"
msgid "Analysing logs"
-msgstr "Įkeliami žurnalai"
+msgstr "Analizuojami žurnalai"
#: js/messages.php:151
msgid "Analysing & loading logs. This may take a while."
@@ -1438,10 +1437,9 @@ msgid "Group queries, ignoring variable data in WHERE clauses"
msgstr "Sugrupuoti užklausas, nepaisant kintamųjų duomenų WHERE dalyje"
#: js/messages.php:178
-#, fuzzy
#| msgid "Number of inserted rows"
msgid "Sum of grouped rows:"
-msgstr "Įkeltų eilučių skaičius"
+msgstr "Sugrupuotų eilučių suma:"
#: js/messages.php:179
msgid "Total:"
diff --git a/po/zh_CN.po b/po/zh_CN.po
index b470afd354..64fc0d152b 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -4,10 +4,10 @@ msgstr ""
"Project-Id-Version: phpMyAdmin 4.1-dev\n"
"Report-Msgid-Bugs-To: phpmyadmin-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2013-05-10 10:24+0200\n"
-"PO-Revision-Date: 2013-04-25 16:12+0200\n"
-"Last-Translator: greensea g \n"
-"Language-Team: Simplified Chinese \n"
+"PO-Revision-Date: 2013-05-14 06:43+0200\n"
+"Last-Translator: Randall Fan \n"
+"Language-Team: Simplified Chinese "
+"\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -19,7 +19,7 @@ msgstr ""
#: libraries/DisplayResults.class.php:809
#: libraries/server_privileges.lib.php:2622
msgid "Show all"
-msgstr "显示所有"
+msgstr "显示全部"
#: browse_foreigners.php:77 libraries/PDF.class.php:67
#: libraries/Util.class.php:2541
@@ -338,7 +338,6 @@ msgstr "创建时间:"
#: db_printview.php:194 libraries/plugins/export/ExportSql.class.php:959
#: libraries/schema/Pdf_Relation_Schema.class.php:1342
-#, fuzzy
#| msgid "Last update"
msgid "Last update:"
msgstr "最后更新:"
@@ -514,10 +513,9 @@ msgstr "以 OpenStreetMaps 为背景"
# what's the f**k word of "SRID"?
#: gis_data_editor.php:161
-#, fuzzy
#| msgid "SRID"
msgid "SRID:"
-msgstr "SRID"
+msgstr "SRID:"
#: gis_data_editor.php:184
#, fuzzy, php-format
@@ -731,36 +729,32 @@ msgid "User:"
msgstr "用户:"
#: index.php:258
-#, fuzzy
#| msgid "Server charset"
msgid "Server charset:"
-msgstr "服务器字符集"
+msgstr "服务器字符集:"
#: index.php:270
msgid "Web server"
msgstr "网站服务器"
#: index.php:283
-#, fuzzy
#| msgid "Database client version"
msgid "Database client version:"
-msgstr "数据库客户端版本"
+msgstr "数据库客户端版本:"
#: index.php:287
-#, fuzzy
#| msgid "PHP extension"
msgid "PHP extension:"
-msgstr "PHP 扩展"
+msgstr "PHP 扩展:"
#: index.php:301
msgid "Show PHP information"
msgstr "显示 PHP 信息"
#: index.php:324
-#, fuzzy
#| msgid "Version information"
msgid "Version information:"
-msgstr "版本信息"
+msgstr "版本信息:"
#: index.php:333 libraries/Util.class.php:430 libraries/Util.class.php:516
#: libraries/config/FormDisplay.tpl.php:145
@@ -844,7 +838,6 @@ msgid "The configuration file now needs a secret passphrase (blowfish_secret)."
msgstr "配置文件现在需要一个短语密码。"
#: index.php:476
-#, fuzzy
#| msgid ""
#| "Directory [code]config[/code], which is used by the setup script, still "
#| "exists in your phpMyAdmin directory. You should remove it once phpMyAdmin "
@@ -855,8 +848,8 @@ msgid ""
"once phpMyAdmin has been configured. Otherwise the security of your server "
"may be compromised by unauthorized people downloading your configuration."
msgstr ""
-"安装时所用的 [code]config[/code] 文件夹尚未删除,如果 phpMyAdmin 已经安装配置"
-"好,请立即删除该文件夹。"
+"安装时所用的 [code]config[/code] 文件夹尚未删除,如果 phpMyAdmin "
+"已经安装配置好,请立即删除该文件夹。否则,未经授权的人员可通过下载配置文件入侵服务器。"
#: index.php:486
#, php-format
@@ -2267,22 +2260,19 @@ msgid "Column:"
msgstr "字段"
#: libraries/DBQbe.class.php:406
-#, fuzzy
#| msgid "Sort"
msgid "Sort:"
-msgstr "排序"
+msgstr "排序:"
#: libraries/DBQbe.class.php:468 libraries/DisplayResults.class.php:903
-#, fuzzy
#| msgid "Show"
msgid "Show:"
-msgstr "显示"
+msgstr "显示:"
#: libraries/DBQbe.class.php:513
-#, fuzzy
#| msgid "Criteria"
msgid "Criteria:"
-msgstr "条件"
+msgstr "条件:"
#: libraries/DBQbe.class.php:576
msgid "Add/Delete criteria rows"
@@ -2301,14 +2291,13 @@ msgid "Use Tables"
msgstr "使用表"
#: libraries/DBQbe.class.php:653 libraries/DBQbe.class.php:757
-#, fuzzy
#| msgid "Or"
msgid "Or:"
-msgstr "或"
+msgstr "或:"
#: libraries/DBQbe.class.php:657 libraries/DBQbe.class.php:742
msgid "And:"
-msgstr ""
+msgstr "和:"
#: libraries/DBQbe.class.php:661
msgid "Ins"
@@ -2319,10 +2308,9 @@ msgid "Del"
msgstr "删除"
#: libraries/DBQbe.class.php:680
-#, fuzzy
#| msgid "Modify"
msgid "Modify:"
-msgstr "修改"
+msgstr "修改:"
#: libraries/DBQbe.class.php:737
msgid "Ins:"
@@ -2464,10 +2452,9 @@ msgid "Number of rows:"
msgstr "记录数:"
#: libraries/DisplayResults.class.php:917
-#, fuzzy
#| msgid "Mode"
msgid "Mode:"
-msgstr "模式"
+msgstr "模式:"
#: libraries/DisplayResults.class.php:919
msgid "horizontal"
@@ -3099,16 +3086,14 @@ msgid "Target database `%s` was not found!"
msgstr "未找到目标数据库 %s !"
#: libraries/Table.class.php:1164
-#, fuzzy
#| msgid "Invalid database"
msgid "Invalid database:"
-msgstr "无效的数据库"
+msgstr "无效的数据库:"
#: libraries/Table.class.php:1178
-#, fuzzy
#| msgid "Invalid table name"
msgid "Invalid table name:"
-msgstr "无效的数据表名"
+msgstr "无效的数据表名:"
#: libraries/Table.class.php:1210
#, php-format
@@ -3255,10 +3240,9 @@ msgid "Theme path not found for theme %s!"
msgstr "找不到主题 %s 的路径!"
#: libraries/Theme_Manager.class.php:363
-#, fuzzy
#| msgid "Theme"
msgid "Theme:"
-msgstr "主题"
+msgstr "主题:"
#: libraries/Types.class.php:296
msgid ""
@@ -3465,7 +3449,7 @@ msgstr "从一组最多64个成员的集合中选择的单个值"
#: libraries/Types.class.php:358
msgid "A type that can store a geometry of any type"
-msgstr "一个能存储任何类型几何形状的类型"
+msgstr "一个能存储任何几何形状的类型"
#: libraries/Types.class.php:360
msgid "A point in 2-dimensional space"
@@ -3567,10 +3551,9 @@ msgid "Max: %s%s"
msgstr "最大限制:%s %s"
#: libraries/Util.class.php:674 libraries/sql.lib.php:467
-#, fuzzy
#| msgid "SQL query"
msgid "SQL query:"
-msgstr "SQL 查询"
+msgstr "SQL 查询:"
#: libraries/Util.class.php:718 libraries/rte/rte_events.lib.php:114
#: libraries/rte/rte_events.lib.php:123 libraries/rte/rte_events.lib.php:140
@@ -6456,7 +6439,7 @@ msgstr "正在上传要导入的文件…"
#: libraries/display_import.lib.php:94
#, php-format
msgid "%s/sec."
-msgstr "%s/秒"
+msgstr "%s/秒。"
#: libraries/display_import.lib.php:101
msgid "About %MIN min. %SEC sec. remaining."
@@ -10116,10 +10099,9 @@ msgid "FOREIGN KEY relation added"
msgstr "已添加外键关联"
#: pmd_relation_new.php:82
-#, fuzzy
#| msgid "Error: Relation not added."
msgid "Error: Relational features are disabled!"
-msgstr "错误:关系未添加。"
+msgstr "错误:关系功能被禁用!"
#: pmd_relation_new.php:98
msgid "Internal relation added"
@@ -11860,11 +11842,11 @@ msgstr "没有可显示数据"
#: tbl_chart.php:62 tbl_gis_visualization.php:24
msgid "No SQL query was set to fetch data."
-msgstr "没有设置SQL 查询来检索数据"
+msgstr "没有设置SQL 查询来检索数据。"
#: tbl_chart.php:124
msgid "No numeric columns present in the table to plot."
-msgstr "在将表格转为图标是没有找到数字类型的列"
+msgstr "在将表格转为图表时没有找到数字类型的列。"
#: tbl_chart.php:154
msgctxt "Chart type"
@@ -12062,10 +12044,9 @@ msgid "Choose column to display:"
msgstr "选择要显示的字段"
#: tbl_structure.php:125
-#, fuzzy
#| msgid "No rows selected"
msgid "No column selected."
-msgstr "没有选中任何行"
+msgstr "没有选中任何列。"
#: tbl_structure.php:149
#, php-format
diff --git a/server_collations.php b/server_collations.php
index 2af16473d8..0e1164789a 100644
--- a/server_collations.php
+++ b/server_collations.php
@@ -15,14 +15,15 @@ require_once 'libraries/common.inc.php';
*/
require 'libraries/server_common.inc.php';
+$response = PMA_Response::getInstance();
/**
* Displays the sub-page heading
*/
-echo '