[phpMyAdmin Developers] PhpMyAdmin locale bug

Gökhan Kaya 0x90kh4n at gmail.com
Sun Dec 16 09:32:30 CET 2018


Hi,
The definition of locale in linux is tr_TR.utf-8, and character converters
such as strtolower and strtoupper are defeated in php. example: strtolower
('Innodb') does not return us as innodb. solution setlocale(LC_CTYPE, 'C')
with local information should be changed or functions such as mb_strtolower
should be used.

for this reason phpmyadmin bug is occurring. Because the Innodb engine is
not installed correctly, it generates an undefined method error and the
user does not understand that the error is not displayed.

**

<?php
echo setlocale(LC_CTYPE, '');
// Output: tr_TR.utf-8
// bug:
echo strtolower('Innodb');
// output: Innodb

**

https://github.com/phpmyadmin/phpmyadmin/blob/master/libraries/classes/Operations.php

line 1282: $innodbEnginePlugin = StorageEngine::getEngine('Innodb');
line 1283: $innodbPluginVersion =
$innodbEnginePlugin->getInnodbPluginVersion();

https://github.com/phpmyadmin/phpmyadmin/blob/master/libraries/classes/StorageEngine.php


line 195: switch (strtolower($engine)) {

**
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.phpmyadmin.net/pipermail/developers/attachments/20181216/d64f5cc1/attachment.html>


More information about the Developers mailing list