Parse error: syntax error, unexpected T_FUNCTION

InstantCMS 2.X
#1 3 июня 2016 в 23:26
Залил на хостинг сайт, выдает Parse error: syntax error, unexpected T_FUNCTION in /system/core/core.php on line 381

в чем может быть проблема у хостинга?
#2 3 июня 2016 в 23:30
Синтаксическая ошибка в указанной строчке. Сначала перезалейте этот файл, а потом если не поможет смотрите, может запятая или кавычка пропущена.
#3 3 июня 2016 в 23:36

в чем может быть проблема у хостинга?

yury
В версии PHP. Запросите поддержку PHP не менее 5.3 версии. Ну и на досуге стоит почитатьтехтребования.
#4 3 июня 2016 в 23:37

В версии PHP.

Fuze
понял, сейчас проверю версию, спасибо за быструю помощь
#5 24 октября 2017 в 20:43
Друзья, помогите, не могу понять почему стала вылетать ошибка 503 в обычном поиске.
Вот что пишет отладка:
Ошибка в запросе БД:
syntax error, unexpected '+'

SELECT 1
FROM cms_con_pages
WHERE `is_pub` = '1' AND `is_approved` = '1' AND `is_parent_hidden` IS NULL AND MATCH(`title`) AGAINST ('>\"полиция\" <+полиц*' IN BOOLEAN MODE)
Последние вызовы:

modelSearch->getSearchResultsCount() @ /system/controllers/search/actions/index.php: 67
actionSearchIndex->run()
call_user_func_array() @ /system/core/controller.php: 422
cmsController->runExternalAction() @ /system/core/controller.php: 340
cmsController->runAction() @ /system/core/core.php: 788
cmsCore->runController() @ /index.php: 38
#6 24 октября 2017 в 20:59
@parazok, запрос корректный, у вас проблема с сервером, наподобие такой. Обратитесь к хостеру.
#7 25 октября 2017 в 17:26


@parazok, запрос корректный, у вас проблема с сервером, наподобие такой. Обратитесь к хостеру.

Fuze

Здравствуйте.
Ошибка syntax error означает, что запрос в БД был составлен некорректно, и не соответствует SQL-синтаксису. Не совсем понятно, на каком основании и из каких соображений, разработчики CMS утверждают, что это проблема на стороне сервера.
По ссылке также приведено описание возможного бага MySQL 5.6, в то время, как на нашем сервере используется 5.7.
Рекомендую разработчикам вашей CMS хотя бы ознакомиться с минимальной документацией по MySQL:
select 1 from cms_con_pages where is_pub = '1' and is_approved = '1' and is_parent_hidden is null and match(title) against ('>полиция +(<полиц*)' in boolean mode);

В итоге, надо править код тут /system/controllers/search/model.php.
Сделал так:
$ft_query .= '>\"'. $this->db->escape($this->original_query).'\" ';
$ft_query .= '+(<'. implode(' +', $this->query).')';
#8 25 октября 2017 в 18:46
@parazok, передайте вашему хостеру, что разработчики знают, что такое syntax error. А соображения о причине проблемы складываются из того, что кроме как в данном частном случае, ни у кого из сообщества проблемы не наблюдается.
В итоге ничего править не нужно, ибо приведенный вами запрос полностью рабочий на MySQL 5.5, 5.6, 5.7
Иллюстрация

Но раз по каким-то причинам, именно у вас, из-за отсутствия скобок в морфологических фразах возникает ошибка, стоит сделать вот так:

  1. $ft_query .= '>\"' . $this->db->escape($this->original_query).'\" <(';
  2. $ft_query .= '+' . implode(' +', $this->query).')';
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.