[Phpmyadmin-git] [SCM] phpMyAdmin branch, master, updated. RELEASE_3_3_4-5779-g11e53fb
Michal Čihař
nijel at users.sourceforge.net
Tue Jul 20 12:06:14 CEST 2010
The branch, master has been updated
via 11e53fb1418f57529ef2fdd88bff7f7b41600ffe (commit)
via a4055b4773909e84cb727d269de0ebb6ac05c1c9 (commit)
from d7192b3a95bbaef2fccbd34ab57accb077085b4d (commit)
- Log -----------------------------------------------------------------
commit 11e53fb1418f57529ef2fdd88bff7f7b41600ffe
Author: Michal Čihař <mcihar at novell.com>
Date: Tue Jul 20 12:05:07 2010 +0200
[core] Dropped AllowAnywhereRecoding configuration variable.
It really does not make sense these days, now the recoding of
export/import is available when the necessary extensions are loaded and
it is possible to disable it using RecodingEngine directive.
commit a4055b4773909e84cb727d269de0ebb6ac05c1c9
Author: Michal Čihař <mcihar at novell.com>
Date: Tue Jul 20 11:56:21 2010 +0200
[core] RecodingEngine now accepts none as valid option.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 2 +
Documentation.html | 19 ++---
export.php | 2 +-
import.php | 4 +-
libraries/charset_conversion.lib.php | 131 +++++++++++++++------------------
libraries/config.default.php | 11 +---
libraries/core.lib.php | 2 +-
libraries/display_export.lib.php | 2 +-
libraries/display_import.lib.php | 2 +-
libraries/export/sql.php | 4 +-
libraries/iconv_wrapper.lib.php | 2 +-
libraries/sql_query_form.lib.php | 1 -
setup/lib/config_info.inc.php | 2 +-
setup/lib/forms.inc.php | 1 -
setup/lib/messages.inc.php | 1 -
15 files changed, 79 insertions(+), 107 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 4240463..f19f496 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -87,6 +87,8 @@ $Id$
thanks to Piotr Przybylski - crackpl
- bug [password] Generate password only available if JS is enabled
(fixed for Privileges and Change password)
+- [core] RecodingEngine now accepts none as valid option.
++ [core] Dropped AllowAnywhereRecoding configuration variable.
3.3.6.0 (not yet released)
diff --git a/Documentation.html b/Documentation.html
index 63705ca..4c23ec6 100644
--- a/Documentation.html
+++ b/Documentation.html
@@ -1683,18 +1683,6 @@ CREATE DATABASE,ALTER DATABASE,DROP DATABASE</pre>
expression. For example if you want only Czech and English, you should
set filter to <code>'^(cs|en)'</code>.</dd>
- <dt id="cfg_AllowAnywhereRecoding">$cfg['AllowAnywhereRecoding'] boolean</dt>
- <dd>Allow character set recoding of MySQL queries. You need recode or iconv
- support (compiled in or module) in PHP to allow MySQL queries recoding
- and used language file must have it enabled (by default only these
- which are in Unicode, just to avoid losing some characters).<br /><br />
-
- Setting this to <tt>TRUE</tt> also activates a pull-down menu
- in the Export and Import pages, to choose the character set when
- exporting a file. The default value in this menu comes from
- <tt>$cfg['Export']['charset']</tt> and <tt>$cfg['Import']['charset']</tt>.
- </dd>
-
<dt id="cfg_RecodingEngine">$cfg['RecodingEngine'] string</dt>
<dd>You can select here which functions will be used for character set
conversion. Possible values are:
@@ -1702,8 +1690,15 @@ CREATE DATABASE,ALTER DATABASE,DROP DATABASE</pre>
iconv, then recode)</li>
<li>iconv - use iconv or libiconv functions</li>
<li>recode - use recode_string function</li>
+ <li>none - disable encoding conversion</li>
</ul>
Default is auto.</dd>
+ <dd>
+ Enabled charset conversion activates a pull-down menu
+ in the Export and Import pages, to choose the character set when
+ exporting a file. The default value in this menu comes from
+ <tt>$cfg['Export']['charset']</tt> and <tt>$cfg['Import']['charset']</tt>.
+ </dd>
<dt id="cfg_IconvExtraParams">$cfg['IconvExtraParams'] string</dt>
<dd>Specify some parameters for iconv used in charset conversion. See
diff --git a/export.php b/export.php
index 8476a52..9c1be55 100644
--- a/export.php
+++ b/export.php
@@ -207,7 +207,7 @@ if ($what == 'sql') {
$output_kanji_conversion = function_exists('PMA_kanji_str_conv') && $type != 'xls';
// Do we need to convert charset?
-$output_charset_conversion = $asfile && $cfg['AllowAnywhereRecoding']
+$output_charset_conversion = $asfile && $GLOBALS['PMA_recoding_engine'] != PMA_CHARSET_NONE
&& isset($charset_of_file) && $charset_of_file != $charset
&& $type != 'xls';
diff --git a/import.php b/import.php
index 4d45a59..85616a9 100644
--- a/import.php
+++ b/import.php
@@ -343,7 +343,7 @@ if ($import_file != 'none' && !$error) {
//$_SESSION['Import_message'] = $message->getDisplay();
// Convert the file's charset if necessary
-if ($cfg['AllowAnywhereRecoding'] && isset($charset_of_file)) {
+if ($GLOBALS['PMA_recoding_engine'] != PMA_CHARSET_NONE && isset($charset_of_file)) {
if ($charset_of_file != $charset) {
$charset_conversion = TRUE;
}
@@ -451,7 +451,7 @@ if (isset($my_die)) {
if (! empty($last_query_with_results)) {
// but we want to show intermediate results too
$disp_query = $sql_query;
- $disp_message = __('Your SQL query has been executed successfully');
+ $disp_message = __('Your SQL query has been executed successfully');
$sql_query = $last_query_with_results;
$go_sql = true;
}
diff --git a/libraries/charset_conversion.lib.php b/libraries/charset_conversion.lib.php
index ed44a64..6254e67 100644
--- a/libraries/charset_conversion.lib.php
+++ b/libraries/charset_conversion.lib.php
@@ -20,29 +20,27 @@ function PMA_failRecoding() {
/**
* Loads the recode or iconv extensions if any of it is not loaded yet
*/
-if (isset($cfg['AllowAnywhereRecoding'])
- && $cfg['AllowAnywhereRecoding']) {
-
- if ($cfg['RecodingEngine'] == 'recode') {
- if (!@extension_loaded('recode')) {
- PMA_failRecoding();
- }
- $PMA_recoding_engine = 'recode';
- } elseif ($cfg['RecodingEngine'] == 'iconv') {
- if (!@extension_loaded('iconv')) {
- PMA_failRecoding();
- }
- $PMA_recoding_engine = 'iconv';
+if ($cfg['RecodingEngine'] == 'recode') {
+ if (!@extension_loaded('recode')) {
+ PMA_failRecoding();
+ }
+ $PMA_recoding_engine = 'recode';
+} elseif ($cfg['RecodingEngine'] == 'iconv') {
+ if (!@extension_loaded('iconv')) {
+ PMA_failRecoding();
+ }
+ $PMA_recoding_engine = 'iconv';
+} elseif ($cfg['RecodingEngine'] == 'auto') {
+ if (@extension_loaded('iconv')) {
+ $PMA_recoding_engine = 'iconv';
+ } elseif (@extension_loaded('recode')) {
+ $PMA_recoding_engine = 'recode';
} else {
- if (@extension_loaded('iconv')) {
- $PMA_recoding_engine = 'iconv';
- } elseif (@extension_loaded('recode')) {
- $PMA_recoding_engine = 'recode';
- } else {
- PMA_failRecoding();
- }
+ $PMA_recoding_engine = 'none';
}
-} // end load recode/iconv extension
+} else {
+ $PMA_recoding_engine = 'none';
+}
define('PMA_CHARSET_NONE', 0);
define('PMA_CHARSET_ICONV', 1);
@@ -55,64 +53,55 @@ if (!isset($cfg['IconvExtraParams'])) {
}
// Finally detect which function we will use:
-if (isset($cfg['AllowAnywhereRecoding'])
- && $cfg['AllowAnywhereRecoding']) {
-
- if (!isset($PMA_recoding_engine)) {
- $PMA_recoding_engine = $cfg['RecodingEngine'];
- }
- if ($PMA_recoding_engine == 'iconv') {
- if (@function_exists('iconv')) {
- if ((@stristr(PHP_OS, 'AIX')) && (@strcasecmp(ICONV_IMPL, 'unknown') == 0) && (@strcasecmp(ICONV_VERSION, 'unknown') == 0)) {
- $PMA_recoding_engine = PMA_CHARSET_ICONV_AIX;
- } else {
- $PMA_recoding_engine = PMA_CHARSET_ICONV;
- }
- } elseif (@function_exists('libiconv')) {
- $PMA_recoding_engine = PMA_CHARSET_LIBICONV;
+if ($PMA_recoding_engine == 'iconv') {
+ if (@function_exists('iconv')) {
+ if ((@stristr(PHP_OS, 'AIX')) && (@strcasecmp(ICONV_IMPL, 'unknown') == 0) && (@strcasecmp(ICONV_VERSION, 'unknown') == 0)) {
+ $PMA_recoding_engine = PMA_CHARSET_ICONV_AIX;
} else {
- $PMA_recoding_engine = PMA_CHARSET_NONE;
-
- if (!isset($GLOBALS['is_header_sent'])) {
- include './libraries/header.inc.php';
- }
- echo __('Couldn\'t use the iconv, libiconv, or recode_string functions, although the necessary extensions appear to be loaded. Check your PHP configuration.');
- require_once './libraries/footer.inc.php';
- exit();
+ $PMA_recoding_engine = PMA_CHARSET_ICONV;
}
- } elseif ($PMA_recoding_engine == 'recode') {
- if (@function_exists('recode_string')) {
- $PMA_recoding_engine = PMA_CHARSET_RECODE;
- } else {
- $PMA_recoding_engine = PMA_CHARSET_NONE;
+ } elseif (@function_exists('libiconv')) {
+ $PMA_recoding_engine = PMA_CHARSET_LIBICONV;
+ } else {
+ $PMA_recoding_engine = PMA_CHARSET_NONE;
- require_once './libraries/header.inc.php';
- echo __('Couldn\'t use the iconv, libiconv, or recode_string functions, although the necessary extensions appear to be loaded. Check your PHP configuration.');
- require_once './libraries/footer.inc.php';
- exit;
+ if (!isset($GLOBALS['is_header_sent'])) {
+ include './libraries/header.inc.php';
}
+ echo __('Couldn\'t use the iconv, libiconv, or recode_string functions, although the necessary extensions appear to be loaded. Check your PHP configuration.');
+ require_once './libraries/footer.inc.php';
+ exit();
+ }
+} elseif ($PMA_recoding_engine == 'recode') {
+ if (@function_exists('recode_string')) {
+ $PMA_recoding_engine = PMA_CHARSET_RECODE;
} else {
- if (@function_exists('iconv')) {
- if ((@stristr(PHP_OS, 'AIX')) && (@strcasecmp(ICONV_IMPL, 'unknown') == 0) && (@strcasecmp(ICONV_VERSION, 'unknown') == 0)) {
- $PMA_recoding_engine = PMA_CHARSET_ICONV_AIX;
- } else {
- $PMA_recoding_engine = PMA_CHARSET_ICONV;
- }
- } elseif (@function_exists('libiconv')) {
- $PMA_recoding_engine = PMA_CHARSET_LIBICONV;
- } elseif (@function_exists('recode_string')) {
- $PMA_recoding_engine = PMA_CHARSET_RECODE;
- } else {
- $PMA_recoding_engine = PMA_CHARSET_NONE;
+ $PMA_recoding_engine = PMA_CHARSET_NONE;
- require_once './libraries/header.inc.php';
- echo __('Couldn\'t use the iconv, libiconv, or recode_string functions, although the necessary extensions appear to be loaded. Check your PHP configuration.');
- require_once './libraries/footer.inc.php';
- exit;
- }
+ require_once './libraries/header.inc.php';
+ echo __('Couldn\'t use the iconv, libiconv, or recode_string functions, although the necessary extensions appear to be loaded. Check your PHP configuration.');
+ require_once './libraries/footer.inc.php';
+ exit;
}
} else {
- $PMA_recoding_engine = PMA_CHARSET_NONE;
+ if (@function_exists('iconv')) {
+ if ((@stristr(PHP_OS, 'AIX')) && (@strcasecmp(ICONV_IMPL, 'unknown') == 0) && (@strcasecmp(ICONV_VERSION, 'unknown') == 0)) {
+ $PMA_recoding_engine = PMA_CHARSET_ICONV_AIX;
+ } else {
+ $PMA_recoding_engine = PMA_CHARSET_ICONV;
+ }
+ } elseif (@function_exists('libiconv')) {
+ $PMA_recoding_engine = PMA_CHARSET_LIBICONV;
+ } elseif (@function_exists('recode_string')) {
+ $PMA_recoding_engine = PMA_CHARSET_RECODE;
+ } else {
+ $PMA_recoding_engine = PMA_CHARSET_NONE;
+
+ require_once './libraries/header.inc.php';
+ echo __('Couldn\'t use the iconv, libiconv, or recode_string functions, although the necessary extensions appear to be loaded. Check your PHP configuration.');
+ require_once './libraries/footer.inc.php';
+ exit;
+ }
}
/* Load AIX iconv wrapper if needed */
diff --git a/libraries/config.default.php b/libraries/config.default.php
index 7d7d084..e16216c 100644
--- a/libraries/config.default.php
+++ b/libraries/config.default.php
@@ -1951,22 +1951,13 @@ $cfg['DefaultConnectionCollation'] = 'utf8_general_ci';
$cfg['FilterLanguages'] = '';
/**
- * Allow character set recoding of MySQL queries, must be also enabled in language
- * file to make harder using other language files than Unicode.
- * Default value is false to avoid problems on servers without the iconv
- * extension
- *
- * @global boolean $cfg['AllowAnywhereRecoding']
- */
-$cfg['AllowAnywhereRecoding'] = false;
-
-/**
* You can select here which functions will be used for character set conversion.
* Possible values are:
* auto - automatically use available one (first is tested iconv, then
* recode)
* iconv - use iconv or libiconv functions
* recode - use recode_string function
+ * none - disable encoding conversion
*
* @global string $cfg['RecodingEngine']
*/
diff --git a/libraries/core.lib.php b/libraries/core.lib.php
index 12e28c5..acc9814 100644
--- a/libraries/core.lib.php
+++ b/libraries/core.lib.php
@@ -226,7 +226,7 @@ function PMA_fatalError($error_message, $message_args = null)
if (! isset($GLOBALS['available_languages'])) {
$GLOBALS['cfg'] = array(
'DefaultLang' => 'en',
- 'AllowAnywhereRecoding' => false);
+ );
// Loads the language file
require_once './libraries/select_lang.lib.php';
diff --git a/libraries/display_export.lib.php b/libraries/display_export.lib.php
index 54867f5..895f30c 100644
--- a/libraries/display_export.lib.php
+++ b/libraries/display_export.lib.php
@@ -205,7 +205,7 @@ echo PMA_pluginGetJavascript($export_list);
<div class="formelementrow">
<?php
// charset of file
- if ($cfg['AllowAnywhereRecoding']) {
+ if ($GLOBALS['PMA_recoding_engine'] != PMA_CHARSET_NONE) {
echo ' <label for="select_charset_of_file">'
. __('Character set of the file:') . '</label>' . "\n";
diff --git a/libraries/display_import.lib.php b/libraries/display_import.lib.php
index dd9f650..e1833bf 100644
--- a/libraries/display_import.lib.php
+++ b/libraries/display_import.lib.php
@@ -173,7 +173,7 @@ if ($_SESSION[$SESSION_KEY]["handler"]!="noplugin") {
// charset of file
echo '<div class="formelementrow">' . "\n";
- if ($cfg['AllowAnywhereRecoding']) {
+ if ($GLOBALS['PMA_recoding_engine'] != PMA_CHARSET_NONE) {
echo '<label for="charset_of_file">' . __('Character set of the file:') . '</label>';
reset($cfg['AvailableCharsets']);
echo '<select id="charset_of_file" name="charset_of_file" size="1">';
diff --git a/libraries/export/sql.php b/libraries/export/sql.php
index c2f68bc..d5c6c84 100644
--- a/libraries/export/sql.php
+++ b/libraries/export/sql.php
@@ -187,7 +187,6 @@ function PMA_exportFooter()
}
// restore connection settings
- // (not set if $cfg['AllowAnywhereRecoding'] is false)
$charset_of_file = isset($GLOBALS['charset_of_file']) ? $GLOBALS['charset_of_file'] : '';
if (!empty($GLOBALS['asfile']) && isset($mysql_charset_map[$charset_of_file])) {
$foot .= $crlf
@@ -276,8 +275,7 @@ function PMA_exportHeader()
// so that a utility like the mysql client can interpret
// the file correctly
if (isset($GLOBALS['charset_of_file']) && isset($mysql_charset_map[$GLOBALS['charset_of_file']])) {
- // $cfg['AllowAnywhereRecoding'] was true so we got a charset from
- // the export dialog
+ // we got a charset from the export dialog
$set_names = $mysql_charset_map[$GLOBALS['charset_of_file']];
} else {
// by default we use the connection charset
diff --git a/libraries/iconv_wrapper.lib.php b/libraries/iconv_wrapper.lib.php
index 106cf93..6fadfeb 100644
--- a/libraries/iconv_wrapper.lib.php
+++ b/libraries/iconv_wrapper.lib.php
@@ -29,7 +29,7 @@ $gnu_iconv_to_aix_iconv_codepage_map = array (
// "big5" --> "IBM-eucTW" according to http://kadesh.cepba.upc.es/mancpp/classref/ref/ITranscoder_DSC.htm
'big5' => 'IBM-eucTW',
- // Other mappings corresponding to the phpMyAdmin dropdown box when using the AllowAnywhereRecoding feature
+ // Other mappings corresponding to the phpMyAdmin dropdown box when using the charset conversion feature
'euc-jp' => 'IBM-eucJP',
'koi8-r' => 'IBM-eucKR',
'ks_c_5601-1987' => 'KSC5601.1987-0',
diff --git a/libraries/sql_query_form.lib.php b/libraries/sql_query_form.lib.php
index 6a4b6e9..30f02f6 100644
--- a/libraries/sql_query_form.lib.php
+++ b/libraries/sql_query_form.lib.php
@@ -487,7 +487,6 @@ function PMA_sqlQueryFormBookmark()
* @uses $GLOBALS['cfg']['BZipDump']
* @uses $GLOBALS['cfg']['UploadDir']
* @uses $GLOBALS['cfg']['AvailableCharsets']
- * @uses $GLOBALS['cfg']['AllowAnywhereRecoding']
* @uses __('bzipped')
* @uses __('Character set of the file:')
* @uses __('Compression')
diff --git a/setup/lib/config_info.inc.php b/setup/lib/config_info.inc.php
index 3d95641..afc124a 100644
--- a/setup/lib/config_info.inc.php
+++ b/setup/lib/config_info.inc.php
@@ -40,7 +40,7 @@ $cfg_db['Servers'] = array(1 => array(
'AllowDeny' => array(
'order' => array('', 'deny,allow', 'allow,deny', 'explicit')),
'only_db' => 'array'));
-$cfg_db['RecodingEngine'] = array('auto', 'iconv', 'recode');
+$cfg_db['RecodingEngine'] = array('auto', 'iconv', 'recode', 'none');
$cfg_db['OBGzip'] = array('auto', true, false);
$cfg_db['ShowTooltipAliasTB'] = array('nested', true, false);
$cfg_db['DisplayDatabasesList'] = array('auto', true, false);
diff --git a/setup/lib/forms.inc.php b/setup/lib/forms.inc.php
index e60cf6f..9770a4f 100644
--- a/setup/lib/forms.inc.php
+++ b/setup/lib/forms.inc.php
@@ -74,7 +74,6 @@ $forms['Server_tracking'] = array('Servers' => array(1 => array(
$forms['Import_export'] = array(
'UploadDir',
'SaveDir',
- 'AllowAnywhereRecoding',
'RecodingEngine',
'IconvExtraParams',
'ZipDump',
diff --git a/setup/lib/messages.inc.php b/setup/lib/messages.inc.php
index 5284e03..ef1f42b 100644
--- a/setup/lib/messages.inc.php
+++ b/setup/lib/messages.inc.php
@@ -13,7 +13,6 @@ if (!function_exists('__')) {
}
-$strSetupAllowAnywhereRecoding_name = __('Allow character set conversion');
$strSetupAllowArbitraryServer_desc = __('If enabled user can enter any MySQL server in login form for cookie auth');
$strSetupAllowArbitraryServerMsg = __('This [a@?page=form&formset=features#tab_Security]option[/a] should be disabled as it allows attackers to bruteforce login to any MySQL server. If you feel this is necessary, use [a@?page=form&formset=features#tab_Security]trusted proxies list[/a]. However, IP-based protection may not be reliable if your IP belongs to an ISP where thousands of users, including you, are connected to.');
$strSetupAllowArbitraryServer_name = __('Allow login to any MySQL server');
hooks/post-receive
--
phpMyAdmin
More information about the Git
mailing list