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

ошибка 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 не используется в принципе, это редактирование и просмотр профиля на сайте. Так что если у вас речь идет действительно про админпанель, то вы как то некорректно редактировали файлы скрипта.

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

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

Хостер пишет что версия PHP последняя.

Скриншоты

errordle.JPG

errordle1.JPG

errordle2.JPG

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

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

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...