diff --git a/ChangeLog b/ChangeLog index ac2af37d47..6db5e35ecb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -54,6 +54,7 @@ phpMyAdmin - ChangeLog - issue #16976 Fix wrong link when a table is moved from a database to another - issue #16985 Fix case-sensitive issue of innodb_file_format=barracuda vs innodb_file_format=Barracuda - issue Fixed duplicate quote in navigation nodes +- issue #17006 Disable the URL limit for the MariaDB analyser feature 5.1.1 (2021-06-04) - issue #13325 Fixed created procedure shows up in triggers and events and vice-versa diff --git a/doc/faq.rst b/doc/faq.rst index 603ebc48fd..1867cbee4a 100644 --- a/doc/faq.rst +++ b/doc/faq.rst @@ -244,8 +244,8 @@ phpMyAdmin tried to load the extension but failed. Usually, the problem is solved by installing a software package called "PHP-MySQL" or something similar. -There are currently two interfaces PHP provides as MySQL extensions - ``mysql`` -and ``mysqli``. The ``mysqli`` is tried first, because it's the best one. +There was two interfaces PHP provided as MySQL extensions - ``mysql`` +and ``mysqli``. The ``mysql`` interface was removed in PHP 7.0. This problem can be also caused by wrong paths in the :file:`php.ini` or using wrong :file:`php.ini`. @@ -268,10 +268,9 @@ can tell it to use specific path for this file using ``PHPIniDir`` directive: .. code-block:: apache - LoadFile "C:/php/php5ts.dll" - LoadModule php5_module "C:/php/php5apache2_2.dll" - - PHPIniDir "C:/PHP" + LoadModule php7_module "C:/php7/php7apache2_4.dll" + + PHPIniDir "C:/php7" AddType text/html .php AddHandler application/x-httpd-php .php @@ -1572,33 +1571,15 @@ enables: drop-down list of possible values. -------------------------------------------------- First the configuration variables "relation", "table\_coords" and -"pdf\_pages" have to be filled in. Then you need to think about your -schema layout. Which tables will go on which pages? +"pdf\_pages" have to be filled in. * Select your database in the navigation panel. -* Choose "Operations" in the navigation bar at the top. -* Choose "Edit :term:`PDF` Pages" near the - bottom of the page. -* Enter a name for the first :term:`PDF` page - and click Go. If you like, you can use the "automatic layout," which - will put all your linked tables onto the new page. -* Select the name of the new page (making sure the Edit radio button is - selected) and click Go. -* Select a table from the list, enter its coordinates and click Save. - Coordinates are relative; your diagram will be automatically scaled to - fit the page. When initially placing tables on the page, just pick any - coordinates -- say, 50x50. After clicking Save, you can then use the - :ref:`wysiwyg` to position the element correctly. -* When you'd like to look at your :term:`PDF`, first be sure to click the Save - button beneath the list of tables and coordinates, to save any changes you - made there. Then scroll all the way down, select the :term:`PDF` options you - want, and click Go. -* Internet Explorer for Windows may suggest an incorrect filename when - you try to save a generated :term:`PDF`. - When saving a generated :term:`PDF`, be - sure that the filename ends in ".pdf", for example "schema.pdf". - Browsers on other operating systems, and other browsers on Windows, do - not have this problem. +* Choose ":guilabel:`Designer`" in the navigation bar at the top. +* Move the tables the way you want them. +* Choose ":guilabel:`Export schema`" in the left menu. +* The export modal will open. +* Select the type of export to :term:`PDF`, you may adjust the other settings. +* Submit the form and the file will start downloading. .. seealso:: @@ -1843,31 +1824,10 @@ name), but the following variables can be used: ``@PHPMYADMIN@`` phpMyAdmin with version -.. _wysiwyg: +.. _faq6_28: -6.28 How can I easily edit relational schema for export? --------------------------------------------------------- - -By clicking on the button 'toggle scratchboard' on the page where you -edit x/y coordinates of those elements you can activate a scratchboard -where all your elements are placed. By clicking on an element, you can -move them around in the pre-defined area and the x/y coordinates will -get updated dynamically. Likewise, when entering a new position -directly into the input field, the new position in the scratchboard -changes after your cursor leaves the input field. - -You have to click on the 'OK'-button below the tables to save the new -positions. If you want to place a new element, first add it to the -table of elements and then you can drag the new element around. - -By changing the paper size and the orientation you can change the size -of the scratchboard as well. You can do so by just changing the -dropdown field below, and the scratchboard will resize automatically, -without interfering with the current placement of the elements. - -If ever an element gets out of range you can either enlarge the paper -size or click on the 'reset' button to place all elements below each -other. +6.28 (withdrawn). +----------------- .. _faq6_29: diff --git a/libraries/classes/Html/Generator.php b/libraries/classes/Html/Generator.php index b8190a6ab3..147adc6b42 100644 --- a/libraries/classes/Html/Generator.php +++ b/libraries/classes/Html/Generator.php @@ -677,7 +677,8 @@ class Generator htmlspecialchars('url.php?url=' . urlencode($url)), sprintf(__('Analyze Explain at %s'), 'mariadb.org'), [], - '_blank' + '_blank', + false ) . ' ]'; } } @@ -1108,7 +1109,8 @@ class Generator $url, $message, $tagParams = [], - $target = '' + $target = '', + bool $respectUrlLengthLimit = true ): string { $urlLength = strlen($url); @@ -1151,13 +1153,16 @@ class Generator } $tagParamsStrings = []; - if ( - ($urlLength > $GLOBALS['cfg']['LinkLengthLimit']) - || ! $inSuhosinLimits - // Has as sql_query without a signature - || (str_contains($url, 'sql_query=') && ! str_contains($url, 'sql_signature=')) - || str_contains($url, 'view[as]=') - ) { + $isDataPostFormatSupported = ($urlLength > $GLOBALS['cfg']['LinkLengthLimit']) + || ! $inSuhosinLimits + // Has as sql_query without a signature, to be accepted it needs + // to be sent using POST + || ( + str_contains($url, 'sql_query=') + && ! str_contains($url, 'sql_signature=') + ) + || str_contains($url, 'view[as]='); + if ($respectUrlLengthLimit && $isDataPostFormatSupported) { $parts = explode('?', $url, 2); /* * The data-post indicates that client should do POST diff --git a/test/classes/Html/GeneratorTest.php b/test/classes/Html/GeneratorTest.php index e798a03eb5..8b32701b23 100644 --- a/test/classes/Html/GeneratorTest.php +++ b/test/classes/Html/GeneratorTest.php @@ -250,6 +250,30 @@ class GeneratorTest extends AbstractTestCase 1000, 'text', ], + [ + [ + 'https://mariadb.org/explain_analyzer/analyze/?client=phpMyAdmin&raw_explain=%2B---%2B', + 'text', + [], + 'target', + ], + 10, + // This is not the behavior we want for the analyser feature, next test will disable the limit + 'text', + ], + [ + [ + 'https://mariadb.org/explain_analyzer/analyze/?client=phpMyAdmin&raw_explain=%2B---%2B', + 'text', + [], + 'target', + false, + ], + 10, + 'text', + ], [ [ 'url.php?url=http://phpmyadmin.net/',