diff --git a/.travis.yml b/.travis.yml index d84cabd395..404c9a2315 100644 --- a/.travis.yml +++ b/.travis.yml @@ -89,6 +89,7 @@ jobs: php: 7.4 name: "PHP 7.4" env: CI_MODE=test + before_install: phpenv config-rm xdebug.ini - stage: "PHP Unit tests" php: nightly @@ -106,9 +107,12 @@ jobs: node_js: 10 before_install: - brew link --force gettext - - echo "memory_limit=-1" > /usr/local/etc/php/7.3/conf.d/50-travis.ini - - echo "pcre.jit=0" >> /usr/local/etc/php/7.3/conf.d/50-travis.ini + - echo "memory_limit=-1" > /usr/local/etc/php/7.4/conf.d/50-travis.ini + - echo "pcre.jit=0" >> /usr/local/etc/php/7.4/conf.d/50-travis.ini - mysql.server start + - sleep 5 + # Enable password access + - mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('');" addons: homebrew: packages: diff --git a/doc/conf.py b/doc/conf.py index 8ffec7f2be..5c250f9c70 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -313,6 +313,8 @@ linkcheck_ignore = [ r'https://pecl.php.net/.*', # 403 Client Error: Forbidden r'https://authy.com/.*', + # Site often changes links and reverts changes (9362bde02d0535a2f8cb74a18797249cb734c4b0) + r'https://www.yubico.com/.*', # 500 Server Error: Internal Server Error r'http://www.scriptalicious.com/.*', ] diff --git a/doc/config.rst b/doc/config.rst index 61bd73a243..044576238f 100644 --- a/doc/config.rst +++ b/doc/config.rst @@ -711,7 +711,7 @@ Server connection settings More information on regular expressions can be found in the `PCRE pattern syntax - `_ portion + `_ portion of the PHP reference manual. .. config:option:: $cfg['Servers'][$i]['verbose'] @@ -1458,7 +1458,7 @@ Server connection settings An associative array of session cookie parameters of other authentication system. It is not needed if the other system doesn't use session_set_cookie_params(). Keys should include 'lifetime', 'path', 'domain', 'secure' or 'httponly'. - Valid values are mentioned in `session_get_cookie_params `_, they should be set to same values as the other application uses. Takes effect only if :config:option:`$cfg['Servers'][$i]['SignonScript']` is not configured. @@ -1588,14 +1588,14 @@ Generic settings :type: boolean :default: false - Whether `persistent connections `_ should be used or not. Works with following extensions: - * mysql (`mysql\_pconnect `_), * mysqli (requires PHP 5.3.0 or newer, `more information - `_). + `_). .. config:option:: $cfg['ForceSSL'] @@ -1632,7 +1632,7 @@ Generic settings :default: ``''`` Path for storing session data (`session\_save\_path PHP parameter - `_). + `_). .. warning:: @@ -1798,7 +1798,7 @@ Cookie authentication options Define how long a login cookie is valid. Please note that php configuration option `session.gc\_maxlifetime - `_ might limit session validity and if the session is lost, the login cookie is also invalidated. So it is a good idea to set ``session.gc_maxlifetime`` at least to the same value of diff --git a/doc/faq.rst b/doc/faq.rst index 9a0661ad38..fa58a01303 100644 --- a/doc/faq.rst +++ b/doc/faq.rst @@ -212,7 +212,7 @@ your server - as mentioned in :ref:`faq1_17`. This problem is generally caused by using MySQL version 4.1 or newer. MySQL changed the authentication hash and your PHP is trying to use the old method. The proper solution is to use the `mysqli extension -`_ with the proper client library to match +`_ with the proper client library to match your MySQL installation. More information (and several workarounds) are located in the `MySQL Documentation `_. @@ -834,7 +834,7 @@ Here are a few points to check: --------------------------------- To be able to see a progress bar during your uploads, your server must -have the `APC `_ extension, the +have the `APC `_ extension, the `uploadprogress `_ one, or you must be running PHP 5.4.0 or higher. Moreover, the JSON extension has to be enabled in your PHP. @@ -1063,7 +1063,7 @@ is no way for PHP to set the charset before authenticating. .. seealso:: `phpMyAdmin issue 12232 `_, - `MySQL documentation note `_ + `MySQL documentation note `_ .. _faqmultiuser: @@ -1801,7 +1801,7 @@ in Browse mode or on the Structure page. ----------------------------------- In all places where phpMyAdmin accepts format strings, you can use -``@VARIABLE@`` expansion and `strftime `_ +``@VARIABLE@`` expansion and `strftime `_ format strings. The expanded variables depend on a context (for example, if you haven't chosen a table, you can not get the table name), but the following variables can be used: diff --git a/doc/glossary.rst b/doc/glossary.rst index a5eebadfea..e117ff5987 100644 --- a/doc/glossary.rst +++ b/doc/glossary.rst @@ -208,7 +208,7 @@ From Wikipedia, the free encyclopedia If you have troubles installing this extension, please follow :ref:`faqmysql`, it provides useful hints. - .. seealso:: + .. seealso:: MCrypt a cryptographic library. @@ -218,7 +218,7 @@ From Wikipedia, the free encyclopedia mcrypt the MCrypt PHP extension. - .. seealso:: + .. seealso:: Media type A media type (formerly known as MIME type) is a two-part identifier @@ -249,12 +249,12 @@ From Wikipedia, the free encyclopedia mysqli the improved MySQL client PHP extension. - .. seealso:: + .. seealso:: mysql the MySQL client PHP extension. - .. seealso:: + .. seealso:: OpenDocument an open standard for office documents. @@ -282,7 +282,7 @@ From Wikipedia, the free encyclopedia Perl Compatible Regular Expressions is the perl-compatible regular expression functions for PHP - .. seealso:: + .. seealso:: PHP short for "PHP: Hypertext Preprocessor", is an open-source, reflective diff --git a/doc/require.rst b/doc/require.rst index c9c2a2bbc8..254d1ea2ae 100644 --- a/doc/require.rst +++ b/doc/require.rst @@ -24,19 +24,19 @@ PHP ("image/jpeg: inline") with their original aspect ratio. * When using the cookie authentication (the default), the `openssl - `_ extension is strongly suggested. + `_ extension is strongly suggested. * To support upload progress bars, see :ref:`faq2_9`. * To support XML and Open Document Spreadsheet importing, you need the - `libxml `_ extension. + `libxml `_ extension. * To support reCAPTCHA on the login page, you need the - `openssl `_ extension. + `openssl `_ extension. * To support displaying phpMyAdmin's latest version, you need to enable ``allow_url_open`` in your :file:`php.ini` or to have the - `curl `_ extension. + `curl `_ extension. .. seealso:: :ref:`faq1_31`, :ref:`authentication_modes` diff --git a/doc/setup.rst b/doc/setup.rst index f7c26b854c..96d1de5e39 100644 --- a/doc/setup.rst +++ b/doc/setup.rst @@ -1018,7 +1018,7 @@ are always ways to make your installation more secure: * Serve phpMyAdmin on HTTPS only. Preferably, you should use HSTS as well, so that you're protected from protocol downgrade attacks. * Ensure your PHP setup follows recommendations for production sites, for example - `display_errors `_ + `display_errors `_ should be disabled. * Remove the ``test`` directory from phpMyAdmin, unless you are developing and need a test suite. * Remove the ``setup`` directory from phpMyAdmin, you will probably not diff --git a/doc/transformations.rst b/doc/transformations.rst index 02f43c5454..9eeb754080 100644 --- a/doc/transformations.rst +++ b/doc/transformations.rst @@ -134,9 +134,9 @@ The applyTransformation() method always gets passed three variables: function as an array. #. **$meta** - Contains an object with information about your column. The data is drawn from the output of the `mysql\_fetch\_field() - `_ function. This means, all + `_ function. This means, all object properties described on the `manual page - `_ are available in this + `_ are available in this variable and can be used to transform a column accordingly to unsigned/zerofill/not\_null/... properties. The $meta->mimetype variable contains the original MIME-type of the column (i.e. diff --git a/libraries/classes/DatabaseInterface.php b/libraries/classes/DatabaseInterface.php index 991d85ec3c..6b8b87edd8 100644 --- a/libraries/classes/DatabaseInterface.php +++ b/libraries/classes/DatabaseInterface.php @@ -306,7 +306,7 @@ class DatabaseInterface implements DbalInterface int $options = 0, bool $cache_affected_rows = true ) { - $debug = $GLOBALS['cfg']['DBG']['sql']; + $debug = isset($GLOBALS['cfg']['DBG']) ? $GLOBALS['cfg']['DBG']['sql'] : false; if (! isset($this->_links[$link])) { return false; } diff --git a/libraries/classes/IpAllowDeny.php b/libraries/classes/IpAllowDeny.php index e41fab486e..8649d83ad9 100644 --- a/libraries/classes/IpAllowDeny.php +++ b/libraries/classes/IpAllowDeny.php @@ -45,7 +45,7 @@ class IpAllowDeny /** * Based on IP Pattern Matcher * Originally by J.Adams - * Found on + * Found on * Modified for phpMyAdmin * * Matches: diff --git a/libraries/classes/Plugins/Export/ExportPhparray.php b/libraries/classes/Plugins/Export/ExportPhparray.php index d116d5c822..9741904861 100644 --- a/libraries/classes/Plugins/Export/ExportPhparray.php +++ b/libraries/classes/Plugins/Export/ExportPhparray.php @@ -197,7 +197,7 @@ class ExportPhparray extends ExportPlugin } // fix variable names (based on - // https://secure.php.net/manual/language.variables.basics.php) + // https://www.php.net/manual/en/language.variables.basics.php) if (! preg_match( '/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$/', $table_alias diff --git a/libraries/classes/Plugins/Schema/Dia/Dia.php b/libraries/classes/Plugins/Schema/Dia/Dia.php index 740ab47129..8ae8d912b0 100644 --- a/libraries/classes/Plugins/Schema/Dia/Dia.php +++ b/libraries/classes/Plugins/Schema/Dia/Dia.php @@ -18,7 +18,7 @@ use XMLWriter; * * @package PhpMyAdmin * @access public - * @see https://secure.php.net/manual/en/book.xmlwriter.php + * @see https://www.php.net/manual/en/book.xmlwriter.php */ class Dia extends XMLWriter { diff --git a/libraries/classes/Plugins/Schema/Eps/Eps.php b/libraries/classes/Plugins/Schema/Eps/Eps.php index e051b82334..cc1d356ae5 100644 --- a/libraries/classes/Plugins/Schema/Eps/Eps.php +++ b/libraries/classes/Plugins/Schema/Eps/Eps.php @@ -17,7 +17,7 @@ use PhpMyAdmin\Response; * * @package PhpMyAdmin * @access public - * @see https://secure.php.net/manual/en/book.xmlwriter.php + * @see https://www.php.net/manual/en/book.xmlwriter.php */ class Eps { diff --git a/libraries/classes/Plugins/Schema/Svg/Svg.php b/libraries/classes/Plugins/Schema/Svg/Svg.php index 003dab35a7..ab79908bde 100644 --- a/libraries/classes/Plugins/Schema/Svg/Svg.php +++ b/libraries/classes/Plugins/Schema/Svg/Svg.php @@ -18,7 +18,7 @@ use XMLWriter; * * @package PhpMyAdmin * @access public - * @see https://secure.php.net/manual/en/book.xmlwriter.php + * @see https://www.php.net/manual/en/book.xmlwriter.php */ class Svg extends XMLWriter { diff --git a/libraries/classes/Plugins/Transformations/TEMPLATE_ABSTRACT b/libraries/classes/Plugins/Transformations/TEMPLATE_ABSTRACT index 6a31d28fda..4087ac9e2b 100644 --- a/libraries/classes/Plugins/Transformations/TEMPLATE_ABSTRACT +++ b/libraries/classes/Plugins/Transformations/TEMPLATE_ABSTRACT @@ -50,7 +50,7 @@ abstract class [TransformationName]TransformationsPlugin // further operations on $buffer using the $options[] array. - // You can evaluate the propagated $meta Object. It's contained fields are described in https://secure.php.net/mysql_fetch_field. + // You can evaluate the propagated $meta Object. It's contained fields are described in https://www.php.net/mysql_fetch_field. // This stored information can be used to get the field information about the transformed field. // $meta->mimetype contains the original MimeType of the field (i.e. 'text/plain', 'image/jpeg' etc.) diff --git a/libraries/classes/ReplicationGui.php b/libraries/classes/ReplicationGui.php index 8807a5b598..60937714f8 100644 --- a/libraries/classes/ReplicationGui.php +++ b/libraries/classes/ReplicationGui.php @@ -580,11 +580,11 @@ class ReplicationGui $count = $_POST['sr_skip_errors_count'] * 1; } - $qStop = $this->replication->slaveControl('STOP'); + $qStop = $this->replication->slaveControl('STOP', null, DatabaseInterface::CONNECT_USER); $qSkip = $GLOBALS['dbi']->tryQuery( 'SET GLOBAL SQL_SLAVE_SKIP_COUNTER = ' . $count . ';' ); - $qStart = $this->replication->slaveControl('START'); + $qStart = $this->replication->slaveControl('START', null, DatabaseInterface::CONNECT_USER); $result = ($qStop !== false && $qStop !== -1 && $qSkip !== false && $qSkip !== -1 && diff --git a/libraries/classes/Session.php b/libraries/classes/Session.php index 3f26610416..8377cbe537 100644 --- a/libraries/classes/Session.php +++ b/libraries/classes/Session.php @@ -4,7 +4,7 @@ * * @package PhpMyAdmin * - * @see https://secure.php.net/session + * @see https://www.php.net/manual/en/features.sessions.php */ declare(strict_types=1); diff --git a/libraries/classes/Util.php b/libraries/classes/Util.php index 353df89c63..e5a1bf137f 100644 --- a/libraries/classes/Util.php +++ b/libraries/classes/Util.php @@ -708,7 +708,7 @@ class Util ]; if ($format == '') { - /* l10n: See https://secure.php.net/manual/en/function.strftime.php */ + /* l10n: See https://www.php.net/manual/en/function.strftime.php */ $format = __('%B %d, %Y at %I:%M %p'); } diff --git a/test/classes/Rte/RoutinesTest.php b/test/classes/Rte/RoutinesTest.php index 90b58df572..0ec58e683c 100644 --- a/test/classes/Rte/RoutinesTest.php +++ b/test/classes/Rte/RoutinesTest.php @@ -37,6 +37,7 @@ class RoutinesTest extends TestCase $GLOBALS['PMA_Config'] = new Config(); $GLOBALS['PMA_Config']->enableBc(); $GLOBALS['cfg']['Server']['DisableIS'] = false; + $GLOBALS['cfg']['ActionLinksMode'] = 'icons'; $GLOBALS['server'] = 0; $GLOBALS['db'] = 'db'; $GLOBALS['table'] = 'table';