Merge branch 'master' into master-security

This commit is contained in:
Michal Čihař 2016-12-21 11:11:25 +01:00
commit 3f4487f985
51 changed files with 547 additions and 565 deletions

View File

@ -37,6 +37,7 @@ phpMyAdmin - ChangeLog
- issue #12713 Correctly handle HTTP status when doing requests
- issue #12247 Add option to delete settings from browser storage
- issue #12783 Remove unused PMA_addJSCode function
- issue #12069 Add table filtering to database structure
4.6.6 (not yet released)
- issue #12759 Fix Notice regarding 'Undefined index: old_usergroup'
@ -52,9 +53,17 @@ phpMyAdmin - ChangeLog
- issue #12786 Fixed database searching
- issue #12792 Fixed javascript error on new version link
- issue #12785 Add information about required and suggested extensions to composer.json
- issue #12801 Custom header shown twice with cookie login form
- issue #12802 Custom footer not shown with auth_type http login failure
- issue #12434 Improve documentation for servers running with Suhosin
- issue #12800 Updated embedded phpSecLib to 2.0.4
- issue #12800 Fixed various issues with PHP 7.1
- issue #11816 Fixed operation with lower_case_table_names=2
- issue #12813 Fixed stored procedure execution
- issue #12826 Honor user configured connection collation
- issue #12293 Correctly report OpenSSL errors from cookie encryption
- issue #12814 DateTime won't allow to input length in Routine editor
- issue #12841 Fixed moving of columns with whitespace in name
4.6.5.2 (2016-12-05)
- issue #12765 Fixed SQL export with newlines

View File

@ -42,6 +42,10 @@ If you prefer to follow the git repository, the following branch and tag names m
* ``master`` is the development branch.
* Releases are tagged, for example version 4.0.1 was tagged as ``RELEASE_4_0_1``.
Note that phpMyAdmin uses Composer to manage library dependencies, when using git
development versions you must manually run Composer.
Please see `the documentation <https://docs.phpmyadmin.net/en/latest/setup.html#installing-from-git>`_ for details.
More Information
----------------

View File

@ -2411,7 +2411,7 @@ Languages
.. config:option:: $cfg['DefaultConnectionCollation']
:type: string
:default: ``'utf8_general_ci'``
:default: ``'utf8mb4_general_ci'``
Defines the default connection collation to use, if not user-defined.
See the `MySQL documentation for charsets

View File

@ -146,7 +146,7 @@ The MySQL manual explains how to `reset the permissions
1.15 I have problems with *mysql.user* column names.
----------------------------------------------------
In previous MySQL versions, the ``User`` and ``Password``columns were
In previous MySQL versions, the ``User`` and ``Password`` columns were
named ``user`` and ``password``. Please modify your column names to
align with current standards.

View File

@ -30,6 +30,7 @@ AJAX.registerTeardown('db_structure.js', function () {
$('a.real_row_count').off('click');
$('a.row_count_sum').off('click');
$('select[name=submit_mult]').unbind('change');
$("#filterText").unbind('keyup');
});
/**
@ -210,6 +211,26 @@ AJAX.registerOnload('db_structure.js', function () {
});
};
/**
* Filtering tables on table listing of particular database
*
*/
$("#filterText").keyup(function() {
var filterInput = $(this).val().toUpperCase();
var structureTable = $('#structureTable')[0];
$('#structureTable tbody tr').each(function() {
var tr = $(this);
var a = tr.find('a')[0];
if (a) {
if (a.text.trim().toUpperCase().indexOf(filterInput) > -1) {
tr[0].style.display = "";
} else {
tr[0].style.display = "none";
}
}
});
});
/**
* Event handler on select of "Make consistent with central list"
*/

View File

