onag 1 Опубликовано: 18 ноября 2015 Рассказать Опубликовано: 18 ноября 2015 (изменено) Здравствуйте! Возникла ошибка при редактировании любого пользователя в админке. Сайт pskg.ru Parse error: syntax error, unexpected '}', expecting '{' in /****/engine/modules/profile.php on line 444 версия PHP стоит 5.3 Пременные: register_globals=Off allow_url_fopen=On allow_url_include 1=Off При удалении знака "}" в этой строке, ошибка переходит на следующую. profile.phpтекст всего файла Изменено 18 ноября 2015 пользователем onag Вложил файл Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 18 ноября 2015 Рассказать Опубликовано: 18 ноября 2015 У вас на сервере не PHP 5.3 а ниже. Эта ошибка показывается только на более низких версиях PHP. Минимальной версией PHP для 10.6 нужна линейка не ниже 5.3 3 часа назад, onag сказал: Возникла ошибка при редактировании любого пользователя в админке. Смущает данная ваша фраза, т.к. в админпанели файл engine/modules/profile.php не используется в принципе, это редактирование и просмотр профиля на сайте. Так что если у вас речь идет действительно про админпанель, то вы как то некорректно редактировали файлы скрипта. Цитата Ссылка на сообщение Поделиться на других сайтах
onag 1 Опубликовано: 18 ноября 2015 Рассказать Опубликовано: 18 ноября 2015 Автор Ошибка появилась после перехода на версию 10.6. Хостер пишет что версия PHP последняя. Скриншоты Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 18 ноября 2015 Рассказать Опубликовано: 18 ноября 2015 48 минуты назад, onag сказал: Ошибка появилась после перехода на версию 10.6. Да верно, потому как требование наличия PHP 5.3 появилось начиная с версии 10.6. У вас не версия PHP 5.3 на сервере, это точно. Почему так, что в панели хостинга написано 5.3 а по факту работает на сервере другая версия PHP вам нужно уже узнать в службе поддержки вашего хостинга. Цитата Ссылка на сообщение Поделиться на других сайтах
onag 1 Опубликовано: 19 ноября 2015 Рассказать Опубликовано: 19 ноября 2015 Автор Ответ хостера: В настоящий момент на Вашем хостинге включена поддержка PHP версии 5.3. На это указывает тестовый PHP-скрипт, который выполняет функцию PHP phpinfo(); , доступный по ссылке:http://pskg.ru/info.php Пожалуйста, проверьте. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 19 ноября 2015 Рассказать Опубликовано: 19 ноября 2015 40 минуты назад, onag сказал: Ответ хостера: В настоящий момент на Вашем хостинге включена поддержка PHP версии 5.3. На это указывает тестовый PHP-скрипт, который выполняет функцию PHP phpinfo(); , доступный по ссылке:http://pskg.ru/info.php Пожалуйста, проверьте. Действительно показывает что 5.3. Однако баг в любом случае в PHP интерпретаторе. Я вам попытаюсь обьяснить в чем дело подробней, чтобы вы передали хостингу, т.к. требуется пересборка PHP интерпретатора. Итак почему происходит ошибка: Parse error: syntax error, unexpected '}', expecting '{' in /****/engine/modules/profile.php on line 444 Дело в том что начиная с версии 10.6 в его коде начато использование анонимных функций: http://www.phpinside.ru/?q=node/864 http://php.ru/manual/functions.anonymous.html Поддержка этих функций как видно из ссылок выше появилась в PHP интерпретаторе начиная с версии 5.3.0. До этой версии будет выводится данная ошибка, начиная с этой верии PHP, код должен успешно и нормально выполнятся. Но у вас несмотря на наличие PHP 5.3.27 все равно эта ошибка. Это значит что скорее всего PHP был собран некорректно из исходников. И его нужно пересобирать, это единственное решение проблемы. Пусть ваш хостинг создаст тестовый файл с кодом: <?php echo preg_replace_callback('~-([a-z])~', function ($match) { return strtoupper($match[1]); }, 'hello-world'); // выведет helloWorld ?> Это код PHP 5.3 который должен в нем работать, у вас будет ошибка, что говорит о несоответствии версии 5.3, либо конечно также может быть какой либо баг непосредственно в версии 5.3.27, такое тоже может быть, т.к. баги в PHP также периодически находят и исправляют. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 19 ноября 2015 Рассказать Опубликовано: 19 ноября 2015 Так стоп. Все написанное выше отменяется, тут решил посмотреть случайно код файла что вы дали выше, и там у вас в строчке стоит $tpl->copy_template = preg_replace_callback ( '#\\[profile-user-group=(.+?)\\](.*?)\\[/profile-user-group\\]#is', function ($matches) } Такого нет в DLE а именно вместо правильной "{" у вас там стоит "}" Т.е. вы сами некорректно модифицировали данный файл. Восстановите оригинальный файл engine/modules/profile.php их архива оригинального дистрибутива. Цитата Ссылка на сообщение Поделиться на других сайтах
onag 1 Опубликовано: 19 ноября 2015 Рассказать Опубликовано: 19 ноября 2015 Автор создал на сервере файл с Вашим кодом. http://pskg.ru/test.php PHP отработал корректно. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 19 ноября 2015 Рассказать Опубликовано: 19 ноября 2015 10 минуту назад, onag сказал: создал на сервере файл с Вашим кодом. http://pskg.ru/test.php PHP отработал корректно. Мое сообщение выше http://forum.dle-news.ru/topic/69095-ошибка-profilephp-строка-444/?do=findComment&comment=344378 прочитайте. У вас код файла DLE не соответствует оригинальному. Цитата Ссылка на сообщение Поделиться на других сайтах
onag 1 Опубликовано: 19 ноября 2015 Рассказать Опубликовано: 19 ноября 2015 Автор Спасибо! Перезапись оригинального файла помогла. Тему можно закрыть. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.