Страница 1 из 1

При вызове phpMyAdmin : Parse error: syntax error

Добавлено: 16 мар 2018, 14:32
t-master
Приветствую Вас!

Скачал Open Server, установил, создал первый домен, полез в PhpMyAdmin
http://127.0.0.1/openserver/phpmyadmin/index.php
И при запуске вылезло
Parse error: syntax error, unexpected '@' in D:\OSPanel\modules\system\html\openserver\phpmyadmin\libraries\common.inc.php on line 492

Диагностика
2018-03-16 15:08:00  Начало процедуры запуска сервера
2018-03-16 15:08:00  Обновление Hosts файла
2018-03-16 15:08:00  Обновление конфигурации MySQL-5.6
2018-03-16 15:08:00  Обновление конфигурации Sendmail
2018-03-16 15:08:00  Обновление конфигурации PHP-5.4
2018-03-16 15:08:00  Обновление конфигурации PHPMyAdmin
2018-03-16 15:08:00  Обновление конфигурации Apache-2.2
2018-03-16 15:08:00  Запуск MySQL-5.6
2018-03-16 15:08:00  Запуск Apache-2.2
2018-03-16 15:08:00  Проверка состояния сервера
2018-03-16 15:08:01  Cервер успешно запущен за 1,86 секунд!
OpenServer 5.2.2

Что бы это могло быть?
Издержки софта?
Издержки неправильных настроек OpenServer?
Издержки особенностей настройки Windows?

Это можно исправить?
Как?

Спасибо.

Re: При вызове phpMyAdmin : Parse error: syntax error, unexpected '@' in phpmyadmin\libraries\common.inc.php on line 492

Добавлено: 16 мар 2018, 23:53
Максим
Ничего из вами перечисленного. Это минимальные системные требования phpmyadmin - PHP 5.5.

Re: При вызове phpMyAdmin : Parse error: syntax error, unexpected '@' in phpmyadmin\libraries\common.inc.php on line 492

Добавлено: 16 мар 2018, 23:58
Venanzio
Аналогичная проблема возникает на версии 5.2.8 просто один в один

Возникает если поменять меняю версию PHP 5.6, которая установлена по умолчанию на любую ниже... Если не менять, то всё работает нормально.

Re: При вызове phpMyAdmin : Parse error: syntax error, unexpected '@' in phpmyadmin\libraries\common.inc.php on line 492

Добавлено: 17 мар 2018, 00:00
Максим
Venanzio, ну вот прочтите ответ выше и подумайте о всяком разном.

Re: При вызове phpMyAdmin : Parse error: syntax error, unexpected '@' in phpmyadmin\libraries\common.inc.php on line 492

Добавлено: 17 мар 2018, 00:02
Venanzio
Виноват, вы ответили буквально за секунду до того как я отправил свой вопрос, оттого так и получилось. Прошу извинить меня за такое совпадение.

Re: При вызове phpMyAdmin : Parse error: syntax error, unexpected '@' in phpmyadmin\libraries\common.inc.php on line 492

Добавлено: 17 мар 2018, 00:03
Максим
;)

Re: При вызове phpMyAdmin : Parse error: syntax error, unexpected '@' in phpmyadmin\libraries\common.inc.php on line 492

Добавлено: 21 май 2018, 13:19
VikingBO
Приветствую всех тут собравшихся, к сожалению не смог найти никаких репозиториев для отпраки коммитов или предложения исправлений поэтому пишу через форум.

Для того что бы у пользователей не возникал такой банальный вопрос достаточно в указанном файле OSPanel/modules/system/html/openserver/phpmyadmin/libraries/common.inc.php на строке 492 первым делом убрать "@" из выражения
if (@extension_loaded('mbstring') && !empty(@ini_get('mbstring.func_overload'))) {
потому как в версиях php ниже 5.5 просто не поддерживается установка оператора управления ошибками в выражениях, после чего станет выводиться ошибка о том что не возможно использовать результат выражения как переменную, то есть часть
ini_get('mbstring.func_overload')
необходимо сначала вынести в переменную и только потом использовать в empty().
Как только мы сделаем переменную и будем через empty() обрабатывать результат переменной то получим как раз человекопонятное сообщение об ошибке:
PHP 5.5+ is required.
Currently installed version is: 5.3.29
а так как empty() работает и как isset(), и просто проверяет на пустое значение (в том числе и на пустые строки, и на 0, и на null) то ошибки о том что проверяется не заданная переменная никогда не возникнет. Так же можно кстати вынести в переменную и
extension_loaded('mbstring')
и обернуть в empty(), тогда будет полностью по феншую и не будет возникать у пользователей вопросов, че за фигня.
В конечном итоге начиная с 492 строки по моему скромному мнению код должен выглядеть так:
$mbstring = extension_loaded('mbstring');
$overload = ini_get('mbstring.func_overload');
if (!empty($mbstring) && !empty($overload)) {
Если есть возможность внести данные правки то было бы здорово, либо подскажите куда мне направить свой взор для написания соответствующего тикета. Спасибо за внимание.

Re: При вызове phpMyAdmin : Parse error: syntax error

Добавлено: 21 май 2018, 18:49
Максим
Я не вношу правок, всегда берется оригинальный дистрибутив phpmyadmin с офф сайта. Вам можно направить свои силы на создание Pull requests тут: https://github.com/phpmyadmin/phpmyadmin

Re: При вызове phpMyAdmin : Parse error: syntax error

Добавлено: 24 май 2018, 12:18
VikingBO
Супер, спасибо за ответ но это уже не актуально для самого phpmyadmin так как на нынешней версии 4.8.0.1 которая лежит на указанном гите этот файл переработан и подобных вопросов там не возникнет. К сожалению отсутствует возможность заниматься обновлением OSPanel поэтому не знаю какая сейчас используется версия phpmyadmin в OSPanel, но если не последняя то подобная ошибка имеет место быть и исправляется выше приведенным мной методом. Либо обновлением самого phpmyadmin до последней версии.

Re: При вызове phpMyAdmin : Parse error: syntax error

Добавлено: 13 мар 2020, 21:34
cosmator
Максим писал(а): 21 май 2018, 18:49 Я не вношу правок, всегда берется оригинальный дистрибутив phpmyadmin с офф сайта. Вам можно направить свои силы на создание Pull requests тут: https://github.com/phpmyadmin/phpmyadmin
Достаточно будет распаковать, скачанный с Гитаба архив, в папку
phpmyadmin
, предварительно удалив из неё прежние папки и файлы??