Перейти к публикации

ошибка profile.php строка 444


Рекомендованные сообщения

Здравствуйте!

Возникла ошибка при редактировании любого пользователя в админке.

Сайт 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текст всего файла

 

 

Изменено пользователем onag
Вложил файл
Ссылка на сообщение
Поделиться на других сайтах

У вас на сервере не PHP 5.3 а ниже. Эта ошибка показывается только на более низких версиях PHP. Минимальной версией PHP для 10.6 нужна линейка не ниже 5.3

3 часа назад, onag сказал:

Возникла ошибка при редактировании любого пользователя в админке.

Смущает данная ваша фраза, т.к. в админпанели файл engine/modules/profile.php не используется в принципе, это редактирование и просмотр профиля на сайте. Так что если у вас речь идет действительно про админпанель, то вы как то некорректно редактировали файлы скрипта.

Ссылка на сообщение
Поделиться на других сайтах
48 минуты назад, onag сказал:

 

Ошибка появилась после перехода на версию 10.6.

 

Да верно, потому как требование наличия PHP 5.3 появилось начиная с версии 10.6.

 

У вас не версия PHP 5.3 на сервере, это точно. Почему так, что в панели хостинга написано 5.3 а по факту работает на сервере другая версия PHP вам нужно уже узнать в службе поддержки вашего хостинга.

Ссылка на сообщение
Поделиться на других сайтах

Ответ хостера:

В настоящий момент на Вашем хостинге включена поддержка PHP версии 5.3. На это указывает тестовый PHP-скрипт, который выполняет функцию PHP phpinfo(); , доступный по ссылке:http://pskg.ru/info.php
Пожалуйста, проверьте.

Ссылка на сообщение
Поделиться на других сайтах
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 также периодически находят и исправляют.

Ссылка на сообщение
Поделиться на других сайтах

Так стоп. Все написанное выше отменяется, тут решил посмотреть случайно код файла что вы дали выше, и там у вас в строчке стоит 

		$tpl->copy_template = preg_replace_callback ( '#\\[profile-user-group=(.+?)\\](.*?)\\[/profile-user-group\\]#is',
			function ($matches) }

Такого нет в DLE а именно вместо правильной "{" у вас там стоит "}"

 

Т.е. вы сами некорректно модифицировали данный файл. Восстановите оригинальный файл engine/modules/profile.php их архива оригинального дистрибутива.

Ссылка на сообщение
Поделиться на других сайтах
10 минуту назад, onag сказал:

создал на сервере файл с Вашим кодом. http://pskg.ru/test.php

PHP отработал корректно.

Мое сообщение выше http://forum.dle-news.ru/topic/69095-ошибка-profilephp-строка-444/?do=findComment&comment=344378 прочитайте. У вас код файла DLE не соответствует оригинальному.

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Создать...