@ -1539,7 +1539,6 @@ PMA_fastFilter.filter.prototype.request = function () {
}
var url = $('#pma_navigation').find('a.navigation_url').attr('href');
var params = self.$this.find('> ul > li > form.fast_filter').first().serialize();
params.token = PMA_commonParams.get('token');
if (self.$this.find('> ul > li > form.fast_filter:first input[name=searchClause]').length === 0) {
var $input = $('#pma_navigation_tree').find('li.fast_filter.db_fast_filter input.searchClause');

View File

@ -802,8 +802,6 @@ RTE.ROUTINE = {
// Process for parameter length
switch ($type.val()) {
case 'DATE':
case 'DATETIME':
case 'TIME':
case 'TINYBLOB':
case 'TINYTEXT':
case 'BLOB':

View File

@ -31,7 +31,7 @@ function checkAddUser(the_form)
return PMA_checkPassword($(the_form));
} // end of the 'checkAddUser()' function
function checkPasswordStrength(value, meter_obj, meter_object_label, username = null) {
function checkPasswordStrength(value, meter_obj, meter_object_label, username) {
// List of words we don't want to appear in the password
customDict = [
'phpmyadmin',

View File

@ -364,7 +364,7 @@ AJAX.registerOnload('tbl_structure.js', function () {
for (var i in data.columns) {
var the_column = data.columns[i];
var $the_row = $rows
.find("input:checkbox[value=" + the_column + "]")
.find("input:checkbox[value='" + the_column + "']")
.closest("tr");
// append the row for this column to the table
$fields_table.append($the_row);

View File

@ -1682,6 +1682,48 @@ class Config
)
);
}
/**
* Wrapper for footer/header rendering
*
* @param string $filename File to check and render
* @param string $id Div ID
*
* @return string
*/
private static function _renderCustom($filename, $id)
{
$retval = '';
if (file_exists($filename)) {
$retval .= '<div id="' . $id . '">';
ob_start();
include $filename;
$retval .= ob_get_contents();
ob_end_clean();
$retval .= '</div>';
}
return $retval;
}
/**
* Renders user configured footer
*
* @return string
*/
public static function renderFooter()
{
return self::_renderCustom(CUSTOM_FOOTER_FILE, 'pma_footer');
}
/**
* Renders user configured footer
*
* @return string
*/
public static function renderHeader()
{
return self::_renderCustom(CUSTOM_HEADER_FILE, 'pma_header');
}
}
if (!defined('TESTSUITE')) {

View File

@ -68,6 +68,11 @@ class DatabaseInterface
*/
private $_current_user;
/**
* @var null|string lower_case_table_names value cache
*/
private $_lower_case_table_names = null;
/**
* Constructor
*
@ -1383,24 +1388,22 @@ class DatabaseInterface
$default_charset = 'utf8';
$default_collation = 'utf8_general_ci';
}
if (! empty($GLOBALS['collation_connection'])) {
$collation_connection = $GLOBALS['PMA_Config']->get('collation_connection');
if (! empty($collation_connection)) {
$this->query(
"SET CHARACTER SET '$default_charset';",
$link,
self::QUERY_STORE
);
/* Automatically adjust collation to mb4 variant */
if ($default_charset == 'utf8mb4'
&& strncmp('utf8_', $GLOBALS['collation_connection'], 5) == 0
/* Automatically adjust collation if not supported by server */
if ($default_charset == 'utf8'
&& strncmp('utf8mb4_', $collation_connection, 8) == 0
) {
$GLOBALS['collation_connection'] = 'utf8mb4_' . substr(
$GLOBALS['collation_connection'],
5
);
$collation_connection = 'utf8_' . substr($collation_connection, 8);
}
$result = $this->tryQuery(
"SET collation_connection = '"
. $this->escapeString($GLOBALS['collation_connection'], $link)
. $this->escapeString($collation_connection, $link)
. "';",
$link,
self::QUERY_STORE
@ -1412,7 +1415,7 @@ class DatabaseInterface
);
$this->query(
"SET collation_connection = '"
. $this->escapeString($GLOBALS['collation_connection'], $link)
. $this->escapeString($collation_connection, $link)
. "';",
$link,
self::QUERY_STORE
@ -2184,6 +2187,21 @@ class DatabaseInterface
return $this->_current_user;
}
/**
* Returns value for lower_case_table_names variable
*
* @return string
*/
public function getLowerCaseNames()
{
if (is_null($this->_lower_case_table_names)) {
$this->_lower_case_table_names = $this->fetchValue(
"SELECT @@lower_case_table_names"
);
}
return $this->_lower_case_table_names;
}
/**
* Get the list of system schemas
*
@ -2615,7 +2633,25 @@ class DatabaseInterface
*/
public function getFieldsMeta($result)
{
return $this->_extension->getFieldsMeta($result);
$result = $this->_extension->getFieldsMeta($result);
if ($this->getLowerCaseNames() === '2') {
/**
* Fixup orgtable for lower_case_table_names = 2
*
* In this setup MySQL server reports table name lower case
* but we still need to operate on original case to properly
* match existing strings
*/
foreach ($result as $value) {
if (strlen($value->orgtable) !== 0 &&
mb_strtolower($value->orgtable) === mb_strtolower($value->table)) {
$value->orgtable = $value->table;
}
}
}
return $result;
}
/**

View File

@ -10,6 +10,7 @@ namespace PMA\libraries;
use Traversable;
use PMA\libraries\URL;
use PMA\libraries\Sanitize;
use PMA\libraries\Config;
/**
* Class used to output the footer
@ -348,15 +349,8 @@ class Footer
$retval .= $this->_getDemoMessage();
$retval .= '</div>';
}
// Include possible custom footers
if (file_exists(CUSTOM_FOOTER_FILE)) {
$retval .= '<div id="pma_footer">';
ob_start();
include CUSTOM_FOOTER_FILE;
$retval .= ob_get_contents();
ob_end_clean();
$retval .= '</div>';
}
$retval .= Config::renderFooter();
}
if (! $this->_isAjax) {
$retval .= "</body></html>";

View File

@ -10,6 +10,7 @@ namespace PMA\libraries;
use PMA\libraries\navigation\Navigation;
use PMA\libraries\URL;
use PMA\libraries\Sanitize;
use PMA\libraries\Config;
/**
@ -229,7 +230,6 @@ class Header
'opendb_url' => Util::getScriptNameForOption(
$GLOBALS['cfg']['DefaultTabDatabase'], 'database'
),
'safari_browser' => PMA_USR_BROWSER_AGENT == 'SAFARI' ? 1 : 0,
'collation_connection' => $GLOBALS['collation_connection'],
'lang' => $GLOBALS['lang'],
'server' => $GLOBALS['server'],
@ -431,14 +431,7 @@ class Header
$retval .= $nav->getDisplay();
}
// Include possible custom headers
if (file_exists(CUSTOM_HEADER_FILE)) {
$retval .= '<div id="pma_header">';
ob_start();
include CUSTOM_HEADER_FILE;
$retval .= ob_get_contents();
ob_end_clean();
$retval .= '</div>';
}
$retval .= Config::renderHeader();
// offer to load user preferences from localStorage
if ($this->_userprefsOfferImport) {
include_once './libraries/user_preferences.lib.php';

View File

@ -89,7 +89,7 @@ class Response
if (! defined('TESTSUITE')) {
$buffer = OutputBuffering::getInstance();
$buffer->start();
register_shutdown_function(array('PMA\libraries\Response', 'response'));
register_shutdown_function(array($this, 'response'));
}
$this->_header = new Header();
$this->_HTML = '';
@ -97,13 +97,8 @@ class Response
$this->_footer = new Footer();
$this->_isSuccess = true;
$this->_isAjax = false;
$this->_isDisabled = false;
if (isset($_REQUEST['ajax_request']) && $_REQUEST['ajax_request'] == true) {
$this->_isAjax = true;
}
$this->_header->setAjax($this->_isAjax);
$this->_footer->setAjax($this->_isAjax);
$this->setAjax(! empty($_REQUEST['ajax_request']));
$this->_CWD = getcwd();
}
@ -422,21 +417,19 @@ class Response
/**
* Sends an HTML response to the browser
*
* @static
* @return void
*/
public static function response()
public function response()
{
$response = Response::getInstance();
chdir($response->getCWD());
chdir($this->getCWD());
$buffer = OutputBuffering::getInstance();
if (empty($response->_HTML)) {
$response->_HTML = $buffer->getContents();
if (empty($this->_HTML)) {
$this->_HTML = $buffer->getContents();
}
if ($response->isAjax()) {
$response->_ajaxResponse();
if ($this->isAjax()) {
$this->_ajaxResponse();
} else {
$response->_htmlResponse();
$this->_htmlResponse();
}
$buffer->flush();
exit;

View File

@ -2030,7 +2030,7 @@ class Util
}
}
if ($found_error) {
PMA_fatalError($error_message, null, false);
PMA_fatalError($error_message);
}
} // end function
@ -4324,19 +4324,11 @@ class Util
*/
public static function getCollateForIS()
{
$lowerCaseTableNames = self::cacheGet(
'lower_case_table_names',
function () {
return $GLOBALS['dbi']->fetchValue(
"SELECT @@lower_case_table_names"
);
}
);
if ($lowerCaseTableNames === '0' // issue #10961
|| $lowerCaseTableNames === '2' // issue #11461
) {
$names = $GLOBALS['dbi']->getLowerCaseNames();
if ($names === '0') {
return "COLLATE utf8_bin";
} elseif ($names === '2') {
return "COLLATE utf8_general_ci";
}
return "";
}

View File

@ -2559,7 +2559,7 @@ $cfg['DefaultLang'] = 'en';
*
* @global string $cfg['DefaultConnectionCollation']
*/
$cfg['DefaultConnectionCollation'] = 'utf8_unicode_ci';
$cfg['DefaultConnectionCollation'] = 'utf8mb4_unicode_ci';
/**
* Force: always use this language, e.g. 'en'

View File

@ -102,6 +102,8 @@ class PageSettings
* @param FormDisplay &$form_display Form
* @param ConfigFile &$cf Configuration file
* @param Message|null &$error Error message
* @param FormDisplay $form_display
* @param ConfigFile $cf
*
* @return void
*/

View File

@ -364,6 +364,10 @@ class DatabaseStructureController extends DatabaseController
*/
protected function displayTableList()
{
// filtering
$this->response->addHTML(
Template::get('filter')->render(array('filterValue'=>''))
);
// table form
$this->response->addHTML(
Template::get('database/structure/table_header')

View File

@ -17,7 +17,6 @@ use PMA\libraries\Util;
use PMA\Util as Util_lib;
use SqlParser;
use SqlParser\Statements\CreateStatement;
use SqlParser\Utils\Table as SqlTable;
use PMA\libraries\Table;
use PMA\libraries\controllers\TableController;
use PMA\libraries\URL;

View File

@ -210,13 +210,10 @@ function PMA_securePath($path)
*
* @param string $error_message the error message or named error message
* @param string|array $message_args arguments applied to $error_message
* @param boolean $delete_session whether to delete session cookie
*
* @return void
*/
function PMA_fatalError(
$error_message, $message_args = null, $delete_session = true
) {
function PMA_fatalError($error_message, $message_args = null) {
/* Use format string if applicable */
if (is_string($message_args)) {
$error_message = sprintf($error_message, $message_args);
@ -224,8 +221,16 @@ function PMA_fatalError(
$error_message = vsprintf($error_message, $message_args);
}
$response = Response::getInstance();
if ($response->isAjax()) {
/*
* Avoid using Response if Config is not yet loaded
* (this can happen on early fatal error)
*/
if (isset($GLOBALS['Config'])) {
$response = Response::getInstance();
} else {
$response = null;
}
if (! is_null($response) && $response->isAjax()) {
$response->setRequestStatus(false);
$response->addJSON('message', PMA\libraries\Message::error($error_message));
} else {
@ -242,14 +247,6 @@ function PMA_fatalError(
$lang = isset($GLOBALS['lang']) ? $GLOBALS['lang'] : 'en';
$dir = isset($GLOBALS['text_dir']) ? $GLOBALS['text_dir'] : 'ltr';
// on fatal errors it cannot hurt to always delete the current session
if ($delete_session
&& isset($GLOBALS['session_name'])
&& isset($_COOKIE[$GLOBALS['session_name']])
) {
$GLOBALS['PMA_Config']->removeCookie($GLOBALS['session_name']);
}
// Displays the error message
include './libraries/error.inc.php';
}

View File

@ -248,7 +248,7 @@ function PMA_getMemoryLimitForExport()
* @param string $compression compression asked
* @param string $filename_template the filename template
*
* @return array the filename template and mime type
* @return string[] the filename template and mime type
*/
function PMA_getExportFilenameAndMimetype(
$export_type, $remember_template, $export_plugin, $compression,
@ -366,7 +366,7 @@ function PMA_openExportFile($filename, $quick_export)
* @param string $dump_buffer the current dump buffer
* @param string $save_filename the export filename
*
* @return object $message a message object (or empty string)
* @return Message $message a message object (or empty string)
*/
function PMA_closeExportFile($file_handle, $dump_buffer, $save_filename)
{
@ -465,7 +465,7 @@ function PMA_saveObjectInBuffer($object_name, $append = false)
* @param string $db the database name
* @param string $table the table name
*
* @return array the generated HTML and back button
* @return string[] the generated HTML and back button
*/
function PMA_getHtmlForDisplayedExportHeader($export_type, $db, $table)
{
@ -1021,7 +1021,7 @@ function PMA_unlockTables()
/**
* Returns all the metadata types that can be exported with a database or a table
*
* @return array metadata types.
* @return string[] metadata types.
*/
function PMA_getMetadataTypesToExport()
{

View File

@ -75,7 +75,7 @@ class GISPoint extends GISGeometry
* @param array $scale_data Array containing data related to scaling
* @param resource $image Image object
*
* @return object the modified image object
* @return resource the modified image object
* @access public
*/
public function prepareRowAsPng(

View File

@ -30,12 +30,13 @@ class Navigation
{
/* Init */
$retval = '';
if (!Response::getInstance()->isAjax()) {
$response = Response::getInstance();
if (! $response->isAjax()) {
$header = new NavigationHeader();
$retval = $header->getDisplay();
}
$tree = new NavigationTree();
if (! Response::getInstance()->isAjax()
if (! $response->isAjax()
|| ! empty($_REQUEST['full'])
|| ! empty($_REQUEST['reload'])
) {
@ -57,7 +58,7 @@ class Navigation
$retval .= $navRender;
}
if (! Response::getInstance()->isAjax()) {
if (! $response->isAjax()) {
// closes the tags that were opened by the navigation header
$retval .= '</div>'; // pma_navigation_tree
$retval .= '<div id="pma_navi_settings_container">';

View File

@ -1355,7 +1355,7 @@ class NavigationTree
);
$retval .= '<li class="fast_filter db_fast_filter">';
$retval .= '<form class="ajax fast_filter">';
$retval .= URL::getHiddenFields($url_params);
$retval .= URL::getHiddenInputs($url_params);
$retval .= '<input class="searchClause" type="text"';
$retval .= ' name="searchClause" accesskey="q"';
$retval .= " placeholder='"

View File

@ -14,6 +14,7 @@ use PMA\libraries\Message;
use PMA\libraries\plugins\AuthenticationPlugin;
use PMA\libraries\Response;
use PMA\libraries\Util;
use PMA\libraries\Config;
use ReCaptcha;
use PMA\libraries\URL;
@ -41,6 +42,31 @@ class AuthenticationCookie extends AuthenticationPlugin
*/
private $_cookie_iv = null;
/**
* Whether to use OpenSSL directly
*/
private $_use_openssl;
/**
* Constructor
*/
public function __construct()
{
$this->_use_openssl = ! class_exists('phpseclib\Crypt\Random');
}
/**
* Forces (not)using of openSSL
*
* @param boolean $use The flag
*
* @return void
*/
public function setUseOpenSSL($use)
{
$this->_use_openssl = $use;
}
/**
* Displays authentication form
*
@ -88,9 +114,6 @@ class AuthenticationCookie extends AuthenticationPlugin
$header->disableMenuAndConsole();
$header->disableWarnings();
if (@file_exists(CUSTOM_HEADER_FILE)) {
include CUSTOM_HEADER_FILE;
}
echo '
<div class="container">
<a href="';
@ -231,9 +254,7 @@ class AuthenticationCookie extends AuthenticationPlugin
echo '</div>';
}
echo '</div>';
if (@file_exists(CUSTOM_FOOTER_FILE)) {
include CUSTOM_FOOTER_FILE;
}
echo Config::renderFooter();
if (! defined('TESTSUITE')) {
exit;
} else {
@ -623,7 +644,7 @@ class AuthenticationCookie extends AuthenticationPlugin
private function _getSessionEncryptionSecret()
{
if (empty($_SESSION['encryption_key'])) {
if (self::useOpenSSL()) {
if ($this->_use_openssl) {
$_SESSION['encryption_key'] = openssl_random_pseudo_bytes(32);
} else {
$_SESSION['encryption_key'] = Crypt\Random::string(32);
@ -632,16 +653,6 @@ class AuthenticationCookie extends AuthenticationPlugin
return $_SESSION['encryption_key'];
}
/**
* Checks whether we should use openssl for encryption.
*
* @return boolean
*/
public static function useOpenSSL()
{
return ! class_exists('phpseclib\Crypt\Random');
}
/**
* Concatenates secret in order to make it 16 bytes log
*
@ -700,6 +711,18 @@ class AuthenticationCookie extends AuthenticationPlugin
);
}
/**
* Reports any SSL errors
*
* @return void
*/
public function reportSSLErrors()
{
while (($ssl_err = openssl_error_string()) !== false) {
trigger_error('OpenSSL error: ' . $ssl_err, E_USER_ERROR);
}
}
/**
* Encryption using openssl's AES or phpseclib's AES
* (phpseclib uses mcrypt when it is available)
@ -714,14 +737,15 @@ class AuthenticationCookie extends AuthenticationPlugin
$mac_secret = $this->getMACSecret($secret);
$aes_secret = $this->getAESSecret($secret);
$iv = $this->createIV();
if (self::useOpenSSL()) {
if ($this->_use_openssl) {
$result = openssl_encrypt(
$data,
'AES-128-CBC',
$secret,
$aes_secret,
0,
$iv
);
$this->reportSSLErrors();
} else {
$cipher = new Crypt\AES(Crypt\Base::MODE_CBC);
$cipher->setIV($iv);
@ -765,14 +789,16 @@ class AuthenticationCookie extends AuthenticationPlugin
return false;
}
if (self::useOpenSSL()) {
return openssl_decrypt(
if ($this->_use_openssl) {
$result = openssl_decrypt(
$data['payload'],
'AES-128-CBC',
$secret,
$aes_secret,
0,
base64_decode($data['iv'])
);
$this->reportSSLErrors();
return $result;
} else {
$cipher = new Crypt\AES(Crypt\Base::MODE_CBC);
$cipher->setIV(base64_decode($data['iv']));
@ -788,7 +814,7 @@ class AuthenticationCookie extends AuthenticationPlugin
*/
public function getIVSize()
{
if (self::useOpenSSL()) {
if ($this->_use_openssl) {
return openssl_cipher_iv_length('AES-128-CBC');
}
$cipher = new Crypt\AES(Crypt\Base::MODE_CBC);
@ -809,7 +835,7 @@ class AuthenticationCookie extends AuthenticationPlugin
if (! is_null($this->_cookie_iv)) {
return $this->_cookie_iv;
}
if (self::useOpenSSL()) {
if ($this->_use_openssl) {
return openssl_random_pseudo_bytes(
$this->getIVSize()
);

View File

@ -12,6 +12,7 @@ namespace PMA\libraries\plugins\auth;
use PMA\libraries\plugins\AuthenticationPlugin;
use PMA\libraries\Message;
use PMA\libraries\Response;
use PMA\libraries\Config;
/**
* Handles the HTTP authentication methods
@ -89,9 +90,7 @@ class AuthenticationHttp extends AuthenticationPlugin
);
$response->addHTML('</h3>');
if (@file_exists(CUSTOM_FOOTER_FILE)) {
include CUSTOM_FOOTER_FILE;
}
$response->addHTML(Config::renderFooter());
if (!defined('TESTSUITE')) {
exit;
@ -145,6 +144,10 @@ class AuthenticationHttp extends AuthenticationPlugin
$PHP_AUTH_PW = PMA_getenv('AUTH_PASSWORD');
}
}
// Sanitize empty password login
if (is_null($PHP_AUTH_PW)) {
$PHP_AUTH_PW = '';
}
// Decode possibly encoded information (used by IIS/CGI/FastCGI)
// (do not use explode() because a user might have a colon in his password

View File

@ -39,7 +39,9 @@ function PMA_getTablesInfo()
$GLOBALS['PMD']['TABLE_NAME'][$i]
= $GLOBALS['db'] . "." . $one_table['TABLE_NAME'];
$GLOBALS['PMD']['OWNER'][$i] = $GLOBALS['db'];
$GLOBALS['PMD']['TABLE_NAME_SMALL'][$i] = $one_table['TABLE_NAME'];
$GLOBALS['PMD']['TABLE_NAME_SMALL'][$i] = htmlspecialchars(
$one_table['TABLE_NAME'], ENT_QUOTES
);
$GLOBALS['PMD_URL']['TABLE_NAME'][$i]
= $GLOBALS['db'] . "." . $one_table['TABLE_NAME'];

View File

@ -568,19 +568,12 @@ function PMA_RTN_getDataFromRequest()
* @param string $type Type of routine (ROUTINE|PROCEDURE)
* @param bool $all Whether to return all data or just
* the info about parameters.
* @param bool $control Where to use Controllink to query for
* routine information
*
* @return array Data necessary to create the routine editor.
*/
function PMA_RTN_getDataFromName($name, $type, $all = true, $control = false)
function PMA_RTN_getDataFromName($name, $type, $all = true)
{
global $db;
$link = null;
if ($control) {
$link = $GLOBALS['controllink'];
}
$retval = array();
@ -594,7 +587,7 @@ function PMA_RTN_getDataFromName($name, $type, $all = true, $control = false)
. "AND ROUTINE_TYPE='" . $GLOBALS['dbi']->escapeString($type) . "'";
$query = "SELECT $fields FROM INFORMATION_SCHEMA.ROUTINES WHERE $where;";
$routine = $GLOBALS['dbi']->fetchSingleRow($query, 'ASSOC', $link);
$routine = $GLOBALS['dbi']->fetchSingleRow($query, 'ASSOC');
if (! $routine) {
return false;
@ -608,8 +601,7 @@ function PMA_RTN_getDataFromName($name, $type, $all = true, $control = false)
= $GLOBALS['dbi']->getDefinition(
$db,
$routine['ROUTINE_TYPE'],
$routine['SPECIFIC_NAME'],
$link
$routine['SPECIFIC_NAME']
);
if ($definition == NULL) {
@ -1170,7 +1162,7 @@ function PMA_RTN_getQueryFromRequest()
}
if ($item_param_length[$i] != ''
&& !preg_match(
'@^(DATE|DATETIME|TIME|TINYBLOB|TINYTEXT|BLOB|TEXT|'
'@^(DATE|TINYBLOB|TINYTEXT|BLOB|TEXT|'
. 'MEDIUMBLOB|MEDIUMTEXT|LONGBLOB|LONGTEXT|'
. 'SERIAL|BOOLEAN)$@i',
$item_param_type[$i]
@ -1314,7 +1306,7 @@ function PMA_RTN_handleExecute()
if (! empty($_REQUEST['execute_routine']) && ! empty($_REQUEST['item_name'])) {
// Build the queries
$routine = PMA_RTN_getDataFromName(
$_REQUEST['item_name'], $_REQUEST['item_type'], false, true
$_REQUEST['item_name'], $_REQUEST['item_type'], false
);
if ($routine === false) {
$message = __('Error in processing request:') . ' ';
@ -1510,7 +1502,7 @@ function PMA_RTN_handleExecute()
* Display the execute form for a routine.
*/
$routine = PMA_RTN_getDataFromName(
$_GET['item_name'], $_GET['item_type'], true, true
$_GET['item_name'], $_GET['item_type'], true
);
if ($routine !== false) {
$form = PMA_RTN_getExecuteForm($routine);

View File

@ -27,9 +27,9 @@
<directory suffix="_test.php">test/libraries/rte</directory>
<directory suffix="_test.php">test/libraries</directory>
</testsuite>
<!-- <testsuite name="Selenium">
<testsuite name="Selenium">
<directory suffix="Test.php">test/selenium</directory>
</testsuite> -->
</testsuite>
</testsuites>
<logging>

View File

@ -4,10 +4,10 @@ msgstr ""
"Project-Id-Version: phpMyAdmin 4.7.0-dev\n"
"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n"
"POT-Creation-Date: 2016-12-13 10:41+0100\n"
"PO-Revision-Date: 2016-11-18 10:31+0000\n"
"Last-Translator: Michal Čihař <michal@cihar.com>\n"
"Language-Team: Catalan <https://hosted.weblate.org/projects/phpmyadmin/"
"master/ca/>\n"
"PO-Revision-Date: 2016-12-13 11:53+0000\n"
"Last-Translator: monicagrau <monicagrau@gmail.com>\n"
"Language-Team: Catalan "
"<https://hosted.weblate.org/projects/phpmyadmin/master/ca/>\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -8575,9 +8575,9 @@ msgid ""
"to the PHP timeout limit. <i>(This might be a good way to import large "
"files, however it can break transactions.)</i>"
msgstr ""
"Permet l'interrupció de l'importació en cas de que l'arxiu d'ordres detecti "
"que s'acosta el limit del temps. <i>(Pot ser una bona solució per importar "
"arxius grans, però pot trencar transaccions.)</i>"
"Permet la interrupció de la importació en cas de que l'arxiu d'ordres "
"detecti que s'acosta el limit del temps. <i>(Pot ser una bona solució per "
"importar arxius grans, però pot trencar transaccions.)</i>"
#: libraries/display_import.lib.php:315
msgid "Skip this number of queries (for SQL) starting from the first one:"

116
po/cs.po
View File

@ -6,10 +6,10 @@ msgstr ""
"Project-Id-Version: phpMyAdmin 4.7.0-dev\n"
"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n"
"POT-Creation-Date: 2016-12-13 10:41+0100\n"
"PO-Revision-Date: 2016-12-10 22:56+0000\n"
"Last-Translator: Lucie Procházková <lucieaprochazkova@gmail.com>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/phpmyadmin/master/"
"cs/>\n"
"PO-Revision-Date: 2016-12-13 10:10+0000\n"
"Last-Translator: Michal Čihař <michal@cihar.com>\n"
"Language-Team: Czech "
"<https://hosted.weblate.org/projects/phpmyadmin/master/cs/>\n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -18,16 +18,11 @@ msgstr ""
"X-Generator: Weblate 2.10-dev\n"
#: changelog.php:39 license.php:34
#, fuzzy, php-format
#| msgid ""
#| "The %s file is not available on this system, please visit www.phpmyadmin."
#| "net for more information."
#, php-format
msgid ""
"The %s file is not available on this system, please visit %s for more "
"information."
msgstr ""
"Soubor %s nebyl nalezen, více informací naleznete na stránce www.phpmyadmin."
"net."
msgstr "Soubor %s nebyl nalezen, více informací naleznete na stránce %s."
#: db_central_columns.php:108
msgid "The central list of columns for the current database is empty."
@ -2151,12 +2146,11 @@ msgid "Encryption key"
msgstr "Šifrovací klíč"
#: js/messages.php:528
#, fuzzy
msgid ""
"MySQL accepts additional values not selectable by the slider; key in those "
"values directly if desired"
msgstr ""
"Další přijaté hodnoty nelze vybrat nastavením jezdce; Zadejte tyto hodnoty "
"Další platné hodnoty nelze vybrat nastavením jezdce; Zadejte tyto hodnoty "
"přímo podle potřeby"
#: js/messages.php:534
@ -3092,7 +3086,6 @@ msgid "Romanian"
msgstr "Rumunština"
#: libraries/Charsets.php:328
#, fuzzy
msgid "Sinhalese"
msgstr "Sinhálština"
@ -3757,9 +3750,8 @@ msgid "Unknown error in file upload."
msgstr "Neznámá chyba při nahrávání souboru."
#: libraries/File.php:445
#, fuzzy
msgid "File is a symbolic link"
msgstr "Soubor je symbolická linka."
msgstr "Soubor je symbolický odkaz"
#: libraries/File.php:450 libraries/File.php:542
msgid "File could not be read!"
@ -3909,7 +3901,6 @@ msgid "Page number:"
msgstr "Strana číslo:"
#: libraries/LanguageManager.php:888
#, fuzzy
msgid "Ignoring unsupported language code."
msgstr "Ignorován nepodporovaný jazykový kód."
@ -5271,10 +5262,8 @@ msgid "You allow for connecting to the server without a password."
msgstr "Dovolujete připojit se k serveru bez hesla."
#: libraries/config/ServerConfigChecks.php:349
#, fuzzy
#| msgid "Key is too short, it should have at least 8 characters."
msgid "Key is too short, it should have at least 32 characters."
msgstr "Tajný klíč je příliš krátký, měl by obsahovat alespoň 8 znaků."
msgstr "Tajný klíč je příliš krátký, měl by obsahovat alespoň 32 znaků."
#: libraries/config/ServerConfigChecks.php:359
msgid "Key should contain letters, numbers [em]and[/em] special characters."
@ -5413,10 +5402,8 @@ msgid "Could not connect to the database server!"
msgstr "Nepodařilo se připojit databázovému serveru!"
#: libraries/config/Validator.php:243
#, fuzzy
#| msgid "Authentication type"
msgid "Invalid authentication type!"
msgstr "Typ přihlašování"
msgstr "Chybný typ přihlašování!"
#: libraries/config/Validator.php:250
msgid "Empty username while using [kbd]config[/kbd] authentication method!"
@ -5530,14 +5517,8 @@ msgid "Highlight pointer"
msgstr "Zvýrazňovač řádků při ukázání"
#: libraries/config/messages.inc.php:47
#, fuzzy
#| msgid ""
#| "Enable [a@https://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for "
#| "import operations."
msgid "Enable bzip2 compression for import operations."
msgstr ""
"Povolit [a@https://cs.wikipedia.org/wiki/Bzip2]bzip2[/a] kompresi pro "
"importování."
msgstr "Povolit bzip2 kompresi pro importování."
#: libraries/config/messages.inc.php:50
msgid "Bzip2"
@ -5558,16 +5539,12 @@ msgid "CHAR columns editing"
msgstr "Úprava polí typu CHAR"
#: libraries/config/messages.inc.php:58
#, fuzzy
#| msgid ""
#| "Use user-friendly editor for editing SQL queries ([a@https://codemirror."
#| "net/]CodeMirror[/a]) with syntax highlighting and line numbers."
msgid ""
"Use user-friendly editor for editing SQL queries (CodeMirror) with syntax "
"highlighting and line numbers."
msgstr ""
"Použít uživatelsky přívětivý editor pro úpravu SQL dotazů ([a@https://"
"codemirror.net/]CodeMirror[/a]) se zvýrazněním syntaxe a čísly řádek."
"Použít uživatelsky přívětivý editor pro úpravu SQL dotazů (CodeMirror) se "
"zvýrazněním syntaxe a čísly řádek."
#: libraries/config/messages.inc.php:62
msgid "Enable CodeMirror"
@ -6321,14 +6298,8 @@ msgid "Disable some of the warnings shown by phpMyAdmin."
msgstr "Vypnout některá varování zobrazovaná phpMyAdminem."
#: libraries/config/messages.inc.php:353
#, fuzzy
#| msgid ""
#| "Enable [a@https://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for "
#| "import and export operations."
msgid "Enable gzip compression for import and export operations."
msgstr ""
"Povolí [a@https://cs.wikipedia.org/wiki/Gzip]gzip[/a] kompresi pro "
"importování a exportování."
msgstr "Povolí gzip kompresi pro importování a exportování."
#: libraries/config/messages.inc.php:356
msgid "GZip"
@ -7029,16 +7000,12 @@ msgid "Authentication type"
msgstr "Typ přihlašování"
#: libraries/config/messages.inc.php:640
#, fuzzy
#| msgid ""
#| "Leave blank for no [a@https://wiki.phpmyadmin.net/pma/bookmark]bookmark[/"
#| "a] support, suggested: [kbd]pma__bookmark[/kbd]"
msgid ""
"Leave blank for no [doc@bookmarks@]bookmark[/doc] support, suggested: "
"[kbd]pma__bookmark[/kbd]"
msgstr ""
"Nechte prázdné pro vypnutí podpory [a@https://wiki.phpmyadmin.net/pma/"
"bookmark]záložek[/a], doporučené nastavení: [kbd]pma__bookmarks[/kbd]"
"Nechte prázdné pro vypnutí podpory [doc@bookmarks@]záložek[/doc], doporučené "
"nastavení: [kbd]pma__bookmarks[/kbd]"
#: libraries/config/messages.inc.php:643
msgid "Bookmark table"
@ -7078,17 +7045,12 @@ msgid "Control user password"
msgstr "Heslo kontrolního uživatele"
#: libraries/config/messages.inc.php:656
#, fuzzy
#| msgid ""
#| "A special MySQL user configured with limited permissions, more "
#| "information available on [a@https://wiki.phpmyadmin.net/pma/"
#| "controluser]wiki[/a]."
msgid ""
"A special MySQL user configured with limited permissions, more information "
"available on [doc@linked-tables]documentation[/doc]."
msgstr ""
"Zvláštní MySQL uživatel s omezenými právy, více informací na [a@https://wiki."
"phpmyadmin.net/pma/controluser]wiki[/a]."
"Zvláštní MySQL uživatel s omezenými právy, více informací v [doc@linked-"
"tables]dokumentaci[/doc]."
#: libraries/config/messages.inc.php:659
msgid "Control user"
@ -7243,20 +7205,14 @@ msgid "PDF schema: pages table"
msgstr "PDF schémata: tabulka stránek"
#: libraries/config/messages.inc.php:721
#, fuzzy
#| msgid ""
#| "Database used for relations, bookmarks, and PDF features. See [a@https://"
#| "wiki.phpmyadmin.net/pma/pmadb]pmadb[/a] for complete information. Leave "
#| "blank for no support. Suggested: [kbd]phpmyadmin[/kbd]."
msgid ""
"Database used for relations, bookmarks, and PDF features. See [doc@linked-"
"tables]pmadb[/doc] for complete information. Leave blank for no support. "
"Suggested: [kbd]phpmyadmin[/kbd]."
msgstr ""
"Databáze používaná pro relace, záložky a PDF stránky. Více informací "
"naleznete na [a@https://wiki.phpmyadmin.net/pma/pmadb]pmadb[/a]. Pokud "
"ponecháte prázdné, budou tyto funkce vypnuté. Doporučená hodnota: "
"[kbd]phpmyadmin[/kbd]."
"naleznete na [doc@linked-tables]pmadb[/doc]. Pokud ponecháte prázdné, budou "
"tyto funkce vypnuté. Doporučená hodnota: [kbd]phpmyadmin[/kbd]."
#: libraries/config/messages.inc.php:725
#: templates/server/databases/create.phtml:20
@ -7297,31 +7253,23 @@ msgid "Favorites table"
msgstr "Oblíbené tabulky"
#: libraries/config/messages.inc.php:740
#, fuzzy
#| msgid ""
#| "Leave blank for no [a@https://wiki.phpmyadmin.net/pma/relation]relation-"
#| "links[/a] support, suggested: [kbd]pma__relation[/kbd]."
msgid ""
"Leave blank for no [doc@relations@]relation-links[/doc] support, suggested: "
"[kbd]pma__relation[/kbd]."
msgstr ""
"Nechte prázdné pro vypnutí podpory pro [a@https://wiki.phpmyadmin.net/pma/"
"relation]relace[/a], doporučené nastavení: [kbd]pma__relation[/kbd]."
"Nechte prázdné pro vypnutí podpory pro [doc@relations@]relace[/doc], "
"doporučené nastavení: [kbd]pma__relation[/kbd]."
#: libraries/config/messages.inc.php:744
msgid "Relation table"
msgstr "Tabulka s relacemi"
#: libraries/config/messages.inc.php:746
#, fuzzy
#| msgid ""
#| "See [a@https://wiki.phpmyadmin.net/pma/auth_types#signon]authentication "
#| "types[/a] for an example."
msgid ""
"See [doc@authentication-modes]authentication types[/doc] for an example."
msgstr ""
"Příklad můžete nalézt na [a@https://wiki.phpmyadmin.net/pma/"
"auth_types#signon]authentication types[/a]."
"Příklad můžete nalézt na [doc@authentication-modes]authentication "
"types[/doc]."
#: libraries/config/messages.inc.php:749
msgid "Signon session name"
@ -7835,14 +7783,8 @@ msgid "Proxy password"
msgstr "Heslo proxy"
#: libraries/config/messages.inc.php:971
#, fuzzy
#| msgid ""
#| "Enable [a@https://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for "
#| "import and export operations."
msgid "Enable ZIP compression for import and export operations."
msgstr ""
"Povolí [a@https://cs.wikipedia.org/wiki/Gzip]gzip[/a] kompresi pro "
"importování a exportování."
msgstr "Povolí ZIP kompresi pro importování a exportování."
#: libraries/config/messages.inc.php:974
msgid "ZIP"
@ -14091,16 +14033,12 @@ msgstr ""
"jsou hesla) se posílají nešifrovaně!"
#: setup/frames/index.inc.php:78
#, fuzzy
#| msgid ""
#| "If your server is also configured to accept HTTPS requests follow [a@"
#| "%s]this link[/a] to use a secure connection."
msgid ""
"If your server is also configured to accept HTTPS requests follow this link "
"to use a secure connection."
msgstr ""
"Pokud je Váš server nastaven tak, aby přijal HTTPS požadavky, klikněte na [a@"
"%s]tento odkaz[/a] pro použití zabezpečeného připojení."
"Pokud je Váš server nastaven tak, aby přijal HTTPS požadavky, klikněte na "
"tento odkaz pro použití zabezpečeného připojení."
#: setup/frames/index.inc.php:82
msgid "Insecure connection"

View File

@ -4,10 +4,10 @@ msgstr ""
"Project-Id-Version: phpMyAdmin-docs 4.0.0-dev\n"
"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n"
"POT-Creation-Date: 2016-12-13 10:41+0100\n"
"PO-Revision-Date: 2016-12-07 07:42+0000\n"
"Last-Translator: Jörn Gorres <joern@gorres.com>\n"
"Language-Team: German <https://hosted.weblate.org/projects/phpmyadmin/master/"
"de/>\n"
"PO-Revision-Date: 2016-12-14 07:31+0000\n"
"Last-Translator: Phillip Rohmberger <rohmberger@hotmail.de>\n"
"Language-Team: German "
"<https://hosted.weblate.org/projects/phpmyadmin/master/de/>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -11925,11 +11925,9 @@ msgid "routine"
msgstr "Prozedur"
#: libraries/rte/rte_words.lib.php:32
#, fuzzy
#| msgid "You do not have the necessary privileges to create a routine"
msgid "You do not have the necessary privileges to create a routine."
msgstr ""
"Sie haben nicht die erforderlichen Rechte, um eine neue Prozedur zu erstellen"
"Sie haben nicht die erforderlichen Rechte, um eine neue Routine zu erstellen"
#: libraries/rte/rte_words.lib.php:35
#, php-format
@ -11937,6 +11935,8 @@ msgid ""
"No routine with name %1$s found in database %2$s. You might be lacking the "
"necessary privileges to edit this routine."
msgstr ""
"Keine Routine mit Namen %1$ s in Datenbank %2$ s gefunden. Vielleicht fehlt "
"Ihnen die erforderlichen Berechtigungen, um diese Routine zu bearbeiten."
#: libraries/rte/rte_words.lib.php:39
#, php-format

View File

@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: phpMyAdmin 4.7.0-dev\n"
"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n"
"POT-Creation-Date: 2016-12-13 10:41+0100\n"
"PO-Revision-Date: 2016-11-10 17:31+0000\n"
"PO-Revision-Date: 2016-12-14 08:11+0000\n"
"Last-Translator: Παναγιώτης Παπάζογλου <papaz_p@yahoo.com>\n"
"Language-Team: Greek <https://hosted.weblate.org/projects/phpmyadmin/master/"
"el/>\n"
"Language-Team: Greek "
"<https://hosted.weblate.org/projects/phpmyadmin/master/el/>\n"
"Language: el\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 2.9\n"
"X-Generator: Weblate 2.10-dev\n"
#: changelog.php:39 license.php:34
#, php-format
@ -2609,23 +2609,23 @@ msgstr "Αντιγραφή πίνακα με πρόθεμα"
#: js/messages.php:732
msgid "Extremely weak"
msgstr ""
msgstr "Υπερβολικά αδύνατο"
#: js/messages.php:733
msgid "Very weak"
msgstr ""
msgstr "Πολύ αδύνατο"
#: js/messages.php:734
msgid "Weak"
msgstr ""
msgstr "Αδύνατο"
#: js/messages.php:735
msgid "Good"
msgstr ""
msgstr "Καλό"
#: js/messages.php:736
msgid "Strong"
msgstr ""
msgstr "Δυνατό"
#: js/messages.php:765
msgctxt "Previous month"
@ -8295,7 +8295,7 @@ msgstr "Κωδικός πρόσβασης:"
#: libraries/display_change_password.lib.php:68
msgid "Enter:"
msgstr ""
msgstr "Εισαγωγή:"
#: libraries/display_change_password.lib.php:75
#: libraries/replication_gui.lib.php:865
@ -14279,16 +14279,12 @@ msgstr ""
"ακρυπτογράφητα!"
#: setup/frames/index.inc.php:78
#, fuzzy
#| msgid ""
#| "If your server is also configured to accept HTTPS requests follow [a@"
#| "%s]this link[/a] to use a secure connection."
msgid ""
"If your server is also configured to accept HTTPS requests follow this link "
"to use a secure connection."
msgstr ""
"Αν ο διακομιστής σας έχει ρυθμιστεί να δέχεται αιτήσεις HTTPS πατήστε [a@"
"%s]αυτόν τον σύνδεσμο[/a] για χρήση ασφαλούς σύνδεσης."
"Αν ο διακομιστής σας έχει ρυθμιστεί να δέχεται αιτήσεις HTTPS πατήστε αυτόν "
"τον σύνδεσμο για χρήση ασφαλούς σύνδεσης."
#: setup/frames/index.inc.php:82
msgid "Insecure connection"
@ -15150,10 +15146,8 @@ msgstr ""
"εισάγετε για την τρέχουσα συνεδρία;"
#: templates/prefs_autoload.phtml:14
#, fuzzy
#| msgid "Delete tracking"
msgid "Delete settings "
msgstr "Διαγραφή παρακολούθησης"
msgstr "Διαγραφή ρυθμίσεων "
#: templates/privileges/add_privileges_database.phtml:2
msgid "Add privileges on the following database(s):"
@ -15794,16 +15788,12 @@ msgid "Unexpected end of CASE expression"
msgstr "Μη αναμενόμενο τέλος της έκφρασης CASE"
#: vendor/phpmyadmin/sql-parser/src/Components/CreateDefinition.php:227
#, fuzzy
#| msgid ""
#| "A symbol name was expected! A reserved keyword can not be used as a field "
#| "name without backquotes."
msgid ""
"A symbol name was expected! A reserved keyword can not be used as a column "
"name without backquotes."
msgstr ""
"Αναμενόταν ένα όνομα συμβόλου! Μια δεσμευμένη λέξη-κλειδί δεν μπορεί να "
"χρησιμοποιηθεί ως όνομα πεδίου χωρίς εισαγωγικά."
"χρησιμοποιηθεί ως όνομα στήλης χωρίς εισαγωγικά."
#: vendor/phpmyadmin/sql-parser/src/Components/CreateDefinition.php:241
msgid "A symbol name was expected!"
@ -15923,10 +15913,8 @@ msgid "Unrecognized keyword."
msgstr "Μη αναγνωρισμένη λέξη κλειδί."
#: vendor/phpmyadmin/sql-parser/src/Statement.php:495
#, fuzzy
#| msgid "Unexpected beginning of statement."
msgid "Unexpected ordering of clauses."
msgstr "Μη αναμενόμενη έναρξη δήλωσης."
msgstr "Μη αναμενόμενη ταξινόμηση δηλώσεων."
#: vendor/phpmyadmin/sql-parser/src/Statements/CreateStatement.php:381
msgid "The name of the entity was expected."

140
po/es.po
View File

@ -4,28 +4,25 @@ msgstr ""
"Project-Id-Version: phpMyAdmin 4.7.0-dev\n"
"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n"
"POT-Creation-Date: 2016-12-13 10:41+0100\n"
"PO-Revision-Date: 2016-12-13 09:29+0000\n"
"Last-Translator: Laura Arjona Reina <larjona@larjona.net>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/phpmyadmin/"
"master/es/>\n"
"PO-Revision-Date: 2016-12-19 03:03+0000\n"
"Last-Translator: Franco <fulanodetal.github1@openaliasbox.org>\n"
"Language-Team: Spanish "
"<https://hosted.weblate.org/projects/phpmyadmin/master/es/>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 2.10-dev\n"
"X-Generator: Weblate 2.10\n"
#: changelog.php:39 license.php:34
#, fuzzy, php-format
#| msgid ""
#| "The %s file is not available on this system, please visit www.phpmyadmin."
#| "net for more information."
#, php-format
msgid ""
"The %s file is not available on this system, please visit %s for more "
"information."
msgstr ""
"El archivo %s no está disponible en este sistema, visite www.phpmyadmin.net "
"para más información."
"El archivo %s no está disponible en este sistema, visite %s para más "
"información."
#: db_central_columns.php:108
msgid "The central list of columns for the current database is empty."
@ -841,6 +838,8 @@ msgstr "¡Está a punto de DESTRUIR una base de datos completa!"
#: js/messages.php:48
msgid "Cannot rename database to the same name. Change the name and try again"
msgstr ""
"No puede renombrar la base de datos con el mismo nombre. Cambie el nombre e "
"inténtelo de nuevo"
#: js/messages.php:50
msgid "You are about to DESTROY a complete table!"
@ -2612,23 +2611,23 @@ msgstr "Copiar tabla con prefijo"
#: js/messages.php:732
msgid "Extremely weak"
msgstr ""
msgstr "Extremadamente débil"
#: js/messages.php:733
msgid "Very weak"
msgstr ""
msgstr "Muy débil"
#: js/messages.php:734
msgid "Weak"
msgstr ""
msgstr "Débil"
#: js/messages.php:735
msgid "Good"
msgstr ""
msgstr "Bueno"
#: js/messages.php:736
msgid "Strong"
msgstr ""
msgstr "Fuerte"
#: js/messages.php:765
msgctxt "Previous month"
@ -3121,7 +3120,7 @@ msgstr "Coreano"
#: libraries/Charsets.php:313
msgid "Burmese"
msgstr ""
msgstr "Birmania"
#: libraries/Charsets.php:316
msgid "Persian"
@ -3235,22 +3234,16 @@ msgid "unknown"
msgstr "desconocido"
#: libraries/Charsets.php:460
#, fuzzy
#| msgid "Collation"
msgid "binary collation"
msgstr "Cotejamiento"
msgstr "Cotejamiento binario"
#: libraries/Charsets.php:467
#, fuzzy
#| msgid "case-insensitive"
msgid "case-insensitive collation"
msgstr "independiente de mayúsculas y minúsculas"
msgstr "Cotejamiento independiente de mayúsculas y minúsculas"
#: libraries/Charsets.php:469
#, fuzzy
#| msgid "case-sensitive"
msgid "case-sensitive collation"
msgstr "dependiente de mayúsculas y minúsculas"
msgstr "Cotejamiento dependiente de mayúsculas y minúsculas"
#: libraries/Config.php:1100
#, php-format
@ -3324,10 +3317,8 @@ msgid "Details…"
msgstr "Detalles…"
#: libraries/DatabaseInterface.php:2327
#, fuzzy
#| msgid "Missing parameter:"
msgid "Missing connection parameters!"
msgstr "Parámetro faltante:"
msgstr "¡Parámetros de conexión faltantes!"
#: libraries/DatabaseInterface.php:2351
msgid "Connection for controluser as defined in your configuration failed."
@ -6888,10 +6879,8 @@ msgid "Show row links anyway"
msgstr "Mostrar enlaces de fila de todas maneras"
#: libraries/config/messages.inc.php:552 libraries/config/messages.inc.php:553
#, fuzzy
#| msgid "Disable foreign key checks"
msgid "Disable shortcut keys"
msgstr "Deshabilitar la revisión de las claves foráneas"
msgstr "Deshabilitar teclas de atajos"
#: libraries/config/messages.inc.php:555
msgid "Use natural order for sorting table and database names."
@ -7682,17 +7671,14 @@ msgid "Show last check timestamp"
msgstr "Mostrar marca temporal de la última revisión"
#: libraries/config/messages.inc.php:858
#, fuzzy
#| msgid "Show or hide a column displaying the comments for all tables."
msgid "Show or hide a column displaying the charset for all tables."
msgstr ""
"Mostrar u ocultar una columna, mostrando los comentarios de todas las tablas."
"Mostrar u ocultar una columna, mostrando conjunto de caracteres de todas las "
"tablas."
#: libraries/config/messages.inc.php:860
#, fuzzy
#| msgid "Show table comments"
msgid "Show table charset"
msgstr "Mostrar comentarios de la tabla"
msgstr "Mostrar conjunto de caracteres de la tabla"
#: libraries/config/messages.inc.php:862
msgid ""
@ -8323,7 +8309,7 @@ msgstr "Contraseña:"
#: libraries/display_change_password.lib.php:68
msgid "Enter:"
msgstr ""
msgstr "Ingresar:"
#: libraries/display_change_password.lib.php:75
#: libraries/replication_gui.lib.php:865
@ -9371,7 +9357,7 @@ msgstr[1] "Se encontró %s resultado adicional"
#: libraries/navigation/NavigationTree.php:1358
#: libraries/navigation/NavigationTree.php:1390
msgid "Type to filter these, Enter to search all"
msgstr "Escribe para filtrar estos, «Intro» para buscar todo"
msgstr "Escribe para filtrar estos, «Enter» para buscar todo"
#: libraries/navigation/NavigationTree.php:1360
#: libraries/navigation/NavigationTree.php:1391
@ -10530,10 +10516,9 @@ msgid "Last check:"
msgstr "Última revisión:"
#: libraries/plugins/export/ExportSql.php:1488
#, fuzzy, php-format
#| msgid "Table structure for table"
#, php-format
msgid "Error reading structure for table %s:"
msgstr "Estructura de tabla para la tabla"
msgstr "Error leyendo la estructura de la tabla %s:"
#: libraries/plugins/export/ExportSql.php:1542
msgid "It appears your database uses views;"
@ -10585,10 +10570,9 @@ msgid "(See below for the actual view)"
msgstr "(Véase abajo para la vista actual)"
#: libraries/plugins/export/ExportSql.php:2204
#, fuzzy, php-format
#| msgid "Error reading data:"
#, php-format
msgid "Error reading data for table %s:"
msgstr "Error leyendo datos:"
msgstr "Error leyendo datos de la tabla %s:"
#: libraries/plugins/export/ExportXml.php:97
msgid "Object creation options (all are recommended)"
@ -12405,10 +12389,9 @@ msgstr ""
"Otorgar todos los privilegios al nombre que contiene comodín (username\\_%)."
#: libraries/server_privileges.lib.php:2176
#, fuzzy, php-format
#| msgid "Grant all privileges on database \"%s\"."
#, php-format
msgid "Grant all privileges on database %s."
msgstr "Otorgar todos los privilegios para la base de datos \"%s\"."
msgstr "Otorgar todos los privilegios para la base de datos %s."
#: libraries/server_privileges.lib.php:2338
#: libraries/server_privileges.lib.php:2409
@ -14152,14 +14135,12 @@ msgstr ""
"No se pudo guardar la configuración, ¡el formulario enviado contiene errores!"
#: prefs_manage.php:52
#, fuzzy
#| msgid "Missing phpMyAdmin configuration storage tables"
msgid "phpMyAdmin configuration snippet"
msgstr "Faltan las tablas de almacenaje de configuración de phpMyAdmin"
msgstr "Fragmento de configuración de phpMyAdmin"
#: prefs_manage.php:53
msgid "Paste it to your config.inc.php"
msgstr ""
msgstr "Pegue esto en su archivo config.inc.php"
#: prefs_manage.php:93
msgid "Could not import configuration"
@ -14213,10 +14194,8 @@ msgstr ""
"ejemplo, utilizado %sscripts de configuración%s."
#: prefs_manage.php:331
#, fuzzy
#| msgid "Save as file"
msgid "Save as PHP file"
msgstr "Guardar como archivo"
msgstr "Guardar como archivo PHP"
#: prefs_manage.php:336
msgid "Save to browser's storage"
@ -14318,16 +14297,12 @@ msgstr ""
"sin encriptar!"
#: setup/frames/index.inc.php:78
#, fuzzy
#| msgid ""
#| "If your server is also configured to accept HTTPS requests follow [a@"
#| "%s]this link[/a] to use a secure connection."
msgid ""
"If your server is also configured to accept HTTPS requests follow this link "
"to use a secure connection."
msgstr ""
"Si su servidor también está configurado para acepta solicitudes HTTPS siga "
"[a@%s]este enlace[/a] para utilizar una conexión segura."
"Si su servidor también está configurado para aceptar solicitudes HTTPS siga "
"este enlace para utilizar una conexión segura."
#: setup/frames/index.inc.php:82
msgid "Insecure connection"
@ -14845,10 +14820,8 @@ msgid "Show query history at start"
msgstr "Mostrar histórico de consultas al iniciar"
#: templates/console/display.phtml:189
#, fuzzy
#| msgid "Show current browsing query"
msgid "Show current browsing query"
msgstr "Mostrar consulta actual"
msgstr "Mostrar consulta de navegación actual"
#: templates/console/display.phtml:194
msgid ""
@ -15198,10 +15171,8 @@ msgstr ""
"importarlo a la sesión actual?"
#: templates/prefs_autoload.phtml:14
#, fuzzy
#| msgid "Delete tracking"
msgid "Delete settings "
msgstr "Borrando los datos de seguimiento"
msgstr "Borrar configuración "
#: templates/privileges/add_privileges_database.phtml:2
msgid "Add privileges on the following database(s):"
@ -15851,6 +15822,8 @@ msgid ""
"A symbol name was expected! A reserved keyword can not be used as a column "
"name without backquotes."
msgstr ""
"¡Se esperaba un nombre de símbolo! Una palabra reservada no puede usarse "
"como nombre de columna sin comillas."
#: vendor/phpmyadmin/sql-parser/src/Components/CreateDefinition.php:241
msgid "A symbol name was expected!"
@ -15970,10 +15943,8 @@ msgid "Unrecognized keyword."
msgstr "Palabra clave no reconocida."
#: vendor/phpmyadmin/sql-parser/src/Statement.php:495
#, fuzzy
#| msgid "Unexpected beginning of statement."
msgid "Unexpected ordering of clauses."
msgstr "Comienzo inesperado de declaración."
msgstr "Orden inesperado de condiciones."
#: vendor/phpmyadmin/sql-parser/src/Statements/CreateStatement.php:381
msgid "The name of the entity was expected."
@ -16579,12 +16550,6 @@ msgid "There are lots of rows being sorted."
msgstr "Hay demasiadas filas siendo ordenadas."
#: libraries/advisory_rules.txt:222
#, fuzzy
#| msgid ""
#| "While there is nothing wrong with a high amount of row sorting, you might "
#| "want to make sure that the queries which require a lot of sorting use "
#| "indexed columns in the ORDER BY clause, as this will result in much "
#| "faster sorting"
msgid ""
"While there is nothing wrong with a high amount of row sorting, you might "
"want to make sure that the queries which require a lot of sorting use "
@ -16594,7 +16559,7 @@ msgstr ""
"Si bien no hay nada de malo en ordenar una gran cantidad de filas, es "
"probable que desee asegurarse que las consultas que requieren gran cantidad "
"de ordenación utilicen campos indexados en la cláusula «ORDER BY», lo que "
"resultará en una ordenación más rápida"
"resultará en una ordenación más rápida."
#: libraries/advisory_rules.txt:223
#, php-format
@ -16610,18 +16575,13 @@ msgid "There are too many joins without indexes."
msgstr "Hay demasiadas uniones («JOIN») sin índices."
#: libraries/advisory_rules.txt:230
#, fuzzy
#| msgid ""
#| "This means that joins are doing full table scans. Adding indexes for the "
#| "columns being used in the join conditions will greatly speed up table "
#| "joins"
msgid ""
"This means that joins are doing full table scans. Adding indexes for the "
"columns being used in the join conditions will greatly speed up table joins."
msgstr ""
"Esto significa que las uniones («JOIN») están realizando escrutinios "
"completos sobre tablas. Agregar índices a los campos utilizados en las "
"condiciones de la unión las acelerarán en gran medida"
"condiciones de la unión las acelerarán en gran medida."
#: libraries/advisory_rules.txt:231
#, php-format
@ -17055,22 +17015,16 @@ msgid "Slow launch time"
msgstr "Tiempo de inicio lento"
#: libraries/advisory_rules.txt:368
#, fuzzy
#| msgid "Slow_launch_time is above 2s"
msgid "Slow_launch_time is above 2s."
msgstr "«Slow_launch_time» es mayor a 2s"
msgstr "«Slow_launch_time» es mayor a 2s."
#: libraries/advisory_rules.txt:369
#, fuzzy
#| msgid ""
#| "Set {slow_launch_time} to 1s or 2s to correctly count threads that are "
#| "slow to launch"
msgid ""
"Set {slow_launch_time} to 1s or 2s to correctly count threads that are slow "
"to launch."
msgstr ""
"Configure {slow_launch_time} a 1 ó 2 segundos para contar correctamente los "
"hilos que inician ejecución lentamente"
"Configure {slow_launch_time} a 1 o 2 segundos para contar correctamente los "
"hilos que inician ejecución lentamente."
#: libraries/advisory_rules.txt:370
#, php-format

View File

@ -4,10 +4,10 @@ msgstr ""
"Project-Id-Version: phpMyAdmin-docs 4.0.0-dev\n"
"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n"
"POT-Creation-Date: 2016-12-13 10:41+0100\n"
"PO-Revision-Date: 2016-12-01 15:37+0000\n"
"PO-Revision-Date: 2016-12-14 23:48+0000\n"
"Last-Translator: Marc Delisle <marc@infomarc.info>\n"
"Language-Team: French <https://hosted.weblate.org/projects/phpmyadmin/master/"
"fr/>\n"
"Language-Team: French "
"<https://hosted.weblate.org/projects/phpmyadmin/master/fr/>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -2617,23 +2617,23 @@ msgstr "Copier la table avec un préfixe"
#: js/messages.php:732
msgid "Extremely weak"
msgstr ""
msgstr "Extrêmement faible"
#: js/messages.php:733
msgid "Very weak"
msgstr ""
msgstr "Très faible"
#: js/messages.php:734
msgid "Weak"
msgstr ""
msgstr "Faible"
#: js/messages.php:735
msgid "Good"
msgstr ""
msgstr "Bon"
#: js/messages.php:736
msgid "Strong"
msgstr ""
msgstr "Fort"
#: js/messages.php:765
msgctxt "Previous month"
@ -8292,7 +8292,7 @@ msgstr "Mot de passe : "
#: libraries/display_change_password.lib.php:68
msgid "Enter:"
msgstr ""
msgstr "Entrez :"
#: libraries/display_change_password.lib.php:75
#: libraries/replication_gui.lib.php:865
@ -14260,16 +14260,12 @@ msgstr ""
"encryptées !"
#: setup/frames/index.inc.php:78
#, fuzzy
#| msgid ""
#| "If your server is also configured to accept HTTPS requests follow [a@"
#| "%s]this link[/a] to use a secure connection."
msgid ""
"If your server is also configured to accept HTTPS requests follow this link "
"to use a secure connection."
msgstr ""
"Si votre serveur accepte les requêtes HTTPS, utilisez une [a@%s]connexion "
"sécurisée[/a]."
"Si votre serveur accepte les requêtes HTTPS, visitez ce lien pour utiliser "
"une connexion sécurisée."
#: setup/frames/index.inc.php:82
msgid "Insecure connection"
@ -15129,10 +15125,8 @@ msgstr ""
"Voulez-vous l'importer dans la session courante ?"
#: templates/prefs_autoload.phtml:14
#, fuzzy
#| msgid "Delete tracking"
msgid "Delete settings "
msgstr "Supprimer le suivi"
msgstr "Supprimer les paramètres "
#: templates/privileges/add_privileges_database.phtml:2
msgid "Add privileges on the following database(s):"
@ -15768,10 +15762,6 @@ msgid "Unexpected end of CASE expression"
msgstr "Fin inattendue d'une expression CASE"
#: vendor/phpmyadmin/sql-parser/src/Components/CreateDefinition.php:227
#, fuzzy
#| msgid ""
#| "A symbol name was expected! A reserved keyword can not be used as a field "
#| "name without backquotes."
msgid ""
"A symbol name was expected! A reserved keyword can not be used as a column "
"name without backquotes."
@ -15897,10 +15887,8 @@ msgid "Unrecognized keyword."
msgstr "Mot clé non reconnu."
#: vendor/phpmyadmin/sql-parser/src/Statement.php:495
#, fuzzy
#| msgid "Unexpected beginning of statement."
msgid "Unexpected ordering of clauses."
msgstr "Début d'énoncé inattendu."
msgstr "Classement inattendu des clauses."
#: vendor/phpmyadmin/sql-parser/src/Statements/CreateStatement.php:381
msgid "The name of the entity was expected."

View File

@ -8,16 +8,16 @@ msgstr ""
"Project-Id-Version: phpMyAdmin 4.7.0-dev\n"
"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n"
"POT-Creation-Date: 2016-12-13 10:41+0100\n"
"PO-Revision-Date: 2016-11-10 20:37+0000\n"
"PO-Revision-Date: 2016-12-13 10:29+0000\n"
"Last-Translator: Giovanni Sora <g.sora@tiscali.it>\n"
"Language-Team: Interlingua <https://hosted.weblate.org/projects/phpmyadmin/"
"master/ia/>\n"
"Language-Team: Interlingua "
"<https://hosted.weblate.org/projects/phpmyadmin/master/ia/>\n"
"Language: ia\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 2.9\n"
"X-Generator: Weblate 2.10-dev\n"
#: changelog.php:39 license.php:34
#, php-format
@ -2623,23 +2623,23 @@ msgstr "Copia tabella con prefixo"
#: js/messages.php:732
msgid "Extremely weak"
msgstr ""
msgstr "Extrememente debile"
#: js/messages.php:733
msgid "Very weak"
msgstr ""
msgstr "Multe debile"
#: js/messages.php:734
msgid "Weak"
msgstr ""
msgstr "Debile"
#: js/messages.php:735
msgid "Good"
msgstr ""
msgstr "Bon"
#: js/messages.php:736
msgid "Strong"
msgstr ""
msgstr "Forte"
#: js/messages.php:765
msgctxt "Previous month"
@ -8304,7 +8304,7 @@ msgstr "Contrasigno:"
#: libraries/display_change_password.lib.php:68
msgid "Enter:"
msgstr ""
msgstr "Inserta:"
#: libraries/display_change_password.lib.php:75
#: libraries/replication_gui.lib.php:865
@ -10883,7 +10883,7 @@ msgstr ""
#: libraries/plugins/transformations/abs/RegexValidationTransformationsPlugin.php:52
#, php-format
msgid "Validation failed for the input string %s."
msgstr ""
msgstr "Validation falleva per le catena de ingresso %s."
#: libraries/plugins/transformations/abs/SQLTransformationsPlugin.php:29
msgid "Formats text as SQL query with syntax highlighting."
@ -14738,10 +14738,8 @@ msgid ""
msgstr ""
#: templates/prefs_autoload.phtml:14
#, fuzzy
#| msgid "Delete tracking"
msgid "Delete settings "
msgstr "Delite traciar"
msgstr "Deli fixationes "
#: templates/privileges/add_privileges_database.phtml:2
msgid "Add privileges on the following database(s):"
@ -15489,10 +15487,8 @@ msgid "Unrecognized keyword."
msgstr ""
#: vendor/phpmyadmin/sql-parser/src/Statement.php:495
#, fuzzy
#| msgid "Unexpected beginning of statement."
msgid "Unexpected ordering of clauses."
msgstr "Un initio de instruction non expectate."
msgstr "Un ordine de clausas non expectate."
#: vendor/phpmyadmin/sql-parser/src/Statements/CreateStatement.php:381
msgid "The name of the entity was expected."

View File

@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: phpMyAdmin 4.7.0-dev\n"
"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n"
"POT-Creation-Date: 2016-12-13 10:41+0100\n"
"PO-Revision-Date: 2016-11-10 10:06+0000\n"
"PO-Revision-Date: 2016-12-13 14:14+0000\n"
"Last-Translator: Stefano Martinelli <stefano.ste.martinelli@gmail.com>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/phpmyadmin/"
"master/it/>\n"
"Language-Team: Italian "
"<https://hosted.weblate.org/projects/phpmyadmin/master/it/>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 2.9\n"
"X-Generator: Weblate 2.10-dev\n"
#: changelog.php:39 license.php:34
#, php-format
@ -2632,23 +2632,23 @@ msgstr "Copia tabella col prefisso"
#: js/messages.php:732
msgid "Extremely weak"
msgstr ""
msgstr "Estremamente debole"
#: js/messages.php:733
msgid "Very weak"
msgstr ""
msgstr "Molto debole"
#: js/messages.php:734
msgid "Weak"
msgstr ""
msgstr "Debole"
#: js/messages.php:735
msgid "Good"
msgstr ""
msgstr "Buona"
#: js/messages.php:736
msgid "Strong"
msgstr ""
msgstr "Forte"
#: js/messages.php:765
msgctxt "Previous month"
@ -8314,7 +8314,7 @@ msgstr "Password:"
#: libraries/display_change_password.lib.php:68
msgid "Enter:"
msgstr ""
msgstr "Inserisci:"
#: libraries/display_change_password.lib.php:75
#: libraries/replication_gui.lib.php:865
@ -14286,16 +14286,12 @@ msgstr ""
"senza essere cifrati!"
#: setup/frames/index.inc.php:78
#, fuzzy
#| msgid ""
#| "If your server is also configured to accept HTTPS requests follow [a@"
#| "%s]this link[/a] to use a secure connection."
msgid ""
"If your server is also configured to accept HTTPS requests follow this link "
"to use a secure connection."
msgstr ""
"Se il tuo server accetta anche richieste HTTPS, [a@%s]clicca qui[/a] per "
"utilizzare la conessione sicura."
"Se il tuo server accetta anche richieste HTTPS, segui questo link per "
"utilizzare una connessione sicura."
#: setup/frames/index.inc.php:82
msgid "Insecure connection"
@ -15157,10 +15153,8 @@ msgstr ""
"dominio. Vuoi importarla per la sessione corrente?"
#: templates/prefs_autoload.phtml:14
#, fuzzy
#| msgid "Delete tracking"
msgid "Delete settings "
msgstr "Cancella monitoraggio"
msgstr "Cancella impostazioni "
#: templates/privileges/add_privileges_database.phtml:2
msgid "Add privileges on the following database(s):"
@ -15796,10 +15790,6 @@ msgid "Unexpected end of CASE expression"
msgstr "Inattesa fine dell'espressione CASE"
#: vendor/phpmyadmin/sql-parser/src/Components/CreateDefinition.php:227
#, fuzzy
#| msgid ""
#| "A symbol name was expected! A reserved keyword can not be used as a field "
#| "name without backquotes."
msgid ""
"A symbol name was expected! A reserved keyword can not be used as a column "
"name without backquotes."
@ -15925,10 +15915,8 @@ msgid "Unrecognized keyword."
msgstr "Parola chiave non riconosciuta."
#: vendor/phpmyadmin/sql-parser/src/Statement.php:495
#, fuzzy
#| msgid "Unexpected beginning of statement."
msgid "Unexpected ordering of clauses."
msgstr "Inizio di statement inatteso."
msgstr "Ordinamento di clausole inatteso."
#: vendor/phpmyadmin/sql-parser/src/Statements/CreateStatement.php:381
msgid "The name of the entity was expected."

View File

@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: phpMyAdmin 4.7.0-dev\n"
"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n"
"POT-Creation-Date: 2016-12-13 10:41+0100\n"
"PO-Revision-Date: 2016-11-10 18:12+0000\n"
"PO-Revision-Date: 2016-12-14 19:32+0000\n"
"Last-Translator: dingo thirteen <dingo13@gmail.com>\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/phpmyadmin/master/"
"nl/>\n"
"Language-Team: Dutch "
"<https://hosted.weblate.org/projects/phpmyadmin/master/nl/>\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 2.9\n"
"X-Generator: Weblate 2.10-dev\n"
#: changelog.php:39 license.php:34
#, php-format
@ -2610,23 +2610,23 @@ msgstr "Vervang tabel met voorvoegsel"
#: js/messages.php:732
msgid "Extremely weak"
msgstr ""
msgstr "Extreem zwak"
#: js/messages.php:733
msgid "Very weak"
msgstr ""
msgstr "Erg zwak"
#: js/messages.php:734
msgid "Weak"
msgstr ""
msgstr "Zwak"
#: js/messages.php:735
msgid "Good"
msgstr ""
msgstr "Goed"
#: js/messages.php:736
msgid "Strong"
msgstr ""
msgstr "Sterk"
#: js/messages.php:765
msgctxt "Previous month"
@ -8270,7 +8270,7 @@ msgstr "Wachtwoord:"
#: libraries/display_change_password.lib.php:68
msgid "Enter:"
msgstr ""
msgstr "Ingave:"
#: libraries/display_change_password.lib.php:75
#: libraries/replication_gui.lib.php:865
@ -14230,16 +14230,12 @@ msgstr ""
"verzonden!"
#: setup/frames/index.inc.php:78
#, fuzzy
#| msgid ""
#| "If your server is also configured to accept HTTPS requests follow [a@"
#| "%s]this link[/a] to use a secure connection."
msgid ""
"If your server is also configured to accept HTTPS requests follow this link "
"to use a secure connection."
msgstr ""
"Indien uw server ook is ingesteld om HTTPS-verbindingen te ondersteunen, "
"gebruik dan [a@%s]deze link[/a] om de beveiligde verbinding te gebruiken."
"gebruik dan deze link om de beveiligde verbinding te gebruiken."
#: setup/frames/index.inc.php:82
msgid "Insecure connection"
@ -15103,10 +15099,8 @@ msgstr ""
"gebruiken in de huidige sessie?"
#: templates/prefs_autoload.phtml:14
#, fuzzy
#| msgid "Delete tracking"
msgid "Delete settings "
msgstr "Verwijder tracking"
msgstr "Verwijder instellingen "
#: templates/privileges/add_privileges_database.phtml:2
msgid "Add privileges on the following database(s):"
@ -15748,16 +15742,12 @@ msgid "Unexpected end of CASE expression"
msgstr "Onverwacht einde van CASE expressie"
#: vendor/phpmyadmin/sql-parser/src/Components/CreateDefinition.php:227
#, fuzzy
#| msgid ""
#| "A symbol name was expected! A reserved keyword can not be used as a field "
#| "name without backquotes."
msgid ""
"A symbol name was expected! A reserved keyword can not be used as a column "
"name without backquotes."
msgstr ""
"Een symbool naam werd verwacht! Een gereserveerd sleutelwoord kan niet als "
"veldnaam gebruikt worden zonder achterwaartse aanhalingstekens."
"kolomnaam gebruikt worden zonder achterwaartse aanhalingstekens."
#: vendor/phpmyadmin/sql-parser/src/Components/CreateDefinition.php:241
msgid "A symbol name was expected!"
@ -15877,10 +15867,8 @@ msgid "Unrecognized keyword."
msgstr "Sleutelwoord niet herkent."
#: vendor/phpmyadmin/sql-parser/src/Statement.php:495
#, fuzzy
#| msgid "Unexpected beginning of statement."
msgid "Unexpected ordering of clauses."
msgstr "Onverwacht begin van opdracht."
msgstr "Onverwachte volgorde van voorwaarden."
#: vendor/phpmyadmin/sql-parser/src/Statements/CreateStatement.php:381
msgid "The name of the entity was expected."

View File

@ -4,17 +4,17 @@ msgstr ""
"Project-Id-Version: phpMyAdmin 4.7.0-dev\n"
"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n"
"POT-Creation-Date: 2016-12-13 10:41+0100\n"
"PO-Revision-Date: 2016-11-10 15:08+0000\n"
"PO-Revision-Date: 2016-12-14 09:30+0000\n"
"Last-Translator: Domen <mitenem@outlook.com>\n"
"Language-Team: Slovenian <https://hosted.weblate.org/projects/phpmyadmin/"
"master/sl/>\n"
"Language-Team: Slovenian "
"<https://hosted.weblate.org/projects/phpmyadmin/master/sl/>\n"
"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
"%100==4 ? 2 : 3;\n"
"X-Generator: Weblate 2.9\n"
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || "
"n%100==4 ? 2 : 3;\n"
"X-Generator: Weblate 2.10-dev\n"
#: changelog.php:39 license.php:34
#, php-format
@ -2592,23 +2592,23 @@ msgstr "Kopiraj tabelo s predpono"
#: js/messages.php:732
msgid "Extremely weak"
msgstr ""
msgstr "Izredno šibko"
#: js/messages.php:733
msgid "Very weak"
msgstr ""
msgstr "Zelo šibko"
#: js/messages.php:734
msgid "Weak"
msgstr ""
msgstr "Šibko"
#: js/messages.php:735
msgid "Good"
msgstr ""
msgstr "Dobro"
#: js/messages.php:736
msgid "Strong"
msgstr ""
msgstr "Močno"
#: js/messages.php:765
msgctxt "Previous month"
@ -8210,7 +8210,7 @@ msgstr "Geslo:"
#: libraries/display_change_password.lib.php:68
msgid "Enter:"
msgstr ""
msgstr "Vnesite:"
#: libraries/display_change_password.lib.php:75
#: libraries/replication_gui.lib.php:865
@ -14083,16 +14083,12 @@ msgstr ""
"občutljivimi informacijami, kot so gesla) se prenašajo nešifrirani!"
#: setup/frames/index.inc.php:78
#, fuzzy
#| msgid ""
#| "If your server is also configured to accept HTTPS requests follow [a@"
#| "%s]this link[/a] to use a secure connection."
msgid ""
"If your server is also configured to accept HTTPS requests follow this link "
"to use a secure connection."
msgstr ""
"Če je vaš strežnik nastavljen za sprejemanje zahtev HTTPS, sledite [a@%s]tej "
"povezavi[/a] za uporabo varne povezave."
"Če je vaš strežnik nastavljen za sprejemanje zahtev HTTPS, sledite tej "
"povezavi za uporabo varne povezave."
#: setup/frames/index.inc.php:82
msgid "Insecure connection"
@ -14956,10 +14952,8 @@ msgstr ""
"uvoziti za trenutno sejo?"
#: templates/prefs_autoload.phtml:14
#, fuzzy
#| msgid "Delete tracking"
msgid "Delete settings "
msgstr "Izbriši sledenje"
msgstr "Izbriši nastavitve "
#: templates/privileges/add_privileges_database.phtml:2
msgid "Add privileges on the following database(s):"
@ -15594,16 +15588,12 @@ msgid "Unexpected end of CASE expression"
msgstr "Nepričakovan konec izraza CASE"
#: vendor/phpmyadmin/sql-parser/src/Components/CreateDefinition.php:227
#, fuzzy
#| msgid ""
#| "A symbol name was expected! A reserved keyword can not be used as a field "
#| "name without backquotes."
msgid ""
"A symbol name was expected! A reserved keyword can not be used as a column "
"name without backquotes."
msgstr ""
"Pričakovali smo ime simbola! Rezervirane besede ne morete uporabiti kot ime "
"polja brez ustreznih narekovajev."
"stolpca brez ustreznih narekovajev."
#: vendor/phpmyadmin/sql-parser/src/Components/CreateDefinition.php:241
msgid "A symbol name was expected!"
@ -15723,10 +15713,8 @@ msgid "Unrecognized keyword."
msgstr "Nepričakovana ključna beseda."
#: vendor/phpmyadmin/sql-parser/src/Statement.php:495
#, fuzzy
#| msgid "Unexpected beginning of statement."
msgid "Unexpected ordering of clauses."
msgstr "Nepričakovan začetek stavka."
msgstr "Nepričakovan vrstni red stavkov."
#: vendor/phpmyadmin/sql-parser/src/Statements/CreateStatement.php:381
msgid "The name of the entity was expected."

View File

@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: phpMyAdmin 4.7.0-dev\n"
"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n"
"POT-Creation-Date: 2016-12-13 10:41+0100\n"
"PO-Revision-Date: 2016-11-10 13:08+0000\n"
"PO-Revision-Date: 2016-12-13 10:30+0000\n"
"Last-Translator: Burak Yavuz <hitowerdigit@hotmail.com>\n"
"Language-Team: Turkish <https://hosted.weblate.org/projects/phpmyadmin/"
"master/tr/>\n"
"Language-Team: Turkish "
"<https://hosted.weblate.org/projects/phpmyadmin/master/tr/>\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 2.9\n"
"X-Generator: Weblate 2.10-dev\n"
#: changelog.php:39 license.php:34
#, php-format
@ -2592,23 +2592,23 @@ msgstr "Tabloyu ön ek ile kopyala"
#: js/messages.php:732
msgid "Extremely weak"
msgstr ""
msgstr "Son derece zayıf"
#: js/messages.php:733
msgid "Very weak"
msgstr ""
msgstr "Çok zayıf"
#: js/messages.php:734
msgid "Weak"
msgstr ""
msgstr "Zayıf"
#: js/messages.php:735
msgid "Good"
msgstr ""
msgstr "İyi"
#: js/messages.php:736
msgid "Strong"
msgstr ""
msgstr "Güçlü"
#: js/messages.php:765
msgctxt "Previous month"
@ -8215,7 +8215,7 @@ msgstr "Parola:"
#: libraries/display_change_password.lib.php:68
msgid "Enter:"
msgstr ""
msgstr "Giriş:"
#: libraries/display_change_password.lib.php:75
#: libraries/replication_gui.lib.php:865
@ -14104,17 +14104,12 @@ msgstr ""
"bilgiler dahil) şifresiz olarak aktarılır!"
#: setup/frames/index.inc.php:78
#, fuzzy
#| msgid ""
#| "If your server is also configured to accept HTTPS requests follow [a@"
#| "%s]this link[/a] to use a secure connection."
msgid ""
"If your server is also configured to accept HTTPS requests follow this link "
"to use a secure connection."
msgstr ""
"Eğer sunucunuz aynı zamanda HTTPS isteklerini kabul etmek için "
"yapılandırılmışsa güvenli bağlantı kullanmak için [a@%s]bu bağlantıyı[/a] "
"takip edin."
"yapılandırılmışsa güvenli bağlantı kullanmak için bu bağlantıyı takip edin."
#: setup/frames/index.inc.php:82
msgid "Insecure connection"
@ -14976,10 +14971,8 @@ msgstr ""
"oturum için bunu içe aktarmak istiyor musunuz?"
#: templates/prefs_autoload.phtml:14
#, fuzzy
#| msgid "Delete tracking"
msgid "Delete settings "
msgstr "İzlemeyi sil"
msgstr "Ayarları sil "
#: templates/privileges/add_privileges_database.phtml:2
msgid "Add privileges on the following database(s):"
@ -15611,16 +15604,12 @@ msgid "Unexpected end of CASE expression"
msgstr "Beklenmedik Büyük/Küçük harf ifadesi sonu"
#: vendor/phpmyadmin/sql-parser/src/Components/CreateDefinition.php:227
#, fuzzy
#| msgid ""
#| "A symbol name was expected! A reserved keyword can not be used as a field "
#| "name without backquotes."
msgid ""
"A symbol name was expected! A reserved keyword can not be used as a column "
"name without backquotes."
msgstr ""
"Bir sembol adı beklenmekte! Ayrılmış bir anahtar kelime ters eğik tırnakları "
"olmadan bir alan adı olarak kullanılamaz."
"olmadan bir sütun adı olarak kullanılamaz."
#: vendor/phpmyadmin/sql-parser/src/Components/CreateDefinition.php:241
msgid "A symbol name was expected!"
@ -15740,10 +15729,8 @@ msgid "Unrecognized keyword."
msgstr "Tanınmayan anahtar kelime."
#: vendor/phpmyadmin/sql-parser/src/Statement.php:495
#, fuzzy
#| msgid "Unexpected beginning of statement."
msgid "Unexpected ordering of clauses."
msgstr "Beklenmedik ifade başlangıcı."
msgstr "Beklenmedik yan tümce sıralaması."
#: vendor/phpmyadmin/sql-parser/src/Statements/CreateStatement.php:381
msgid "The name of the entity was expected."

View File

@ -14,6 +14,7 @@ if [ $# -lt 1 ] ; then
echo "Usage: lang-cleanup.sh type"
echo "Type can be one of:"
echo " all-languages - nothing will be done"
echo " source - nothing will be done"
echo " english - no translations will be kept"
echo " langcode - keeps language"
echo
@ -25,7 +26,7 @@ fi
match=""
for type in "$@" ; do
case $type in
all-languages)
all-languages|source)
exit 0
;;
english)

View File

@ -7,6 +7,7 @@
*/
use PMA\libraries\config\FormDisplay;
use PMA\libraries\URL;
use PMA\libraries\Response;
/**
* Processes forms registered in $form_display, handles error correction
@ -72,11 +73,13 @@ function PMA_Process_formset(FormDisplay $form_display)
*/
function PMA_generateHeader303()
{
$response = Response::getInstance();
// drop post data
header('HTTP/1.1 303 See Other');
header('Location: index.php' . URL::getCommonRaw());
$response->header('HTTP/1.1 303 See Other');
$response->header('Location: index.php' . URL::getCommonRaw());
if (!defined('TESTSUITE')) {
exit;
}
}
}

View File

@ -1,6 +1,6 @@
<?php for ($i = 0, $l = count($GLOBALS['PMD']["TABLE_NAME"]); $i < $l; $i++) :
$t_n = $GLOBALS['PMD']["TABLE_NAME"][$i];
$t_n_url = $GLOBALS['PMD_URL']["TABLE_NAME"][$i]; ?>
$t_n_url = htmlspecialchars($GLOBALS['PMD_URL']["TABLE_NAME"][$i]); ?>
<input name="t_x[<?= $t_n_url; ?>]" type="hidden" id="t_x_<?= $t_n_url; ?>_" />
<input name="t_y[<?= $t_n_url; ?>]" type="hidden" id="t_y_<?= $t_n_url; ?>_" />
<input name="t_v[<?= $t_n_url; ?>]" type="hidden" id="t_v_<?= $t_n_url; ?>_" />
@ -33,7 +33,7 @@
onmouseout="this.className='small_tab';" ><?= (! isset($tab_pos[$t_n]) || ! empty($tab_pos[$t_n]["V"])) ? 'v' : '&gt;'; ?>
</td>
<td class="small_tab_pref small_tab_pref_1"
table_name_small="<?= $GLOBALS['PMD_URL']["TABLE_NAME_SMALL"][$i]; ?>"
table_name_small="<?= htmlspecialchars($GLOBALS['PMD_URL']["TABLE_NAME_SMALL"][$i]); ?>"
onmouseover="this.className='small_tab_pref2 small_tab_pref_1';"
onmouseout="this.className='small_tab_pref small_tab_pref_1';" >
<img src="<?= $_SESSION['PMA_Theme']->getImgPath('pmd/exec_small.png'); ?>"
@ -77,11 +77,11 @@
$click_field_param[] = isset($tables_all_keys[$tmpColumn]) ? 1 : 0;
}
?>
<tr id="id_tr_<?= $GLOBALS['PMD_URL']["TABLE_NAME_SMALL"][$i]; ?>.<?= urlencode($tab_column[$t_n]["COLUMN_NAME"][$j]); ?>"
<tr id="id_tr_<?= htmlspecialchars($GLOBALS['PMD_URL']["TABLE_NAME_SMALL"][$i]); ?>.<?= htmlspecialchars($tab_column[$t_n]["COLUMN_NAME"][$j]); ?>"
<?= ($display_field == $tab_column[$t_n]["COLUMN_NAME"][$j]) ? 'class="tab_field_3"' : 'class="tab_field"'; ?>
onmouseover="old_class = this.className; this.className = 'tab_field_2';"
onmouseout="this.className = old_class;"
click_field_param="<?= implode($click_field_param, ','); ?>">
click_field_param="<?= htmlspecialchars(implode($click_field_param, ',')); ?>">
<?php if (isset($_REQUEST['query'])) : ?>
<td class="select_all">
<input class="select_all_store_col"

View File

@ -31,23 +31,23 @@
onmouseout="this.className='L_butt2_1'"
class="L_butt2_1">
<img alt=""
table_name="<?= $GLOBALS['PMD_URL']['TABLE_NAME_SMALL'][$i]; ?>"
table_name="<?= htmlspecialchars($GLOBALS['PMD_URL']['TABLE_NAME_SMALL'][$i]); ?>"
class="scroll_tab_struct"
src="<?= $_SESSION['PMA_Theme']->getImgPath('pmd/exec.png'); ?>"/>
</td>
<td width="1px">
<input class="scroll_tab_checkbox"
title="<?= __('Hide'); ?>"
id="check_vis_<?= $GLOBALS['PMD_URL']["TABLE_NAME"][$i]; ?>"
id="check_vis_<?= htmlspecialchars($GLOBALS['PMD_URL']["TABLE_NAME"][$i]); ?>"
style="margin:0;"
type="checkbox"
value="<?= $GLOBALS['PMD_URL']["TABLE_NAME"][$i]; ?>"
value="<?= htmlspecialchars($GLOBALS['PMD_URL']["TABLE_NAME"][$i]); ?>"
<?php if ($checked) : ?>checked="checked"<?php endif; ?> />
</td>
<td class="pmd_Tabs"
onmouseover="this.className='pmd_Tabs2'"
onmouseout="this.className='pmd_Tabs'"
pmd_url_table_name="<?= $GLOBALS['PMD_URL']['TABLE_NAME'][$i]; ?>">
pmd_url_table_name="<?= htmlspecialchars($GLOBALS['PMD_URL']['TABLE_NAME'][$i]); ?>">
<?= $GLOBALS['PMD_OUT']["TABLE_NAME"][$i]; ?>
</td>
</tr>
@ -66,4 +66,4 @@
</div>
</div>
</div>
<!-- end layer_menu -->
<!-- end layer_menu -->

View File

@ -12,7 +12,7 @@ if ($GLOBALS['cfg']['NumFavoriteTables'] > 0) {
?>
<form method="post" action="db_structure.php" name="tablesForm" id="tablesForm">
<?= PMA\libraries\URL::getHiddenInputs($db); ?>
<table class="data">
<table id="structureTable" class="data">
<thead>
<tr>
<th class="print_ignore"></th>

View File

@ -17,8 +17,9 @@
<!-- Is current one active ? -->
<option value=<?= '"', strtolower($language->getCode()), '"' ?>
<?php if ($language->isActive()) : ?>
selected="selected">
selected="selected"
<?php endif; ?>
>
<?= $language->getName(); ?>
</option>
<?php endforeach; ?>

View File

@ -1,6 +0,0 @@
# This folder does NOT need to be accessible over HTTP
# In most cases the tests included here will be run from a command line interface.
# (the following directive denies access by default)
# For more information see: https://httpd.apache.org/docs/current/mod/mod_authz_host.html#allow
Order allow,deny

View File

@ -1069,6 +1069,31 @@ class AuthenticationCookieTest extends PMATestCase
);
}
/**
* Test for PMA\libraries\plugins\auth\AuthenticationConfig::cookieEncrypt
*
* @return void
*/
public function testCookieEncryptPHPSecLib()
{
$this->object->setUseOpenSSL(false);
$this->testCookieEncrypt();
}
/**
* Test for PMA\libraries\plugins\auth\AuthenticationConfig::cookieEncrypt
*
* @return void
*/
public function testCookieEncryptOpenSSL()
{
if (! function_exists('openssl_encrypt')) {
$this->markTestSkipped('openssl not available');
}
$this->object->setUseOpenSSL(true);
$this->testCookieEncrypt();
}
/**
* Test for PMA\libraries\plugins\auth\AuthenticationConfig::cookieDecrypt
*
@ -1086,6 +1111,31 @@ class AuthenticationCookieTest extends PMATestCase
);
}
/**
* Test for PMA\libraries\plugins\auth\AuthenticationConfig::cookieDecrypt
*
* @return void
*/
public function testCookieDecryptPHPSecLib()
{
$this->object->setUseOpenSSL(false);
$this->testCookieDecrypt();
}
/**
* Test for PMA\libraries\plugins\auth\AuthenticationConfig::cookieDecrypt
*
* @return void
*/
public function testCookieDecryptOpenSSL()
{
if (! function_exists('openssl_encrypt')) {
$this->markTestSkipped('openssl not available');
}
$this->object->setUseOpenSSL(true);
$this->testCookieDecrypt();
}
/**
* Test for PMA\libraries\plugins\auth\AuthenticationConfig::cookieDecrypt
*

View File

@ -106,7 +106,7 @@ class AuthenticationHttpTest extends PMATestCase
->with()
->will($this->returnValue(false));
$mockResponse->expects($this->exactly($set_title * 6))
$mockResponse->expects($this->exactly($set_title * 7))
->method('addHTML')
->with();

View File

@ -37,11 +37,28 @@ class PMA_Form_Processing_Test extends PHPUnit_Framework_TestCase
*/
public function testProcessFormSet()
{
if (!defined('PMA_TEST_HEADERS')) {
$this->markTestSkipped(
'Cannot redefine constant/function - missing runkit extension'
$restoreInstance = PMA\libraries\Response::getInstance();
$mockResponse = $this->getMockBuilder('PMA\libraries\Response')
->disableOriginalConstructor()
->setMethods(array('header', 'headersSent'))
->getMock();
$mockResponse->expects($this->exactly(2))
->method('header')
->withConsecutive(
['HTTP/1.1 303 See Other'],
['Location: index.php?lang=en']
);
}
$mockResponse->expects($this->any())
->method('headersSent')
->with()
->will($this->returnValue(false));
$attrInstance = new ReflectionProperty('PMA\libraries\Response', '_instance');
$attrInstance->setAccessible(true);
$attrInstance->setValue($mockResponse);
// case 1
$formDisplay = $this->getMockBuilder('PMA\libraries\config\FormDisplay')
@ -118,12 +135,6 @@ class PMA_Form_Processing_Test extends PHPUnit_Framework_TestCase
PMA_Process_formset($formDisplay);
$this->assertEquals(
array('HTTP/1.1 303 See Other', 'Location: index.php?lang=en'),
$GLOBALS['header']
);
}
}
}

View File

@ -30,6 +30,8 @@ class PMA_User_Preferences_Test extends PHPUnit_Framework_TestCase
*/
function setUp()
{
global $cfg;
include 'libraries/config.default.php';
$GLOBALS['server'] = 0;
$GLOBALS['PMA_PHP_SELF'] = '/phpmyadmin/';
}
@ -364,23 +366,30 @@ class PMA_User_Preferences_Test extends PHPUnit_Framework_TestCase
*/
public function testUserprefsRedirect()
{
if (!defined('PMA_TEST_HEADERS')) {
$this->markTestSkipped(
'Cannot redefine constant/function - missing runkit extension'
);
}
$GLOBALS['PMA_Config']->set('PmaAbsoluteUri', '');
$GLOBALS['cfg']['ServerDefault'] = 1;
$GLOBALS['lang'] = '';
$redefine = null;
if (!defined('PMA_IS_IIS')) {
define('PMA_IS_IIS', false);
} else {
$redefine = PMA_IS_IIS;
runkit_constant_redefine('PMA_IS_IIS', false);
}
$restoreInstance = PMA\libraries\Response::getInstance();
$mockResponse = $this->getMockBuilder('PMA\libraries\Response')
->disableOriginalConstructor()
->setMethods(array('header', 'headersSent'))
->getMock();
$mockResponse->expects($this->once())
->method('header')
->with('Location: /phpmyadmin/file.html?a=b&saved=1&server=0#h+ash');
$mockResponse->expects($this->any())
->method('headersSent')
->with()
->will($this->returnValue(false));
$attrInstance = new ReflectionProperty('PMA\libraries\Response', '_instance');
$attrInstance->setAccessible(true);
$attrInstance->setValue($mockResponse);
$GLOBALS['PMA_Config']->set('PmaAbsoluteUri', '');
$GLOBALS['PMA_Config']->set('PMA_IS_IIS', false);
PMA_userprefsRedirect(
'file.html',
@ -388,16 +397,7 @@ class PMA_User_Preferences_Test extends PHPUnit_Framework_TestCase
'h ash'
);
$this->assertContains(
'Location: /phpmyadmin/file.html?a=b&saved=1&server=0#h+ash',
$GLOBALS['header'][0]
);
if ($redefine !== null) {
runkit_constant_redefine('PMA_IS_IIS', $redefine);
} else {
runkit_constant_remove('PMA_IS_IIS');
}
$attrInstance->setValue($restoreInstance);
}
/**